/* Copyright (c) 2015 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Author: Leonardo de Moura */ #include #include "library/blast/simplifier/simplifier_strategies.h" #include "library/blast/strategies/simple_strategy.h" #include "library/blast/strategies/preprocess_strategy.h" namespace lean { namespace blast { static optional apply_preprocess() { return preprocess_and_then([]() { return none_expr(); })(); } static optional apply_simp() { return mk_simplify_using_hypotheses_strategy()(); } static optional apply_simp_nohyps() { return mk_simplify_all_strategy()(); } static optional apply_simple() { return preprocess_and_then(mk_simple_strategy())(); } optional apply_strategy() { std::string s_name(get_config().m_strategy); if (s_name == "preprocess") { return apply_preprocess(); } else if (s_name == "simp") { return apply_simp(); } else if (s_name == "simp_nohyps") { return apply_simp_nohyps(); } else if (s_name == "simple") { return apply_simple(); } else { // TODO(Leo): add more builtin strategies return apply_simple(); } } }}