* Change padding rule for CPU
* Disable memory channels for padding rows
* Apply some of Jacqueline's comments
* Update halt routine
* Add clarifying comment
* Redundant constraints and padding bug
* Revert "Remove is_bootstrap_kernel column"
This reverts commit 49d92cb8f1b0ae9de76872f76af4429699ff692f.
* Make halt_state implicit
* Move halting logic constraints to dedicated module
* Include new module
* Update some comments
* Combine mstore_general and mload_general into one flag
* Add comments and make stack constraints cleaner.
* Fix number of native instructions
* Ordering
* Cleanup
* Update calls to stack eval from latest main
---------
Co-authored-by: Robin Salen <salenrobin@gmail.com>
* Combine FP254 flags
* Combine basic binary ops together and do CTL with opcode value
* Combine ternary ops together
* Combine MUL DIV and MOD
* Combine shift operations
* Combine byte with other binary ops
* Fix tests
* Clean leftover comment
* Update from latest main
* Put the 'is_simulated' flag inside the Operation enum
* Cleaner way to handle "simulated" operations SHL and SHR.
* Fix comments.
* Minor: suggestion for re-expressing `combined_ops`.
* Update comment
---------
Co-authored-by: Hamish Ivey-Law <hamish@ivey-law.name>
* Add corresponding arithmetic operations to shift ones
* Include SHL/SHR in the arithmetic CTL
* Prevent overflow
* Expand documentation for ctl_data_ternops()
* First draft of linking arithmetic Stark into the CTL mechanism.
* Handle {ADD,SUB,MUL}FP254 operations explicitly in `modular.rs`.
* Adjust argument order; add tests.
* Add CTLs for ADD, MUL, SUB, LT and GT.
* Add CTLs for {ADD,MUL,SUB}MOD, DIV and MOD.
* Add CTLs for {ADD,MUL,SUB}FP254 operations.
* Refactor the CPU/arithmetic CTL mapping; add some documentation.
* Minor comment fixes.
* Combine addcy CTLs at the expense of repeated constraint evaluation.
* Combine addcy CTLs at the expense of repeated constraint evaluation.
* Merge `*FP254` CTL into main CTL; rename some registers.
* Connect extra argument from CPU in binary ops to facilitate combining with ternary ops.
* Merge modular ops CTL into main CTL.
* Refactor DIV and MOD code into its own module.
* Merge DIV and MOD into arithmetic CTL.
* Clippy.
* Fixes related to merge.
* Simplify register naming.
* Generate u16 BN254 modulus limbs at compile time.
* Clippy.
* Add degree bits ranges for Arithmetic table.
* Serialize impls, and use in Fibonacci example
* seralizing
* cleanup
* don't serialize challenges
* deterministic build function
* cleanup
* cleanup
* cleanup
* fix
* cleanup
* fmt
* rename
* Unpacking and storing inputs
* Finish snarkv interface
* Failing test
* move serialization to separate example
* Imaginary part in front of real
* serialize ProofChallenges
* remove build_without_randomizing (no longer needed)
* fix
* Fix kernel peak
* Fix stack comments
* Minor
* SSTORE gas (#1007)
* Update storage access list and sload
* Add noop for sys_sstore
* Comments
* Fix access list test
* PR feedback
---------
Co-authored-by: Nicholas Ward <npward@berkeley.edu>