Expand description
This module defines structures and traits to build and manipulate traces. A trace is a collection of data points that represent the execution of a program. Some trace can be seen as “decomposable” in the sense that they can be divided into sub-traces that share the same columns, and sub-traces can be selected using “selectors”.
Modules
Structs
- Struct representing a circuit execution trace which is decomposable in individual sub-circuits sharing the same columns. It is parameterized by
- Implement a trace for a single instruction.
Traits
- DecomposableTracer builds traces for some program executions. The constant type
N_REL
is defined as the maximum number of relation columns the trace can use per row. The typeC
encodes the folding configuration, from which the selector, and scalar field are derived. Examples of selectors are: - The trait Foldable describes structures that can be folded. For that, it requires to be able to implement a way to return a folding instance and a folding witness. It is specialized for the DecomposedTrace struct for now and is expected to fold individual instructions, selected with a specific
C::Selector
. - Tracer builds traces for some program executions. The constant type
N_REL
is defined as the maximum number of relation columns the trace can use per row. The typeC
encodes the folding configuration, from which the selector, which encodes the information of the kind of information the trace encodes, and scalar field are derived. Examples of selectors are: