-
Notifications
You must be signed in to change notification settings - Fork 32
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
Model Counting extension #57
Open
ssahai
wants to merge
125
commits into
master
Choose a base branch
from
ssahai/modelcounting
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
125 commits
Select commit
Hold shift + click to select a range
1142d19
Initial commit on branch modelcounting.
pramodsu 97672c9
starting to parse the model counter files.
pramodsu a1d02e7
parser is beginning to work.
pramodsu c5db3a9
some more progress on the model counter.
pramodsu eff52b2
first baby proof is working.
pramodsu 998f3b6
intermediate commit.
pramodsu 3cf2f07
Merge with master after all recent commits.
pramodsu 33da53f
Moving files for modelcounter into extensions.
pramodsu 2189edc
The toy file is being parsed.
pramodsu 6a3dbdb
New syntax for counting op + rewriting infra setup.
pramodsu f72dec4
Adding a parameter list to assert statements
pramodsu ba1bd5c
More fixes for assertion parameters.
pramodsu 09b726f
Almost done with the initial working example.
pramodsu ee3ba88
Refactoring the UMC ASTs.
pramodsu ad13306
We have added support for the range rule.
pramodsu d1b9ae3
constlb and constub rules.
pramodsu 116a496
cover properties properly support.
pramodsu 818ea82
New rewriter.
pramodsu c5452e4
a few minor additions to counting_2n.
pramodsu 78e49f2
adding the indLb rule which seems to work for now.
pramodsu 607f6fa
first attempt at model count proof.
pramodsu 5101ae0
Compilation fix after merge.
pramodsu df5b162
fixed disjoint to be or rule
999b2c1
updated the test example
9475655
minor fix to example
8fc244b
added UB rule
aedd7dd
minor edit: adding assert to UB rule - ensuring counting quantifier i…
ec2a756
added AndUB rule
dff3427
added Disjoint rule
ef7a803
added injectivity rule
3810704
zkhat example
542183c
parsing indUB. Rewriting is pending for now.
b59c15b
added support for lemmas via lemma block - parsing successfully
356f303
verifying the lemmas in the control block
89a6fff
indLB for zk-hat working now
03b5ec1
minor edits while playing around with examples.
pramodsu 59743f7
updated vim syntax file
9ec6f6a
minor edit to syntax file
2b2c951
added assumptions to range statement to cater symbolic bounds
595cf61
attempting Array shuffle example - constEQ going UNDEF
4fc0a23
fixed ite printing
6ffabb8
fixed satonly decorator and assert printing
598a14d
UFs can take more than one arguements now in IndLB
8e1a6cb
indLB can take more than one ys values
cb4aa7c
asserts can be named
a333c36
fixing printing of 2 : in case asserts have names
60f345e
added descriptive names to rewritten asserts
c611648
fixed repetition of quantified variables in indLB
18db170
induction working for array shuffle
ebce038
added test for indLB. Working fine now
719e4a3
added indUB
bf04408
updated/added tests for all the proof rules
29e99db
minor edit to fix warning while building the universal package
103a771
update author info in modelcounting extension
ca5f2bd
config options works with UMC now
6502265
Add array reads to readset
polgreen 2e1ffcc
remove parenthesis from file names
polgreen c76ef1e
pre-emptively check for array selects on LHS of primed var assign
polgreen 41b55f0
Merge pull request #60 from polgreen/neater_filenmaes
polgreen 33a24ca
Merge pull request #58 from polgreen/test_redundant_assign
polgreen 828c3c4
added counting script for zkHAT - motivating example from CAV20 paper
7e6ce29
update z3 version in readme
polgreen 2e0caa2
Merge pull request #61 from uclid-org/polgreen-patch-1
polgreen 4d13e51
README: Improve clarity
791e283
README.md: Add hyperlinks to help people navigate README
1defdfb
Merge pull request #62 from ymanerka/master
ymanerka 69199e1
add minimalist contribution guidelines
polgreen 25f2fc3
Merge pull request #63 from polgreen/contrib
polgreen 09fb91e
Initial commit on branch modelcounting.
pramodsu 113c42d
starting to parse the model counter files.
pramodsu 539ef60
parser is beginning to work.
pramodsu 90e5ec5
some more progress on the model counter.
pramodsu 33d0d4b
first baby proof is working.
pramodsu 60a2aae
intermediate commit.
pramodsu 09727b7
Merge with master after all recent commits.
pramodsu e8ba396
Moving files for modelcounter into extensions.
pramodsu f384992
The toy file is being parsed.
pramodsu 0db408e
New syntax for counting op + rewriting infra setup.
pramodsu 104d419
Adding a parameter list to assert statements
pramodsu 5ade17d
More fixes for assertion parameters.
pramodsu ee56eaf
Almost done with the initial working example.
pramodsu 57afb53
Refactoring the UMC ASTs.
pramodsu 02a20ad
We have added support for the range rule.
pramodsu be834da
constlb and constub rules.
pramodsu 8120ee5
cover properties properly support.
pramodsu f77c40e
New rewriter.
pramodsu 100792e
a few minor additions to counting_2n.
pramodsu 8f2e1f1
adding the indLb rule which seems to work for now.
pramodsu 73ac002
first attempt at model count proof.
pramodsu d6c6459
Compilation fix after merge.
pramodsu 97105bb
fixed disjoint to be or rule
2caf963
updated the test example
afd8fa0
minor fix to example
4734acd
added UB rule
d696a7c
minor edit: adding assert to UB rule - ensuring counting quantifier i…
c7e0650
added AndUB rule
249d920
added Disjoint rule
8079384
added injectivity rule
80dcbb6
zkhat example
b15cd63
parsing indUB. Rewriting is pending for now.
2f19e33
added support for lemmas via lemma block - parsing successfully
6ad096a
verifying the lemmas in the control block
13466ed
indLB for zk-hat working now
d5d1d02
minor edits while playing around with examples.
pramodsu 5829b6e
updated vim syntax file
cbd5241
minor edit to syntax file
e18f5a4
added assumptions to range statement to cater symbolic bounds
d40d5c4
attempting Array shuffle example - constEQ going UNDEF
2d7a524
fixed ite printing
d493f5b
fixed satonly decorator and assert printing
5037993
UFs can take more than one arguements now in IndLB
049edb1
indLB can take more than one ys values
9e0d1f8
asserts can be named
8bb817f
fixing printing of 2 : in case asserts have names
245a590
added descriptive names to rewritten asserts
d7824fd
fixed repetition of quantified variables in indLB
04f9709
induction working for array shuffle
4beacbc
added test for indLB. Working fine now
409de53
added indUB
9b0eb83
updated/added tests for all the proof rules
eefb68b
minor edit to fix warning while building the universal package
8c9832c
update author info in modelcounting extension
aa89b1a
config options works with UMC now
b6677d0
added counting script for zkHAT - motivating example from CAV20 paper
a83a564
Merge branch 'ssahai/modelcounting' of github.com:uclid-org/uclid int…
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# Contributing to UCLID5 | ||
|
||
UCLID5 is a relatively new tool and we welcome new contributors who want to get involved. Here are some very minimalistic guidelines on code and pull requests: | ||
|
||
|
||
## CODE: | ||
1. Every new function introduced should be documented, for example like this: | ||
~~~ | ||
/** | ||
* Create new SMT symbolic variables for each state. | ||
* | ||
* This is called after each step of symbolic simulation and prevents the expression | ||
* trees from blowing up. | ||
* | ||
* @param st The symbol table. | ||
* @param step The current frame number. | ||
* @param scope The current scope. | ||
*/ | ||
def renameStates(st : SymbolTable, eqStates : Set[Identifier], frameNumber : Int, scope : Scope, addAssumption : (smt.Expr, List[ExprDecorator]) => Unit) : SymbolTable = { | ||
~~~ | ||
|
||
2. Please don’t leave commented out code in the code base if you can avoid it. If it really must stay, add a comment to it saying why it must stay, what it was for and why it was commented out. | ||
|
||
## Pull requests: | ||
1. Each new feature or bug fix should be done on a new branch | ||
2. Create a separate PR for each new feature or bug fix. | ||
3. Where possible break down large new features into separate PRs. | ||
4. Every PR for a new feature should include a set of regression tests that fully test the feature | ||
5. Every PR for a bug fix should include a regression test that tests the fix | ||
6. When you get feedback on a PR, push the changes to the same branch so they appear in the same PR. | ||
7. Write good commit messages: https://blogs.gnome.org/danni/2011/10/25/a-guide-to-writing-git-commit-messages/ | ||
Every commit should have a meaningful commit message, which is less than 72 characters long. If you need more than that, the commit should have a short heading commit message followed by a longer description on a new line. | ||
8. Tidy up your commit history before you PR: use interactive rebase to squash together messy commits into a single meaningful commit with a good commit message. e.g., these two commits should be squashed into one: | ||
~~~ | ||
commit c76ef1e8bbfa1cb06f42dsdd3g02138002bca938 | ||
Author: polgreen <[email protected]> | ||
Date: Tue Oct 27 15:12:03 2020 -0700 | ||
|
||
fixes mistake in previous commit | ||
|
||
commit 6502265e4a85688ff92d963419c1957ef3cb73b5 | ||
Author: polgreen <[email protected]> | ||
Date: Tue Oct 27 11:18:52 2020 -0700 | ||
|
||
Add array reads to readset | ||
|
||
The redundant assignment eliminator was removing relevant assigns because | ||
it was failing to count array select statements as reads of the index variable, if the array select | ||
happens on the LHS of an assign. Bug exposed by test/test-redundant-assign.ucl | ||
~~~ | ||
9. Preserve bisectability: every commit should compile. If your commit does not compile, use interactive rebase to fix it. | ||
10. Don’t change whitespace unnecessarily. If you are going to change whitespace, then change it in a specific commit with a message that says “white space changes” | ||
11. Don’t change the .gitignore unnecessarily. If you are going to change it, do it in a separate commit with a message that explains why the commit is necessary | ||
12. Delete any branches on the main repo (uclid-org/uclid) as soon as the PR has been merged. If you want to keep branches, do it on your own fork. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just out of curiosity, why are we adding this?