Skip to content

Improve periodic_column usage in Plonky3 backend #492

Description

@Leo-Besancon

What should be done?

This issue is a followup on #461

As Plonky3 currently does not support periodic columns out of the box, we've introduced in #461 multiple structs and implementation for their support in our backend.

However, their handling can be improved. For instance, we can no longer prove or verify traces, only check that a given trace follows the constraints described in the Air for testing.

How should it be done?

  • fn periodic_columns(&self) -> Vec<Self::PeriodicColumnsVar> { in AirBuilderWithPeriodicColumns should maybe return an Array

  • periodic_columns in the DebugConstraintBuilderWithPeriodicColumns struct a bit differently

    • Pad all periodic columns to the maximum length by periodic repetition
    • Transpose the columns so that we have a vector of rows.
    • We just return &self.periodic_columns[self.row_index % col.len()]

_Originally posted by @adr1anh in #461 (comment)

  • Add support of prove and verify

When is this task done?

This task is done when a better handling of periodic columns has been achieved and tested in all the current tests.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No fields configured for Refactoring.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions