summaryrefslogtreecommitdiff
path: root/Source/Provers/Simplify
diff options
context:
space:
mode:
authorGravatar wuestholz <unknown>2010-05-28 15:50:36 +0000
committerGravatar wuestholz <unknown>2010-05-28 15:50:36 +0000
commit3b8dca0b54c45519be8f7e0c4c1ac92824690d28 (patch)
tree426b62d8f8cefc27a432b1f5c4c6aef320522fba /Source/Provers/Simplify
parent2b69afeda750b2a6255ca32268b6a60bf24a5970 (diff)
Updated to find the latest version of Z3 (2.7) and made the algorithm slightly more robust.
Diffstat (limited to 'Source/Provers/Simplify')
-rw-r--r--Source/Provers/Simplify/ProverInterface.ssc18
1 files changed, 15 insertions, 3 deletions
diff --git a/Source/Provers/Simplify/ProverInterface.ssc b/Source/Provers/Simplify/ProverInterface.ssc
index f8845576..c885f84e 100644
--- a/Source/Provers/Simplify/ProverInterface.ssc
+++ b/Source/Provers/Simplify/ProverInterface.ssc
@@ -198,18 +198,30 @@ namespace Microsoft.Boogie.Simplify
// Initialize '_proverPath'
_proverPath = Path.Combine(CodebaseString(), proverExe);
string firstTry = _proverPath;
- for (int minorVersion = 6; true; minorVersion--) {
+
+ string programFiles = Environment.GetEnvironmentVariable("ProgramFiles");
+ assert programFiles != null;
+ string programFilesX86 = Environment.GetEnvironmentVariable("ProgramFiles(x86)");
+ if (programFiles.Equals(programFilesX86)) {
+ // If both %ProgramFiles% and %ProgramFiles(x86)% point to "ProgramFiles (x86)", use %ProgramW6432% instead.
+ programFiles = Environment.GetEnvironmentVariable("ProgramW6432");
+ }
+
+ for (int minorVersion = 7; true; minorVersion--) {
if (File.Exists(_proverPath)) {
return; // all seems good
}
if (minorVersion < 0) {
throw new ProverException("Cannot find executable: " + firstTry);
}
- _proverPath = Path.Combine(@"c:\Program Files\Microsoft Research\Z3-2." + minorVersion + "\\bin", proverExe);
+ _proverPath = Path.Combine(programFiles + @"\Microsoft Research\Z3-2." + minorVersion + @"\bin", proverExe);
+
if (File.Exists(_proverPath)) {
return; // all seems good
}
- _proverPath = Path.Combine(@"c:\Program Files (x86)\Microsoft Research\Z3-2." + minorVersion + "\\bin", proverExe);
+ if (programFilesX86 != null) {
+ _proverPath = Path.Combine(programFilesX86 + @"\Microsoft Research\Z3-2." + minorVersion + @"\bin", proverExe);
+ }
}
}
}