0xMiden / 0xMiden/air-script

Improve `periodic_column` usage in Plonky3 backend

未關閉
#492 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
codegen
主要語言
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

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。