let operations_test_treatment_right (name : string) (state : string) : bool =
        let rec test t =
                match t with [] -> true
                        |(x::ls) ->         let d = decompose x in
                                        if(d<>[])
                                        then(
                                                if((car d)="contains"then(
                                                        in_aggregation name (cadr d) name (caddr d)
                                                )
                                                else if((car d)="equal" || (car d)="idequal"then(
                                                        let arg1 =         if(is_a_var (cadr d)) then (get_value_of_var name (cadr d)) 
                                                                        else if(is_a_value (cadr d)) then (cadr d) 
                                                                        else (string_of_bool (test [(cadr d)] ))in
                                                        let arg2 =          if(is_a_var (caddr d)) then (get_value_of_var name (caddr d)) 
                                                                        else if(is_a_value (caddr d)) then (caddr d) 
                                                                        else (string_of_bool (test [(caddr d)] ))in
                                                        (match_message name state arg1 name state arg2) && (test ls)
                                                )
                                                else if((car d)="leq"then (
                                                        let arg1 = if(is_a_var (cadr d)) then (get_value_of_var name (cadr d)) else (cadr d) in
                                                        let arg2 = if(is_a_var (caddr d)) then (get_value_of_var name (caddr d)) else (caddr d) in
                                                        ((int_of_string arg1)<=(int_of_string arg2)) && (test ls)
                                                )
                                                else if((car d)="not"then (
                                                        not(test [(cadr d)]) && (test ls)
                                                )
                                                else (test ls)
                                        )
                                        else (test ls);
        in
        match (find_operation_of_state name state) with (_,(dt,_)) -> (test dt)