z3-z3-4.13.0.src.cmd_context.tactic_manager.h Maven / Gradle / Ivy
The newest version!
/*++
Copyright (c) 2012 Microsoft Corporation
Module Name:
tactic_manager.h
Abstract:
Collection of tactics & probes
Author:
Leonardo (leonardo) 2012-03-06
Notes:
--*/
#pragma once
#include "cmd_context/tactic_cmds.h"
#include "cmd_context/simplifier_cmds.h"
#include "util/dictionary.h"
class tactic_manager {
protected:
dictionary m_name2tactic;
dictionary m_name2probe;
dictionary m_name2simplifier;
ptr_vector m_tactics;
ptr_vector m_simplifiers;
ptr_vector m_probes;
void finalize_tactic_manager();
public:
~tactic_manager();
void insert(tactic_cmd * c);
void insert(simplifier_cmd* c);
void insert(probe_info * p);
tactic_cmd * find_tactic_cmd(symbol const & s) const;
probe_info * find_probe(symbol const & s) const;
simplifier_cmd* find_simplifier_cmd(symbol const& s) const;
unsigned num_tactics() const { return m_tactics.size(); }
unsigned num_probes() const { return m_probes.size(); }
unsigned num_simplifiers() const { return m_simplifiers.size(); }
tactic_cmd * get_tactic(unsigned i) const { return m_tactics[i]; }
probe_info * get_probe(unsigned i) const { return m_probes[i]; }
simplifier_cmd *get_simplifier(unsigned i) const { return m_simplifiers[i]; }
ptr_vector const& simplifiers() const { return m_simplifiers; }
ptr_vector const& tactics() const { return m_tactics; }
ptr_vector const& probes() const { return m_probes; }
};