viperproject / viperproject/silver
make trigger-generation code less sensitive to arithmetic
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 100
- Forks
- 53
- Avg merge
- 8h 10m
- Merged PRs (30d)
- 2
Description
Created by @alexanderjsummers on 2014-11-10 14:32
Last updated on 2018-06-09 12:24
In some cases, trigger generation is sensitive to the way in which arithmetic is expressed, since arithmetic operations are ruled out in triggers. We could try to automatically rewrite such quantifiers, instead of failing to find triggers for them. For example:
//invariant forall j:Int :: 0<=j && j < n && (x+j) in [0..length(a)) && (y+j) in [0..length(a)) ==> loc(a,x+j).val == loc(a,y+j).val // no triggers involving loc are available
// REWRITTEN USING: j==k-x, k==j+x
invariant forall k:Int :: x<=k && k < x+n ==> loc(a,k).val == loc(a,y+k-x).val // triggers on loc(a,k)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue does not name an implementation file, test, or entry point. Start by locating the trigger-generation code and existing tests for arithmetic-sensitive quantifiers; done means equivalent quantifiers are automatically rewritten so usable triggers are found instead of generation failing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100