The tactic mk_dec_eq_instance constructs a function using the brec_on recursor. The compiler generates horrible code for this kind of definition. It creates a closure for each recursive call. Moreover, `brec_on` accumulates all intermediate results. To generate efficient code, we need to generate a collection of recursive equations, and then invoke the equation compiler. cc @kha
15 lines
741 B
Text
15 lines
741 B
Text
/-
|
|
Copyright (c) 2016 Microsoft Corporation. All rights reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
Authors: Leonardo de Moura
|
|
-/
|
|
prelude
|
|
import init.meta.name init.meta.options init.meta.format init.meta.rb_map
|
|
import init.meta.level init.meta.expr init.meta.environment init.meta.attribute
|
|
import init.meta.tactic init.meta.contradiction_tactic init.meta.constructor_tactic
|
|
import init.meta.injection_tactic init.meta.relation_tactics init.meta.fun_info
|
|
import init.meta.congr_lemma init.meta.match_tactic init.meta.rewrite_tactic
|
|
import init.meta.derive init.meta.simp_tactic init.meta.set_get_option_tactics
|
|
import init.meta.interactive
|
|
import init.meta.comp_value_tactics
|
|
import init.meta.congr_tactic
|