refactor(library/tactic): remove tactics whnf and beta
This commit is contained in:
parent
29ad781ec2
commit
128d6cdec2
9 changed files with 1 additions and 82 deletions
|
|
@ -35,9 +35,7 @@ definition eassumption : tactic := builtin
|
||||||
definition state : tactic := builtin
|
definition state : tactic := builtin
|
||||||
definition fail : tactic := builtin
|
definition fail : tactic := builtin
|
||||||
definition id : tactic := builtin
|
definition id : tactic := builtin
|
||||||
definition beta : tactic := builtin
|
|
||||||
definition info : tactic := builtin
|
definition info : tactic := builtin
|
||||||
definition whnf : tactic := builtin
|
|
||||||
definition contradiction : tactic := builtin
|
definition contradiction : tactic := builtin
|
||||||
definition exfalso : tactic := builtin
|
definition exfalso : tactic := builtin
|
||||||
definition congruence : tactic := builtin
|
definition congruence : tactic := builtin
|
||||||
|
|
|
||||||
|
|
@ -35,9 +35,7 @@ definition eassumption : tactic := builtin
|
||||||
definition state : tactic := builtin
|
definition state : tactic := builtin
|
||||||
definition fail : tactic := builtin
|
definition fail : tactic := builtin
|
||||||
definition id : tactic := builtin
|
definition id : tactic := builtin
|
||||||
definition beta : tactic := builtin
|
|
||||||
definition info : tactic := builtin
|
definition info : tactic := builtin
|
||||||
definition whnf : tactic := builtin
|
|
||||||
definition contradiction : tactic := builtin
|
definition contradiction : tactic := builtin
|
||||||
definition exfalso : tactic := builtin
|
definition exfalso : tactic := builtin
|
||||||
definition congruence : tactic := builtin
|
definition congruence : tactic := builtin
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
add_library(tactic OBJECT goal.cpp proof_state.cpp tactic.cpp elaborate.cpp
|
add_library(tactic OBJECT goal.cpp proof_state.cpp tactic.cpp elaborate.cpp
|
||||||
apply_tactic.cpp intros_tactic.cpp rename_tactic.cpp trace_tactic.cpp
|
apply_tactic.cpp intros_tactic.cpp rename_tactic.cpp trace_tactic.cpp
|
||||||
exact_tactic.cpp generalize_tactic.cpp inversion_tactic.cpp
|
exact_tactic.cpp generalize_tactic.cpp inversion_tactic.cpp
|
||||||
whnf_tactic.cpp revert_tactic.cpp assert_tactic.cpp clear_tactic.cpp
|
revert_tactic.cpp assert_tactic.cpp clear_tactic.cpp
|
||||||
expr_to_tactic.cpp location.cpp rewrite_tactic.cpp util.cpp
|
expr_to_tactic.cpp location.cpp rewrite_tactic.cpp util.cpp
|
||||||
init_module.cpp change_tactic.cpp check_expr_tactic.cpp note_tactic.cpp
|
init_module.cpp change_tactic.cpp check_expr_tactic.cpp note_tactic.cpp
|
||||||
contradiction_tactic.cpp exfalso_tactic.cpp constructor_tactic.cpp
|
contradiction_tactic.cpp exfalso_tactic.cpp constructor_tactic.cpp
|
||||||
|
|
|
||||||
|
|
@ -393,8 +393,6 @@ void initialize_expr_to_tactic() {
|
||||||
[]() { return now_tactic(); });
|
[]() { return now_tactic(); });
|
||||||
register_simple_tac(get_tactic_fail_name(),
|
register_simple_tac(get_tactic_fail_name(),
|
||||||
[]() { return fail_tactic(); });
|
[]() { return fail_tactic(); });
|
||||||
register_simple_tac(get_tactic_beta_name(),
|
|
||||||
[]() { return beta_tactic(); });
|
|
||||||
register_bin_tac(get_tactic_and_then_name(),
|
register_bin_tac(get_tactic_and_then_name(),
|
||||||
[](tactic const & t1, tactic const & t2) { return then(t1, t2); });
|
[](tactic const & t1, tactic const & t2) { return then(t1, t2); });
|
||||||
register_bin_tac(get_tactic_par_name(),
|
register_bin_tac(get_tactic_par_name(),
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@ Author: Leonardo de Moura
|
||||||
#include "library/tactic/trace_tactic.h"
|
#include "library/tactic/trace_tactic.h"
|
||||||
#include "library/tactic/exact_tactic.h"
|
#include "library/tactic/exact_tactic.h"
|
||||||
#include "library/tactic/generalize_tactic.h"
|
#include "library/tactic/generalize_tactic.h"
|
||||||
#include "library/tactic/whnf_tactic.h"
|
|
||||||
#include "library/tactic/clear_tactic.h"
|
#include "library/tactic/clear_tactic.h"
|
||||||
#include "library/tactic/revert_tactic.h"
|
#include "library/tactic/revert_tactic.h"
|
||||||
#include "library/tactic/inversion_tactic.h"
|
#include "library/tactic/inversion_tactic.h"
|
||||||
|
|
@ -45,7 +44,6 @@ void initialize_tactic_module() {
|
||||||
initialize_trace_tactic();
|
initialize_trace_tactic();
|
||||||
initialize_exact_tactic();
|
initialize_exact_tactic();
|
||||||
initialize_generalize_tactic();
|
initialize_generalize_tactic();
|
||||||
initialize_whnf_tactic();
|
|
||||||
initialize_clear_tactic();
|
initialize_clear_tactic();
|
||||||
initialize_revert_tactic();
|
initialize_revert_tactic();
|
||||||
initialize_inversion_tactic();
|
initialize_inversion_tactic();
|
||||||
|
|
@ -88,7 +86,6 @@ void finalize_tactic_module() {
|
||||||
finalize_inversion_tactic();
|
finalize_inversion_tactic();
|
||||||
finalize_revert_tactic();
|
finalize_revert_tactic();
|
||||||
finalize_clear_tactic();
|
finalize_clear_tactic();
|
||||||
finalize_whnf_tactic();
|
|
||||||
finalize_generalize_tactic();
|
finalize_generalize_tactic();
|
||||||
finalize_exact_tactic();
|
finalize_exact_tactic();
|
||||||
finalize_trace_tactic();
|
finalize_trace_tactic();
|
||||||
|
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright (c) 2014 Microsoft Corporation. All rights reserved.
|
|
||||||
Released under Apache 2.0 license as described in the file LICENSE.
|
|
||||||
|
|
||||||
Author: Leonardo de Moura
|
|
||||||
*/
|
|
||||||
#include "library/constants.h"
|
|
||||||
#include "library/reducible.h"
|
|
||||||
#include "library/tactic/expr_to_tactic.h"
|
|
||||||
#include "library/tactic/elaborate.h"
|
|
||||||
#include "library/tactic/whnf_tactic.h"
|
|
||||||
|
|
||||||
namespace lean {
|
|
||||||
tactic whnf_tactic() {
|
|
||||||
return tactic01([=](environment const & env, io_state const & ios, proof_state const & ps) {
|
|
||||||
goals const & gs = ps.get_goals();
|
|
||||||
if (empty(gs))
|
|
||||||
return none_proof_state();
|
|
||||||
auto tc = mk_type_checker(env);
|
|
||||||
goal g = head(gs);
|
|
||||||
goals tail_gs = tail(gs);
|
|
||||||
expr type = g.get_type();
|
|
||||||
auto t_cs = tc->whnf(type);
|
|
||||||
goals new_gs(goal(g.get_meta(), t_cs.first), tail_gs);
|
|
||||||
proof_state new_ps(ps, new_gs);
|
|
||||||
if (solve_constraints(env, ios, new_ps, t_cs.second)) {
|
|
||||||
return some_proof_state(new_ps);
|
|
||||||
} else {
|
|
||||||
return none_proof_state();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void initialize_whnf_tactic() {
|
|
||||||
register_tac(get_tactic_whnf_name(),
|
|
||||||
[](old_type_checker &, elaborate_fn const &, expr const &, pos_info_provider const *) {
|
|
||||||
return whnf_tactic();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
void finalize_whnf_tactic() {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
/*
|
|
||||||
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 {
|
|
||||||
tactic whnf_tactic();
|
|
||||||
void initialize_whnf_tactic();
|
|
||||||
void finalize_whnf_tactic();
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
import logic
|
|
||||||
|
|
||||||
-- definition id {A : Type} (a : A) := a
|
|
||||||
|
|
||||||
theorem tst (a : Prop) : a → id a :=
|
|
||||||
begin
|
|
||||||
intro Ha,
|
|
||||||
whnf,
|
|
||||||
state,
|
|
||||||
apply Ha
|
|
||||||
end
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
whnf_tac.lean:9:2: proof state
|
|
||||||
a : Prop,
|
|
||||||
Ha : a
|
|
||||||
⊢ a
|
|
||||||
Loading…
Add table
Reference in a new issue