let update_received_fresh_terms generic_state_vars lhs current_state_vars =
let received_fresh_terms =
List.flatten
(List.map
(function
Iknows(t) -> get_received_fresh_terms t
| Ifequal(t1,t2) -> (get_received_fresh_terms t1)@(get_received_fresh_terms t2)
| Ifcontains(t1,t2) -> (get_received_fresh_terms t1)@(get_received_fresh_terms t2)
| _ -> [])
(List.map get_if_term lhs))
in
List.map2
(fun g_var c_var ->
if (List.exists (fun x -> Base x = g_var) received_fresh_terms) then
g_var
else
c_var)
generic_state_vars current_state_vars