Improve `periodic_column` usage in Plonky3 backend
- 主要語言
- Rust
- 星號
- 96
- 分支
- 39
- PR 合併指標
- 30 天內沒有已合併 PR
描述
### What should be done?
This issue is a followup on https://github.com/0xMiden/air-script/pull/461:7
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 {` 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 https://github.com/0xMiden/air-script/pull/461#discussion_r238264942
- 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_
貢獻指南
研究方向
Review the changes in PR #461, especially the structs `AirBuilderWithPeriodicColumns` and `DebugConstraintBuilderWithPeriodicColumns`. Understand how periodic columns are currently handled and the proposed improvements: padding, transposing, and enabling prove/verify. Run existing tests to ensure changes don't break functionality, focusing on tests related to periodic columns.
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- rust
- 領域
- backend, compilers
- Issue 類型
- 重構
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100