LLZK 0.1.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
OpTraits.h
Go to the documentation of this file.
1//===-- OpTraits.h ----------------------------------------------*- c++ -*-===//
2//
3// Part of the LLZK Project, under the Apache License v2.0.
4// See LICENSE.txt for license information.
5// Copyright 2025 Veridise Inc.
6// SPDX-License-Identifier: Apache-2.0
7//
8//===----------------------------------------------------------------------===//
9
10#pragma once
11
12#include <mlir/IR/OpDefinition.h>
13#include <mlir/IR/Operation.h>
14#include <mlir/Support/LogicalResult.h>
15
16namespace llzk::function {
17
18mlir::LogicalResult verifyConstraintGenTraitImpl(mlir::Operation *op);
19mlir::LogicalResult verifyWitnessGenTraitImpl(mlir::Operation *op);
20mlir::LogicalResult verifyNotFieldNativeTraitImpl(mlir::Operation *op);
21
24template <typename TypeClass>
25class ConstraintGen : public mlir::OpTrait::TraitBase<TypeClass, ConstraintGen> {
26public:
27 inline static mlir::LogicalResult verifyTrait(mlir::Operation *op) {
29 }
30};
31
34template <typename TypeClass>
35class WitnessGen : public mlir::OpTrait::TraitBase<TypeClass, WitnessGen> {
36public:
37 inline static mlir::LogicalResult verifyTrait(mlir::Operation *op) {
39 }
40};
41
44template <typename TypeClass>
45class NotFieldNative : public mlir::OpTrait::TraitBase<TypeClass, NotFieldNative> {
46public:
47 inline static mlir::LogicalResult verifyTrait(mlir::Operation *op) {
49 }
50};
51
52} // namespace llzk::function
Marker for ops that are specific to constraint generation.
Definition OpTraits.h:25
static mlir::LogicalResult verifyTrait(mlir::Operation *op)
Definition OpTraits.h:27
Marker for ops over llzk.felt type operands that are not native to finite field arithmetic.
Definition OpTraits.h:45
static mlir::LogicalResult verifyTrait(mlir::Operation *op)
Definition OpTraits.h:47
Marker for ops that are specific to witness generation.
Definition OpTraits.h:35
static mlir::LogicalResult verifyTrait(mlir::Operation *op)
Definition OpTraits.h:37
LogicalResult verifyNotFieldNativeTraitImpl(Operation *op)
Definition OpTraits.cpp:46
LogicalResult verifyConstraintGenTraitImpl(Operation *op)
Definition OpTraits.cpp:30
LogicalResult verifyWitnessGenTraitImpl(Operation *op)
Definition OpTraits.cpp:38