What is a "predicate" in the AST matcher?

For example in this sentence:

AST matchers are predicates on nodes in the AST.

Or this:
LibASTMatchers provides a domain specific language to create predicates on Clang’s AST.

Can someone help to explain what predicates are?

The word “predicate” here is used in its mathematical sense: All this really means is that each individual matcher is a function that accept an AST node and return either true (“matches”) or false (“doesn’t match”).

Thanks Artem!