@@ -934,7 +934,7 @@ module Domain = struct
934934 error, dynamic, new_mvbdu
935935
936936 let common_scan parameters error bdu_false dynamic store_value list guard_bdu
937- =
937+ restriction_bdu =
938938 let rec scan list dynamic error precondition_bdu =
939939 match list with
940940 | [] -> error, true , dynamic, precondition_bdu
@@ -956,7 +956,13 @@ module Domain = struct
956956 build_mvbdu_range_list parameters error dynamic tuple
957957 mvbdu_value_with_guard
958958 in
959- if Ckappa_sig.Views_bdu. equal new_mvbdu bdu_false then
959+ let bdu_handler = get_mvbdu_handler dynamic in
960+ let error, bdu_handler, are_equal =
961+ Ckappa_sig. mvbdu_equal_for_guards parameters bdu_handler error
962+ new_mvbdu bdu_false restriction_bdu
963+ in
964+ let dynamic = set_mvbdu_handler bdu_handler dynamic in
965+ if are_equal then
960966 error, false , dynamic, bdu_false
961967 else (
962968 let bdu_handler = get_mvbdu_handler dynamic in
@@ -975,7 +981,7 @@ module Domain = struct
975981 scan list dynamic error guard_bdu
976982
977983 let whether_or_not_it_has_precondition parameters error bdu_false tuple_set
978- static dynamic precondition guard_bdu current_ws =
984+ static dynamic precondition guard_bdu current_ws restriction_bdu =
979985 let list =
980986 Site_across_bonds_domain_type.PairAgentSitesPStates_map_and_set. Set
981987 .elements tuple_set
@@ -989,6 +995,7 @@ module Domain = struct
989995 (* check if this pattern belong to the set of the patterns in the result*)
990996 let error, bool , dynamic, precondition_bdu =
991997 common_scan parameters error bdu_false dynamic store_value list guard_bdu
998+ restriction_bdu
992999 in
9931000 let error, dynamic, precondition =
9941001 update_state_of_guard_parameters parameters error dynamic precondition
@@ -1004,6 +1011,7 @@ module Domain = struct
10041011 let parameters = get_parameter static in
10051012 let error, dynamic, bdu_false = get_mvbdu_false static dynamic error in
10061013 let guard_bdus = get_guard_mvbdus static in
1014+ let restriction_bdu = get_restriction_mvbdu static in
10071015 let error, dynamic, guard_bdu =
10081016 get_bdu_guard parameters dynamic error guard_bdus rule_id
10091017 in
@@ -1016,7 +1024,7 @@ module Domain = struct
10161024 .empty store_potential_tuple_pair_lhs
10171025 in
10181026 whether_or_not_it_has_precondition parameters error bdu_false tuple_set
1019- static dynamic precondition guard_bdu false
1027+ static dynamic precondition guard_bdu false restriction_bdu
10201028
10211029 (* **************************************************************************)
10221030 (* MAY BE REACHABLE*)
@@ -1030,6 +1038,7 @@ module Domain = struct
10301038 let kappa_handler = get_kappa_handler static in
10311039 let error, dynamic, bdu_false = get_mvbdu_false static dynamic error in
10321040 let error, dynamic, bdu_true = get_mvbdu_true static dynamic error in
1041+ let restriction_bdu = get_restriction_mvbdu static in
10331042 let error, bonds_lhs =
10341043 Common_static. collect_bonds_pattern parameters error
10351044 pattern.Cckappa_sig. views pattern.Cckappa_sig. bonds
@@ -1053,7 +1062,7 @@ module Domain = struct
10531062 tuple_set
10541063 in
10551064 whether_or_not_it_has_precondition parameters error bdu_false tuple_set
1056- static dynamic precondition bdu_true true
1065+ static dynamic precondition bdu_true true restriction_bdu
10571066
10581067 (* ***************************************************************)
10591068
@@ -1069,7 +1078,8 @@ module Domain = struct
10691078 (* APPLY RULE*)
10701079 (* **************************************************************************)
10711080
1072- let check_association_list parameters error bdu_false pair check dynamic =
1081+ let check_association_list parameters error bdu_false pair check dynamic
1082+ restriction_bdu =
10731083 let store_result = get_value dynamic in
10741084 let bdu_handler = get_mvbdu_handler dynamic in
10751085 let check, bdu_list =
@@ -1091,7 +1101,7 @@ module Domain = struct
10911101 in
10921102 let error, bdu_handler, bool =
10931103 Site_across_bonds_domain_type. check parameters error bdu_false bdu_handler
1094- pair mvbdu store_result
1104+ pair mvbdu store_result restriction_bdu
10951105 in
10961106 let dynamic = set_mvbdu_handler bdu_handler dynamic in
10971107 error, dynamic, bool
@@ -1564,7 +1574,7 @@ module Domain = struct
15641574 in
15651575 let error, dynamic, unmodified_sites_ok =
15661576 check_association_list parameters error bdu_false pair check
1567- dynamic
1577+ dynamic restriction_bdu
15681578 in
15691579 if unmodified_sites_ok then (
15701580 let error, bool , dynamic, modified_sites =
@@ -1855,7 +1865,7 @@ module Domain = struct
18551865 (* at the final result needs to check the non_relational
18561866 condition*)
18571867 Translation_in_natural_language. non_relational parameters
1858- bdu_handler error mvbdu
1868+ bdu_handler error mvbdu restriction_bdu
18591869 else
18601870 (* other cases will by pass this test*)
18611871 error, bdu_handler, false
@@ -1999,26 +2009,30 @@ module Domain = struct
19992009 parameters error handler f store_value
20002010 in error, handler, store_value
20012011
2002- let _map_store_value_opt parameters error handler f store_value =
2003- match store_value with
2004- | None -> error, handler, store_value
2005- | Some store_value ->
2006- let error, handler, store_value = map_store_value parameters error handler f store_value in
2007- error, handler, Some store_value
2008-
2009- let map_mvbdu f errors static dynamic =
2010- let parameters = get_parameter static in
2011- let handler = get_mvbdu_handler dynamic in
2012- let local = get_local_dynamic_information dynamic in
2013- let errors, handler, store_value =
2014- map_store_value parameters errors handler f local.store_value in
2015- (* let errors, handler, store_value_current_working_set =
2016- map_store_value_opt parameters errors handler f local.store_value_current_working_set
2017- in*) (* should not be impacted by Boolean parameters *)
2018- let local = {local with store_value (* ; store_value_current_working_set*) } in
2019- let dynamic = set_local_dynamic_information local dynamic in
2020- let dynamic= set_mvbdu_handler handler dynamic in
2021- errors, (static, dynamic)
2022-
2012+ let _map_store_value_opt parameters error handler f store_value =
2013+ match store_value with
2014+ | None -> error, handler, store_value
2015+ | Some store_value ->
2016+ let error, handler, store_value =
2017+ map_store_value parameters error handler f store_value
2018+ in
2019+ error, handler, Some store_value
20232020
2021+ let map_mvbdu f errors static dynamic =
2022+ let parameters = get_parameter static in
2023+ let handler = get_mvbdu_handler dynamic in
2024+ let local = get_local_dynamic_information dynamic in
2025+ let errors, handler, store_value =
2026+ map_store_value parameters errors handler f local.store_value
2027+ in
2028+ (* let errors, handler, store_value_current_working_set =
2029+ map_store_value_opt parameters errors handler f local.store_value_current_working_set
2030+ in*)
2031+ (* should not be impacted by Boolean parameters *)
2032+ let local =
2033+ { local with store_value (* ; store_value_current_working_set*) }
2034+ in
2035+ let dynamic = set_local_dynamic_information local dynamic in
2036+ let dynamic = set_mvbdu_handler handler dynamic in
2037+ errors, (static, dynamic)
20242038end
0 commit comments