All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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; }
    
        
};








© 2015 - 2024 Weber Informatics LLC | Privacy Policy