0xMiden / 0xMiden/air-script

Improve `periodic_column` usage in Plonky3 backend

Ouverte
#492 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
codegen
Langage dominant
Rust
Étoiles
96
Forks
39
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Examinez les modifications de la PR #461, en particulier les structures `AirBuilderWithPeriodicColumns` et `DebugConstraintBuilderWithPeriodicColumns`. Comprenez comment les colonnes périodiques sont actuellement gérées et les améliorations proposées : le padding, la transposition et l'activation de prove/verify. Exécutez les tests existants pour vous assurer que les modifications ne cassent pas les fonctionnalités, en vous concentrant sur les tests liés aux colonnes périodiques.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
rust
Domaine
backend, compilers
Type d'issue
Refactorisation
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.