/* Copyright (c) 2014 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Author: Leonardo de Moura */ #pragma once #include "library/tactic/tactic.h" namespace lean { typedef std::function expr_to_tactic_fn; void register_expr_to_tactic(name const & n, expr_to_tactic_fn const & fn); struct register_tac { register_tac(name const & n, expr_to_tactic_fn fn) { register_expr_to_tactic(n, fn); } }; struct register_bin_tac { register_bin_tac(name const & n, std::function f); }; struct register_unary_tac { register_unary_tac(name const & n, std::function f); }; tactic expr_to_tactic(environment const & env, expr const & e); expr mk_by(expr const & e); bool is_by(expr const & e); expr const & get_by_arg(expr const & e); }