purify
C++ Purify implementation with native circuit and BPP support
Loading...
Searching...
No Matches
purify::Transcript Class Reference

Mutable transcript used to record symbolic multiplication, division, and boolean constraints. More...

#include <expr.hpp>

Data Structures

struct  MulConstraint
 One multiplicative relation emitted by the symbolic transcript. More...
 

Public Member Functions

Expr secret (const std::optional< FieldElement > &value)
 Allocates a new secret witness variable, optionally with a known concrete value.
 
Expr mul (const Expr &lhs, const Expr &rhs)
 Allocates or reuses a multiplication witness enforcing lhs * rhs = out.
 
Expr div (const Expr &lhs, const Expr &rhs)
 Allocates or reuses a division witness enforcing out * rhs = lhs.
 
Expr boolean (const Expr &expr)
 Constrains an expression to be boolean by adding x * (x - 1) = 0.
 
void equal (const Expr &lhs, const Expr &rhs)
 Records a linear equality constraint between two expressions.
 
std::optional< FieldElementevaluate (const Expr &expr) const
 Evaluates an expression against the transcript's current witness vector.
 
const WitnessAssignmentsvarmap () const
 Returns the underlying witness assignment vector.
 
const std::vector< MulConstraint > & muls () const
 Returns the multiplication and division constraints accumulated so far.
 
const std::vector< Expr > & eqs () const
 Returns the linear equality constraints accumulated so far.
 

Detailed Description

Definition at line 213 of file expr.hpp.

Member Function Documentation

◆ boolean()

Expr purify::Transcript::boolean ( const Expr expr)

Definition at line 428 of file expr.cpp.

References purify::Expr::evaluate().

Referenced by purify::circuit_main().

◆ div()

Expr purify::Transcript::div ( const Expr lhs,
const Expr rhs 
)

◆ eqs()

const std::vector< Expr > & purify::Transcript::eqs ( ) const
inline

Definition at line 251 of file expr.hpp.

Referenced by purify::BulletproofTranscript::from_transcript().

◆ equal()

void purify::Transcript::equal ( const Expr lhs,
const Expr rhs 
)

Definition at line 442 of file expr.cpp.

References purify::Expr::evaluate().

◆ evaluate()

std::optional< FieldElement > purify::Transcript::evaluate ( const Expr expr) const

Definition at line 451 of file expr.cpp.

References purify::Expr::evaluate().

Referenced by purify::prove_assignment_data().

◆ mul()

Expr purify::Transcript::mul ( const Expr lhs,
const Expr rhs 
)

◆ muls()

const std::vector< MulConstraint > & purify::Transcript::muls ( ) const
inline

Definition at line 246 of file expr.hpp.

Referenced by purify::BulletproofTranscript::from_transcript().

◆ secret()

Expr purify::Transcript::secret ( const std::optional< FieldElement > &  value)

Definition at line 378 of file expr.cpp.

Referenced by purify::circuit_main().

◆ varmap()

const WitnessAssignments & purify::Transcript::varmap ( ) const
inline

The documentation for this class was generated from the following files: