defined_elsewhere( Head ) :- defined_elsewhere( Head, _Mod ). defined_elsewhere( Head, Mod ) :- % slp:predicate_property( Head, Property ), predicate_property( Head, Property ), ( Property == built_in -> Mod = user ; Property = imported_from(Mod) ), !. defined_elsewhere( Head, Mod ) :- functor( Head, Name, Arity ), current_predicate( Name/Arity ), Mod = user.