summaryrefslogtreecommitdiff
path: root/Source/Provers/Z3api/ProverLayer.cs
diff options
context:
space:
mode:
authorGravatar qadeer <unknown>2010-08-24 22:35:20 +0000
committerGravatar qadeer <unknown>2010-08-24 22:35:20 +0000
commit726e88e1ece4047db1cedbbd886b8ef701bc4bbd (patch)
treec0cbec21b2ff2da41226c19fe9e53675cbaf1ee9 /Source/Provers/Z3api/ProverLayer.cs
parent9a2266db21f64f0d755a71c383e3537b61ee5a53 (diff)
fixed z3api so that it works on small examples now.
Diffstat (limited to 'Source/Provers/Z3api/ProverLayer.cs')
-rw-r--r--Source/Provers/Z3api/ProverLayer.cs12
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/Provers/Z3api/ProverLayer.cs b/Source/Provers/Z3api/ProverLayer.cs
index f3dfab69..7c41f25c 100644
--- a/Source/Provers/Z3api/ProverLayer.cs
+++ b/Source/Provers/Z3api/ProverLayer.cs
@@ -30,6 +30,12 @@ namespace Microsoft.Boogie.Z3
this.z3ContextIsUsed = false;
}
+ public override void Close()
+ {
+ base.Close();
+ ((Z3apiProverContext)Context).cm.z3.Dispose();
+ ((Z3apiProverContext)Context).cm.config.Config.Dispose();
+ }
private bool z3ContextIsUsed;
public void PushAxiom(VCExpr axiom)
@@ -39,6 +45,7 @@ namespace Microsoft.Boogie.Z3
LineariserOptions linOptions = new Z3LineariserOptions(false, (Z3InstanceOptions)this.options, new List<VCExprVar>());
cm.AddAxiom((VCExpr)axiom, linOptions);
}
+
private void PushConjecture(VCExpr conjecture)
{
Z3SafeContext cm = ((Z3apiProverContext)ctx).cm;
@@ -60,6 +67,11 @@ namespace Microsoft.Boogie.Z3
outcome = cm.Check(out z3LabelModels);
}
+ public override void PushVCExpression(VCExpr vc)
+ {
+ PushAxiom(vc);
+ }
+
public override void BeginCheck(string descriptiveName, VCExpr vc, ErrorHandler handler)
{
LineariserOptions linOptions = new Z3LineariserOptions(false, (Z3InstanceOptions)this.options, new List<VCExprVar>());