Peter Smith, on his Logic Matters blog, asks the question, “What Is A Predicate?”, and considers a number of answers.
There are of course other possible answers, and one I learned quite early on, arising very naturally in applying mathematical logic to what were generally known as “AI problems”, like perception and pattern recognition, and the one I found increasingly useful as I took up the reflective stance on symbolic computation afforded by Peirce’s pragmatic semiotics, may be described as follows:
In many applications a predicate is a function from a universe of discourse to a binary value in
that is, a characteristic function or indicator function
and
the fiber of
under
is the set of elements denoted or indicated by the predicate. That is the semantics, anyway. As far as syntax goes, there are many formal languages whose syntactic expressions serve as names for those functions and nominally speaking one may call those names predicates.
It would be great from the very beginning to talk about truth-values as an idea behind {0, 1}. As in some logic, we may have 3 values, [0…1] etc.