void definition_cache::add(environment const & env, name const & n, expr const & pre_type, expr const & pre_value,
                           level_param_names const & ls, expr const & type, expr const & value, bool is_trusted) {
    dependencies deps;
    collect_dependencies(env, type, deps);
    collect_dependencies(env, value, deps);
    uint64 fingerprint = get_fingerprint(env);
    lock_guard<mutex> lc(m_mutex);
    add_core(n, pre_type, pre_value, ls, type, value, deps, fingerprint, is_trusted);
}
Exemple #2
0
static simp_rule_sets add_core(type_checker & tc, simp_rule_sets const & s, name const & cname) {
    declaration const & d = tc.env().get(cname);
    buffer<level> us;
    unsigned num_univs = d.get_num_univ_params();
    for (unsigned i = 0; i < num_univs; i++) {
        us.push_back(mk_meta_univ(name(*g_prefix, i)));
    }
    levels ls = to_list(us);
    expr e    = instantiate_type_univ_params(d, ls);
    expr h    = mk_constant(cname, ls);
    return add_core(tc, s, cname, ls, e, h);
}
Exemple #3
0
 void add_simp(environment const & env, name const & cname) {
     type_checker tc(env);
     m_sets = add_core(tc, m_sets, cname);
     m_simp_names.insert(cname);
 }
Exemple #4
0
simp_rule_sets add(type_checker & tc, simp_rule_sets const & s, name const & id, expr const & e, expr const & h) {
    return add_core(tc, s, id, list<level>(), e, h);
}
Exemple #5
0
parse_table parse_table::add(unsigned num, transition const * ts, expr const & a, unsigned priority, bool overload) const {
    buffer<action> postponed;
    expr new_a = annotate_macro_subterms(a);
    validate_transitions(is_nud(), num, ts, new_a);
    return add_core(num, ts, new_a, priority, overload, postponed);
}