feat(kernel): add function param_names_to_levels
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
96f639811c
commit
82e1f87e08
4 changed files with 8 additions and 3 deletions
|
@ -187,7 +187,7 @@ struct add_inductive_fn {
|
|||
m_env(env), m_level_names(level_params), m_num_params(num_params), m_decls(decls),
|
||||
m_ngen(g_tmp_prefix), m_tc(m_env) {
|
||||
m_decls_sz = length(m_decls);
|
||||
m_levels = map2<level>(level_params, [](name const & n) { return mk_param_univ(n); });
|
||||
m_levels = param_names_to_levels(level_params);
|
||||
}
|
||||
|
||||
/** \brief Return the number of inductive datatypes being defined. */
|
||||
|
|
|
@ -686,5 +686,8 @@ bool is_geq_core(level l1, level l2) {
|
|||
bool is_geq(level const & l1, level const & l2) {
|
||||
return is_geq_core(normalize(l1), normalize(l2));
|
||||
}
|
||||
levels param_names_to_levels(level_param_names const & ps) {
|
||||
return map2<level>(ps, [](name const & p) { return mk_param_univ(p); });
|
||||
}
|
||||
}
|
||||
void print(lean::level const & l) { std::cout << l << std::endl; }
|
||||
|
|
|
@ -218,5 +218,7 @@ format pp(level const & l, options const & opts = options());
|
|||
format pp(level const & lhs, level const & rhs, bool unicode, unsigned indent);
|
||||
/** \brief Pretty print lhs <= rhs using the given configuration options. */
|
||||
format pp(level const & lhs, level const & rhs, options const & opts = options());
|
||||
/** \brief Convert a list of universe level parameter names into a list of levels. */
|
||||
levels param_names_to_levels(level_param_names const & ps);
|
||||
}
|
||||
void print(lean::level const & l);
|
||||
|
|
|
@ -39,7 +39,7 @@ struct decl_info {
|
|||
decl_info(unsigned pos, level_param_names const & lvl_deps, dependencies const & var_deps, expr const & type,
|
||||
binder_info const & bi, bool local):
|
||||
m_pos(pos), m_level_deps(lvl_deps), m_var_deps(var_deps), m_type(type), m_binder_info(bi), m_local(local) {
|
||||
m_levels = map2<level>(m_level_deps, [](name const & n) { return mk_param_univ(n); });
|
||||
m_levels = param_names_to_levels(m_level_deps);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -342,7 +342,7 @@ environment add_inductive(environment env,
|
|||
}
|
||||
// collect new params and level_params
|
||||
level_param_names extra_ls = ctx.mk_level_deps();
|
||||
levels extra_lvls = map2<level>(extra_ls, [](name const & n) { return mk_param_univ(n); });
|
||||
levels extra_lvls = param_names_to_levels(extra_ls);
|
||||
dependencies extra_ps = ctx.mk_var_deps();
|
||||
unsigned new_num_params = num_params + extra_ps.size();
|
||||
level_param_names new_ls = append(extra_ls, s_level_params);
|
||||
|
|
Loading…
Reference in a new issue