12#include <mlir/IR/OpDefinition.h>
13#include <mlir/IR/Operation.h>
14#include <mlir/Support/LogicalResult.h>
24template <
typename TypeClass>
25class ConstraintGen :
public mlir::OpTrait::TraitBase<TypeClass, ConstraintGen> {
27 inline static mlir::LogicalResult
verifyTrait(mlir::Operation *op) {
34template <
typename TypeClass>
35class WitnessGen :
public mlir::OpTrait::TraitBase<TypeClass, WitnessGen> {
37 inline static mlir::LogicalResult
verifyTrait(mlir::Operation *op) {
44template <
typename TypeClass>
45class NotFieldNative :
public mlir::OpTrait::TraitBase<TypeClass, NotFieldNative> {
47 inline static mlir::LogicalResult
verifyTrait(mlir::Operation *op) {
Marker for ops that are specific to constraint generation.
static mlir::LogicalResult verifyTrait(mlir::Operation *op)
Marker for ops over llzk.felt type operands that are not native to finite field arithmetic.
static mlir::LogicalResult verifyTrait(mlir::Operation *op)
Marker for ops that are specific to witness generation.
static mlir::LogicalResult verifyTrait(mlir::Operation *op)
LogicalResult verifyNotFieldNativeTraitImpl(Operation *op)
LogicalResult verifyConstraintGenTraitImpl(Operation *op)
LogicalResult verifyWitnessGenTraitImpl(Operation *op)