Skip to content

Raghav/weakest precondition#41

Open
raghav198 wants to merge 43 commits into
mainfrom
raghav/weakest-precondition
Open

Raghav/weakest precondition#41
raghav198 wants to merge 43 commits into
mainfrom
raghav/weakest-precondition

Conversation

@raghav198

Copy link
Copy Markdown
Collaborator

No description provided.

@raghav198

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7dec5d4477

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread lib/Verification/WeakestPrecondition.cpp
Comment on lines +68 to +70
.Case<MemberReadOp>([this](MemberReadOp read) {
return builder.getConstant(read.getMemberDefOp(tables)->get(),
isWitnessOp(read));

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Read subcomponent fields through their parent value

When the struct.readm source is a subcomponent value rather than the top-level %self, this returns the global member constant such as x_w/x_c and ignores the struct operand. In nested-struct/subcomponent cases that means reads from different instances, or from a subcomponent value produced by init-*, are all modeled as the same unconstrained field variable instead of read-Sub-x(subcmp), so the emitted WP can miss inequivalence involving subcomponent outputs.

Useful? React with 👍 / 👎.

Raghav Malik and others added 5 commits June 12, 2026 12:21
* Bikeshedding

* Fixed testcases

* syntax error in test I guess

* Adding scalar symbols for subcomponent

* Basic subcomponent store works now

* Slightly better subcmp read syntax

* Works for calls to @Product too

* Added subcomponent test

* Testing aligned + unaligned

---------

Co-authored-by: Raghav Malik <raghav@veridise.com>
* Single loop invariant inference done

* Loop invariants now mostly strengthening to prove postcondition, things look better

* Added circom examples

* New verification results with proper alignment

* Proper while->for conversion

* Fixing some errors as they come up

* Latest results

* Added demo script

* Latest results

* Nested loop support and symbolic store added to WP

* Added back missing slice invariant strengthening

* New results, added {signal} attribute to mux_ep

* Removed unused StrongestPostcondition

---------

Co-authored-by: Raghav Malik <raghav@veridise.com>
* README

* Moved README

* circom-demo -> circom-examples

* Updated README

---------

Co-authored-by: Raghav Malik <raghav@veridise.com>
@raghav198 raghav198 marked this pull request as ready for review June 26, 2026 15:27
@raghav198

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 75574f702d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread lib/Verification/TermUtils.cpp
Comment thread lib/Verification/TermUtils.cpp Outdated
raghav198 and others added 8 commits June 30, 2026 18:45
* README

* Moved README

* circom-demo -> circom-examples

* Updated README

* Updated examples path

* Updated examples path

* Added reference to Zequal

* Update example path

* Implement multidimensional array support (#53)

* Implement multidimensional array support

* Format

---------

Co-authored-by: Raghav Malik <raghav@veridise.com>

* Use z3 to run benchmarks

* Fixing things pre-demo

---------

Co-authored-by: Raghav Malik <raghav@veridise.com>
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