fix(library/blast/backward/backward_action): add missing normalize at backward_action, and remove incorrect fix at discrimination tree
This commit is contained in:
parent
4821af8685
commit
810ee9759c
3 changed files with 11 additions and 12 deletions
|
@ -50,7 +50,7 @@ struct backward_proof_step_cell : public proof_step_cell {
|
|||
static action_result try_lemma(gexpr const & e, bool prop_only_branches) {
|
||||
state & s = curr_state();
|
||||
expr f = e.to_expr();
|
||||
expr type = infer_type(f);
|
||||
expr type = normalize(infer_type(f));
|
||||
expr pr = f;
|
||||
buffer<expr> mvars;
|
||||
while (true) {
|
||||
|
|
|
@ -201,13 +201,6 @@ auto discr_tree::insert_erase_app(node && n, bool is_root, expr const & e, buffe
|
|||
}
|
||||
}
|
||||
|
||||
static expr consume_annotations(expr const & e) {
|
||||
if (is_annotation(e))
|
||||
return consume_annotations(get_annotation_arg(e));
|
||||
else
|
||||
return e;
|
||||
}
|
||||
|
||||
auto discr_tree::insert_erase(node && n, bool is_root, buffer<pair<expr, bool>> & todo,
|
||||
expr const & v, buffer<pair<node, node>> & skip, bool ins) -> node {
|
||||
if (todo.empty()) {
|
||||
|
@ -221,8 +214,8 @@ auto discr_tree::insert_erase(node && n, bool is_root, buffer<pair<expr, bool>>
|
|||
|
||||
pair<expr, bool> p = todo.back();
|
||||
todo.pop_back();
|
||||
expr e = consume_annotations(p.first);
|
||||
bool fn = p.second;
|
||||
expr const & e = p.first;
|
||||
bool fn = p.second;
|
||||
|
||||
if (is_eqp(e, *g_delimiter)) {
|
||||
node old_n(n);
|
||||
|
@ -324,8 +317,8 @@ bool discr_tree::find(node const & n, list<pair<expr, bool>> todo, std::function
|
|||
return false; // stop search
|
||||
|
||||
pair<expr, bool> const & p = head(todo);
|
||||
expr e = consume_annotations(p.first);
|
||||
bool is_fn = p.second;
|
||||
expr const & e = p.first;
|
||||
bool is_fn = p.second;
|
||||
|
||||
switch (e.kind()) {
|
||||
case expr_kind::Constant: case expr_kind::Local:
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
constants (P : ℕ → Prop) (R : Prop)
|
||||
lemma foo [intro!] : (: P 0 :) → R := sorry
|
||||
constants (P0 : P 0)
|
||||
attribute P0 [intro!]
|
||||
example : R :=
|
||||
by grind -- fails
|
Loading…
Reference in a new issue