?- use_module(library(dialect/iso/iso_predicates)).
true.
?- iso_builtin_predicate(Head),numbervars(Head).
Head = true ;
Head = fail ;
Head = call(A) ;
Head = ! ;
Head = (A;B) ;
Head = (A, B) ;
Head = (A->B) ;
Head = catch(A, B, C) ;
Head = throw(A) ;
Head = (A=B) ;
...
?- use_module(library(dialect/iso/iso_predicates)).
true.
?- iso_builtin_function(Head),numbervars(Head).
Head = A+B ;
Head = A-B ;
Head = A*B ;
Head = A//B ;
Head = A/B ;
Head = A rem B ;
Head = A mod B ;
Head = A**B ;
Head = A>>B ;
Head = A<<B ;
Head = A/\B ;
...
iso_builtin_function/1 also seems to handle arithmethic expressions.
?- iso_builtin_function(abs(sin(X))).
true.
As noted in the documentation
It originates from Logtalk.