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