let rec get_received_fresh_terms = function
    Pair(t1,t2)
  | Scrypt(t1,t2)
  | Crypt(t1,t2)
  | Cons(t1,t2) ->
      (get_received_fresh_terms t1)@(get_received_fresh_terms t2)
  | Delete(t1,t2) ->
      (get_received_fresh_terms t1)@(get_received_fresh_terms t2)
  | Inv(t) ->
      get_received_fresh_terms t
  | Function(t1,l) ->
      (get_received_fresh_terms t1)
      @(List.flatten (List.map get_received_fresh_terms l))
(*  | Lst(l)*)
  | Set(l) ->
      List.flatten (List.map get_received_fresh_terms l)
  | Base(Var(i))
  | Prime(Var(i)) -> [Var i]
  | _ -> []