added isSparse, isTree and documentation in predicates.hpp, verification required