Skip to content

Commit e8d1180

Browse files
committed
[feat] Specific Vampire mode for TTA
1 parent cb9c691 commit e8d1180

2 files changed

Lines changed: 15 additions & 8 deletions

File tree

ConsoleRunner.fs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,13 +103,13 @@ type SolveArguments =
103103
| Table -> "Generate .csv statistics table after solving"
104104
| Transform _ -> "Apply additional transformations to the problem (default: disabled; the solver is run on the original)"
105105

106-
let private solverByName = function
106+
let private solverByName options = function
107107
| MyZ3 -> MyZ3Solver() :> SolverProgramRunner
108108
| Z3 -> Z3Solver() :> SolverProgramRunner
109109
| Eldarica -> EldaricaSolver() :> SolverProgramRunner
110110
| CVC_Ind -> CVC4IndSolver() :> SolverProgramRunner
111111
| VeriMAP -> VeriMAPiddtSolver() :> SolverProgramRunner
112-
| Vampire -> VampireSolver() :> SolverProgramRunner
112+
| Vampire -> VampireSolver(options) :> SolverProgramRunner
113113
| CVC_FMF -> CVCFiniteSolver() :> SolverProgramRunner
114114
| RCHC -> RCHCSolver() :> SolverProgramRunner
115115
// | All -> AllSolver() :> SolverProgramRunner
@@ -190,13 +190,14 @@ let private solve_from_path (solver : SolverProgramRunner) (transformer : Transf
190190

191191
let private solve outputPath runSame (options : ParseResults<SolveArguments>) =
192192
let solver_name = options.GetResult(Solver)
193-
let solver = solverByName solver_name
194-
let transformer =
193+
let transformer, opts =
195194
match options.TryGetResult(Transform) with
196195
| Some _ as transformOptions ->
197196
let mode = solverNameToTransformMode solver_name
198-
modeToTransformerProgram mode transformOptions runSame |> fst |> Some
199-
| None -> None
197+
let t, opts = modeToTransformerProgram mode transformOptions runSame
198+
Some t, Some opts
199+
| None -> None, None
200+
let solver = solverByName opts solver_name
200201
match options.TryGetResult(Path) with
201202
| None ->
202203
match options.Contains(In) with

Solvers.fs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,15 @@ type VeriMAPiddtSolver () =
166166

167167
type private refutationSource = Axiom | Inference of string * string list
168168

169-
type VampireSolver () =
169+
type VampireSolver (options : transformOptions option) =
170170
inherit SolverProgramRunner ()
171171

172+
let isRunOnTTATransform =
173+
match options with
174+
| Some options -> options.tta_transform
175+
| None -> false
176+
let mode = if isRunOnTTATransform then "-sa fmb" else "--mode chccomp"
177+
172178
let splitModules output =
173179
let reDelimiter = Regex("^(% )?[-]+$")
174180
let isDelimiter s = reDelimiter.Match(s).Success
@@ -287,7 +293,7 @@ type VampireSolver () =
287293
override x.Name = "Vampire"
288294
override x.BinaryName = "vampire"
289295
override x.BinaryOptions filename =
290-
$"""--mode chccomp --memory_limit {MEMORY_LIMIT_MB} --time_limit {SECONDS_TIMEOUT}s %s{filename}"""
296+
$"""{mode} --memory_limit {MEMORY_LIMIT_MB} --time_limit {SECONDS_TIMEOUT}s %s{filename}"""
291297

292298
override x.InterpretResult error raw_output =
293299
let output = Environment.split raw_output

0 commit comments

Comments
 (0)