0

I am currently going through following documents:

https://rise4fun.com/z3/tutorial/strategies http://z3prover.github.io/api/html/namespace_microsoft_1_1_z3.html

In one of our academic research project, we are using Z3 for problem-solving. It is written using Z3 C# API. We want to use the concept of tactics, goals, and sub-goals. We want to give tactics using tactic combinators (aka tacticals). However, in the C# API, I could not find any way to use combinators like (then ..) (or-else ...).

Is there any API function I can use to create such combinators?

The way a single tactic can be used is as follows:

Tactic t = Context.MkTactic("simplify");
Context.MkSolver(Tactic)
Amarjit Datta
  • 251
  • 2
  • 7

1 Answers1

1

The tactic combinator constructors are on the Context, e.g. AndThen.

Christoph Wintersteiger
  • 8,234
  • 1
  • 16
  • 30
  • I have one more question. How can I pass parameters when I do checkstat using tactics. For example: (check-sat-using (par-or ;; Strategy 1: using seed 1 (using-params smt :random-seed 1) ;; Strategy 1: using seed 2 (using-params smt :random-seed 2) ;; Strategy 1: using seed 3 (using-params smt :random-seed 3))) – Amarjit Datta Mar 28 '18 at 22:46
  • The using-params combinator is here: http://z3prover.github.io/api/html/class_microsoft_1_1_z3_1_1_context.html#a3e3d60da381d732b9df8467c0bd9381a – Christoph Wintersteiger Apr 01 '18 at 17:11