Skip to content

Conversation

@Nashtare
Copy link
Contributor

@Nashtare Nashtare commented Nov 6, 2025

Complements #150 in allowing true dynamic handling of non-primitive operations at runtime, as opposed to the current prover which still hardcodes tables to be proven like MMCS.

List of changes:

  • Keep primitives hardcoded, and allow non-primitive ops to be added at runtime via prover plugin
  • Introduce a TableProver trait with degree-specific methods: this one is a bit cumbersome, because we have to a distinction between degrees because of type-safety. I added a macro for easier handling so that we only need to specify the base case without worrying about extension ones.

Comment on lines +70 to +85
/// Enables HashAbsorb operations.
pub fn enable_hash_absorb(&mut self, reset: bool) {
self.config.enable_hash_absorb(reset);
}

/// Enables HashSqueeze operations.
pub fn enable_hash_squeeze(&mut self) {
self.config.enable_hash_squeeze();
}

/// Enables hash operations.
pub fn enable_hash(&mut self, reset: bool) {
self.enable_hash_absorb(reset);
self.enable_hash_squeeze();
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically unrelated but I noticed these missing. I haven't kept track of the latest discussions around hashing handling so can remove these changes if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

2 participants