let request_universal_clause (clause: clause) : clause =
  let mapping =
    List.fold_left
      (fun acc literal ->
        request_universal_term' literal.atom acc
      )
      []
      clause
  in
    match mapping with
      | [] ->
          clause

      | _ ->
          let mapping =
            List.map
              (fun (var, term) ->
                request_var var, term
              )
              mapping
          in
            List.map
              (fun literal ->
                replace_terms_in_literal literal mapping
              )
              clause