diff --git a/core/KaSa_rep/reachability_analysis/translation_in_natural_language.ml b/core/KaSa_rep/reachability_analysis/translation_in_natural_language.ml
index 9aa214b17..488c898d7 100644
--- a/core/KaSa_rep/reachability_analysis/translation_in_natural_language.ml
+++ b/core/KaSa_rep/reachability_analysis/translation_in_natural_language.ml
@@ -100,8 +100,6 @@ let try_partitioning parameters handler error
         Ckappa_sig.Views_bdu.extensional_of_mvbdu parameters handler error
           proj_in
       in
-      print_string "LENGTH: ";
-      print_int (List.length list_asso);
       let error =
         Exception.check_point Exception.warn parameters error error_4 __POS__
           Exit
diff --git a/core/KaSa_rep/reachability_analysis/views_domain.ml b/core/KaSa_rep/reachability_analysis/views_domain.ml
index d14c34b34..46fa36f1a 100644
--- a/core/KaSa_rep/reachability_analysis/views_domain.ml
+++ b/core/KaSa_rep/reachability_analysis/views_domain.ml
@@ -239,6 +239,18 @@ module Domain = struct
   let get_site_to_renamed_site_list static error =
     let error, result_static = get_bdu_analysis_static static error in
     error, result_static.Bdu_static_views.site_to_renamed_site_list
+
+  let get_bdu_guard error static rule_id agent_type cv_id bdu_true =
+    let error, store_guard_bdu = get_store_guard_bdu static error in
+    match Ckappa_sig.Rule_setmap.Map.find_option rule_id store_guard_bdu with
+    | None -> error, bdu_true
+    | Some map_guard_bdu ->
+      (match
+         Covering_classes_type.AgentCV_setmap.Map.find_option
+           (agent_type, cv_id) map_guard_bdu
+       with
+      | None -> error, bdu_true
+      | Some guard_bdu -> error, guard_bdu)
   (*--------------------------------------------------------------------*)
 
   type 'a zeroary =
@@ -847,7 +859,10 @@ module Domain = struct
   (*build bdu restriction for initial state *)
 
   let bdu_build static dynamic error
-      (pair_list : (Ckappa_sig.c_guard_p_then_site * (Ckappa_sig.c_state option * Ckappa_sig.c_state option)) list) =
+      (pair_list :
+        (Ckappa_sig.c_guard_p_then_site
+        * (Ckappa_sig.c_state option * Ckappa_sig.c_state option))
+        list) =
     let parameters = get_parameter static in
     let handler = get_mvbdu_handler dynamic in
     let error, handler, bdu_result =
@@ -895,7 +910,9 @@ module Domain = struct
                       let error, pair_list =
                         Ckappa_sig.GuardSite_map_and_set.Map.fold
                           (fun site' state (error, current_list) ->
-                            let pair_list = (site', (Some state, Some state)) :: current_list in
+                            let pair_list =
+                              (site', (Some state, Some state)) :: current_list
+                            in
                             error, pair_list)
                           map_res (error, [])
                       in
@@ -904,7 +921,9 @@ module Domain = struct
                         pair_list
                         @ List.map
                             (fun guard ->
-                              guard, (Some Ckappa_sig.dummy_state_index_false, Some Ckappa_sig.dummy_state_index_true))
+                              ( guard,
+                                ( Some Ckappa_sig.dummy_state_index_false,
+                                  Some Ckappa_sig.dummy_state_index_true ) ))
                             guard_p_list
                       in
                       let error, dynamic, bdu_init =
@@ -2548,7 +2567,7 @@ module Domain = struct
   (***************************************************************)
 
   let compute_bdu_update_side_effects static dynamic error bdu_test list_a bdu_X
-      =
+      bdu_guard =
     let parameters = get_parameter static in
     let parameter_views =
       Remanent_parameters.update_prefix parameters "\t\t\t"
@@ -2563,9 +2582,14 @@ module Domain = struct
       Ckappa_sig.Views_bdu.mvbdu_redefine parameter_views handler error
         bdu_inter list_a
     in
+    (*conjunction with the guard*)
+    let error, handler, bdu_with_guard =
+      Ckappa_sig.Views_bdu.mvbdu_and parameter_views handler error bdu_guard
+        bdu_redefine
+    in
     (*do the union of bdu_redefine and bdu_X*)
     let error, handler, bdu_result =
-      Ckappa_sig.Views_bdu.mvbdu_or parameter_views handler error bdu_redefine
+      Ckappa_sig.Views_bdu.mvbdu_or parameter_views handler error bdu_with_guard
         bdu_X
     in
     let dynamic = set_mvbdu_handler handler dynamic in
@@ -2578,7 +2602,6 @@ module Domain = struct
     let error, store_proj_bdu_test_restriction =
       get_store_proj_bdu_test_restriction static error
     in
-    let error, store_guard_bdu = get_store_guard_bdu static error in
     let error, proj_bdu_test_restriction =
       match
         Ckappa_sig.Rule_setmap.Map.find_option rule_id
@@ -2628,17 +2651,7 @@ module Domain = struct
             | Some bdu -> error, bdu
           in
           let error, bdu_guard =
-            match
-              Ckappa_sig.Rule_setmap.Map.find_option rule_id store_guard_bdu
-            with
-            | None -> error, bdu_true
-            | Some map_guard_bdu ->
-              (match
-                 Covering_classes_type.AgentCV_setmap.Map.find_option
-                   (agent_type, cv_id) map_guard_bdu
-               with
-              | None -> error, bdu_true
-              | Some guard_bdu -> error, guard_bdu)
+            get_bdu_guard error static rule_id agent_type cv_id bdu_true
           in
           let error, dynamic, bdu_update =
             match
@@ -2680,7 +2693,6 @@ module Domain = struct
       | None -> error, Covering_classes_type.AgentCV_setmap.Map.empty
       | Some map -> error, map
     in
-    let error, store_guard_bdu = get_store_guard_bdu static error in
     (*-----------------------------------------------------------------------*)
     let error, dynamic, event_list =
       Covering_classes_type.AgentCV_setmap.Map.fold
@@ -2700,17 +2712,7 @@ module Domain = struct
             | error, Some bdu -> error, bdu
           in
           let error, bdu_guard =
-            match
-              Ckappa_sig.Rule_setmap.Map.find_option rule_id store_guard_bdu
-            with
-            | None -> error, bdu_true
-            | Some map_guard_bdu ->
-              (match
-                 Covering_classes_type.AgentCV_setmap.Map.find_option
-                   (agent_type, cv_id) map_guard_bdu
-               with
-              | None -> error, bdu_true
-              | Some guard_bdu -> error, guard_bdu)
+            get_bdu_guard error static rule_id agent_type cv_id bdu_true
           in
           let error, dynamic, bdu_update =
             compute_bdu_update_creation static dynamic error bdu_creation bdu_X
@@ -2770,7 +2772,7 @@ module Domain = struct
     in
     error, dynamic, (precondition, event_list)
 
-  let apply_one_side_effect static dynamic error _rule_id
+  let apply_one_side_effect static dynamic error rule_id
       (_, (agent_name, site, state)) precondition =
     let parameters = get_parameter static in
     let nr_guard_params =
@@ -2804,6 +2806,7 @@ module Domain = struct
           in
           let dynamic = set_mvbdu_handler handler dynamic in
           let fixpoint_result = get_fixpoint_result dynamic in
+          let error, dynamic, bdu_true = get_mvbdu_true static dynamic error in
           let error, dynamic, bdu_false =
             get_mvbdu_false static dynamic error
           in
@@ -2816,10 +2819,13 @@ module Domain = struct
             | error, None -> error, bdu_false
             | error, Some bdu -> error, bdu
           in
+          let error, bdu_guard =
+            get_bdu_guard error static rule_id agent_name cv_id bdu_true
+          in
           let error, dynamic, bdu_update =
             (*rTODO add guard bdu*)
             compute_bdu_update_side_effects static dynamic error bdu_test
-              list_modif bdu_X
+              list_modif bdu_X bdu_guard
           in
           let error, dynamic, event_list =
             add_link ~title:"Dealing with side effects" error static dynamic