summaryrefslogtreecommitdiff
path: root/Source/Core/LinearSets.cs
diff options
context:
space:
mode:
authorGravatar Unknown <qadeer@FAIZ-AHMED-FAIZ.redmond.corp.microsoft.com>2013-01-30 12:43:15 -0800
committerGravatar Unknown <qadeer@FAIZ-AHMED-FAIZ.redmond.corp.microsoft.com>2013-01-30 12:43:15 -0800
commit06055fdd22eeb9015d215e71996e4714c183ef19 (patch)
treebdd9aa1ee6667426903f7721abc8d84f1873da83 /Source/Core/LinearSets.cs
parentb2ed78d44c2b79dd0ed070012ee0d310fb7a4ad0 (diff)
handling old() in stable assertions
bug fix in linear
Diffstat (limited to 'Source/Core/LinearSets.cs')
-rw-r--r--Source/Core/LinearSets.cs10
1 files changed, 5 insertions, 5 deletions
diff --git a/Source/Core/LinearSets.cs b/Source/Core/LinearSets.cs
index ffbd4e31..4edbfeed 100644
--- a/Source/Core/LinearSets.cs
+++ b/Source/Core/LinearSets.cs
@@ -480,11 +480,15 @@ namespace Microsoft.Boogie
lhsVars.Add(v);
domainNames.Add(varToDomainName[v]);
}
- foreach (Variable v in lhsVars.Except(rhsVars))
+ foreach (Variable v in lhsVars.Union(rhsVars))
{
Drain(newCmds, v, varToDomainName[v]);
}
newCmds.Add(callCmd);
+ foreach (string domainName in domainNames)
+ {
+ newCmds.Add(new AssumeCmd(Token.NoToken, DisjointnessExpr(domainName, domainNameToScope[domainName])));
+ }
IdentifierExprSeq havocExprs = new IdentifierExprSeq();
foreach (Variable v in rhsVars.Except(lhsVars))
{
@@ -494,10 +498,6 @@ namespace Microsoft.Boogie
{
TransformHavocCmd(newCmds, new HavocCmd(Token.NoToken, havocExprs), copies, domainNameToScope);
}
- foreach (string domainName in domainNames)
- {
- newCmds.Add(new AssumeCmd(Token.NoToken, DisjointnessExpr(domainName, domainNameToScope[domainName])));
- }
}
void TransformAssignCmd(CmdSeq newCmds, AssignCmd assignCmd, Dictionary<Variable, LocalVariable> copies, Dictionary<string, HashSet<Variable>> domainNameToScope)