> For the complete documentation index, see [llms.txt](https://docs.moduluszk.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.moduluszk.io/core-concepts/what-a-predicate-says.md).

# What a predicate says

A predicate speaks about a transition: the state being consumed, the state being produced, and the transaction presenting them. A payment predicate states that value is conserved and that the spender's authorisation is present. An escrow predicate states the conditions under which funds may move and to whom. A compliance predicate states the properties any transfer of the

governed asset must satisfy. In each case the predicate is a direct rendering of the rule as the author would state it to a colleague, a counterparty or a regulator, because first-order logic is the notation those rules were already implicitly written in.&#x20;

Expressiveness is not the constraint it might appear to be. First-order logic is powerful enough to state inductive definitions, arbitrary computation, and correctness properties of that computation. What changes on Modulus is that the author states the property directly instead of writing a program whose behaviour is supposed to imply it.
