summaryrefslogtreecommitdiff
path: root/Source/VCGeneration/ConditionGeneration.cs
diff options
context:
space:
mode:
authorGravatar Rustan Leino <leino@microsoft.com>2012-06-08 18:22:08 -0700
committerGravatar Rustan Leino <leino@microsoft.com>2012-06-08 18:22:08 -0700
commitb663406e442285d3774342cf5a8f1dd8b84f2755 (patch)
tree91eede7be63ae1bfdf8a9e04d7f3cdf9f88fafa8 /Source/VCGeneration/ConditionGeneration.cs
parent13d31d4e91c4d15506069e73d62573cb566abbaf (diff)
Dafny/Boogie/BVD: made Dafny plug-in for BVD work again
Diffstat (limited to 'Source/VCGeneration/ConditionGeneration.cs')
-rw-r--r--Source/VCGeneration/ConditionGeneration.cs12
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/VCGeneration/ConditionGeneration.cs b/Source/VCGeneration/ConditionGeneration.cs
index ba58a5de..9837626d 100644
--- a/Source/VCGeneration/ConditionGeneration.cs
+++ b/Source/VCGeneration/ConditionGeneration.cs
@@ -206,11 +206,23 @@ namespace Microsoft.Boogie {
}
}
+ void ApplyRedirections(Model m) {
+ var mapping = new Dictionary<Model.Element, Model.Element>();
+ foreach (var name in new string[] { "U_2_bool", "U_2_int" }) {
+ Model.Func f = m.TryGetFunc(name);
+ if (f != null && f.Arity == 1) {
+ foreach (var ft in f.Apps) mapping[ft.Args[0]] = ft.Result;
+ }
+ }
+ m.Substitute(mapping);
+ }
+
public Model GetModelWithStates()
{
if (Model == null) return null;
Model m = Model;
+ ApplyRedirections(m);
var mvstates = m.TryGetFunc("@MV_state");
if (MvInfo == null || mvstates == null)