/* Copyright (c) 2016 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Author: Daniel Selsam */ #include "kernel/inductive/inductive.h" #include "kernel/abstract.h" #include "util/sexpr/option_declarations.h" #include "library/locals.h" #include "library/module.h" #include "library/attribute_manager.h" #include "library/inductive_compiler/compiler.h" #include "library/inductive_compiler/basic.h" #include "library/inductive_compiler/mutual.h" #include "library/inductive_compiler/nested.h" #include "library/inductive_compiler/ginductive.h" namespace lean { environment add_inner_inductive_declaration(environment const & env, name_generator & ngen, options const & opts, name_map implicit_infer_map, ginductive_decl & decl, bool is_meta) { lean_assert(decl.get_inds().size() == decl.get_intro_rules().size()); if (!is_meta) { if (optional new_env = add_nested_inductive_decl(env, ngen, opts, implicit_infer_map, decl, is_meta)) { return register_ginductive_decl(*new_env, decl, ginductive_kind::NESTED); } } if (decl.is_mutual()) { return register_ginductive_decl(add_mutual_inductive_decl(env, ngen, opts, implicit_infer_map, decl, is_meta), decl, ginductive_kind::MUTUAL); } else { lean_assert(!decl.is_mutual()); return register_ginductive_decl(add_basic_inductive_decl(env, opts, implicit_infer_map, decl, is_meta), decl, ginductive_kind::BASIC); } } void initialize_inductive_compiler() {} void finalize_inductive_compiler() {} }