Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Circuit monad #27

Merged
merged 43 commits into from
Dec 16, 2024
Merged

Circuit monad #27

merged 43 commits into from
Dec 16, 2024

Conversation

mitschabaude
Copy link
Collaborator

@mitschabaude mitschabaude commented Dec 10, 2024

prototype of a circuit monad "DSL"

to be merged with several issues unresolved, including:

  • right now concrete witness values have to be inputs to the circuit definition. this is wrong because, for example, the circuit can pass the same input value to two different witness calls, and that makes the prover less powerful than it would be in reality, because they have to use the same value for two different witnesses
  • there are issues & a hack when going from the output of a subcircuit back to the calling circuit
  • there is no guarantee that a circuit doesn't create a variable with some arbitrary index (not connected to one of the input witnesses) and so, again, and uses it in an expression. this again makes the prover not powerful

in the final framework the goal is that you really shouldn't have to carefully look at a circuit to see that it's sound. so there should be no options at all to the circuit developer to make the prover less powerful

@mitschabaude mitschabaude marked this pull request as ready for review December 16, 2024 12:30
@mitschabaude mitschabaude changed the base branch from gregor/structure to main December 16, 2024 12:51
@mitschabaude mitschabaude merged commit 18f12d1 into main Dec 16, 2024
2 checks passed
@mitschabaude mitschabaude deleted the circuit-prototype branch December 17, 2024 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant