Generalized predicates overview
Generalized predicates let a holder prove rich policies over disclosed claims—comparisons to constants, comparisons between claims, ranges expressed as conjunctions, and set membership as disjunctions—while revealing only the final boolean (and the public predicate structure).
Who this is for
Policy authors and circuit engineers extending OpenAC’s Show relation; readers cross-checking the formal model against Circom.
Design goal
“Flexible, expressive, composable verification requests” without leaking attribute values—articulated in detail in generalized-predicates/README.md (postfix evaluation, privacy guarantees).
Where the implementation lives
The top-level generalized-predicates/ directory contains only that README. Circom implementation files are under wallet-unit-poc/circom/ (for example circuits/show.circom, circuits/components/eval-predicates.circom).
SDK linkage
buildShowCircuitInputs converts normalized claim values + PredicateSpec[] + postfix logicExpression into ShowCircuitInputs consumed by the witness calculator (show-input-builder.ts).
Paper
Predicate calculus and protocol placement appear in the OpenAC paper (Paper — construction).