let rec is_fd_term (term: term) : bool =
match term with
| Var _ ->
true
| Const symbol ->
Symbol.is_input symbol
||
Symbol.is_fd_symbol symbol
||
Symbol.is_fd_element symbol
| Func func ->
(
Symbol.is_input func.symbol
||
Symbol.is_fd_relation func.symbol
||
(Symbol.equal Symbol.diff func.symbol)
)
&&
Tools.array_for_all is_fd_term func.subterms