Skip to main content

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).