0xMiden / 0xMiden/air-script

Improve `periodic_column` usage in Plonky3 backend

Đang mở
#492 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
codegen
Ngôn ngữ chính
Rust
Star
96
Fork
39
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

### 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_

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Xem xét các thay đổi trong PR #461, đặc biệt là các cấu trúc `AirBuilderWithPeriodicColumns` và `DebugConstraintBuilderWithPeriodicColumns`. Hiểu cách các cột tuần hoàn hiện đang được xử lý và các cải tiến được đề xuất: padding, chuyển vị và bật prove/verify. Chạy các bài kiểm tra hiện có để đảm bảo các thay đổi không làm hỏng chức năng, tập trung vào các bài kiểm tra liên quan đến cột tuần hoàn.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
rust
Lĩnh vực
backend, compilers
Loại issue
Tái cấu trúc
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.