add predicat logic