feat(library/head_map): support local name in the head_map
This commit is contained in:
parent
bd06bf9fb1
commit
41e14fddf8
2 changed files with 7 additions and 5 deletions
|
@ -22,13 +22,15 @@ head_index::head_index(expr const & e) {
|
||||||
}
|
}
|
||||||
m_kind = f.kind();
|
m_kind = f.kind();
|
||||||
if (is_constant(f))
|
if (is_constant(f))
|
||||||
m_const_name = const_name(f);
|
m_name = const_name(f);
|
||||||
|
else if (is_local(f))
|
||||||
|
m_name = mlocal_name(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
int head_index::cmp::operator()(head_index const & i1, head_index const & i2) const {
|
int head_index::cmp::operator()(head_index const & i1, head_index const & i2) const {
|
||||||
if (i1.m_kind != i2.m_kind || i1.m_kind != expr_kind::Constant)
|
if (i1.m_kind != i2.m_kind || (i1.m_kind != expr_kind::Constant && i1.m_kind != expr_kind::Local))
|
||||||
return static_cast<int>(i1.m_kind) - static_cast<int>(i2.m_kind);
|
return static_cast<int>(i1.m_kind) - static_cast<int>(i2.m_kind);
|
||||||
else
|
else
|
||||||
return quick_cmp(i1.m_const_name, i2.m_const_name);
|
return quick_cmp(i1.m_name, i2.m_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,9 +12,9 @@ Author: Leonardo de Moura
|
||||||
namespace lean {
|
namespace lean {
|
||||||
struct head_index {
|
struct head_index {
|
||||||
expr_kind m_kind;
|
expr_kind m_kind;
|
||||||
name m_const_name;
|
name m_name;
|
||||||
explicit head_index(expr_kind k = expr_kind::Var):m_kind(k) {}
|
explicit head_index(expr_kind k = expr_kind::Var):m_kind(k) {}
|
||||||
explicit head_index(name const & c):m_kind(expr_kind::Constant), m_const_name(c) {}
|
explicit head_index(name const & c):m_kind(expr_kind::Constant), m_name(c) {}
|
||||||
head_index(expr const & e);
|
head_index(expr const & e);
|
||||||
|
|
||||||
struct cmp {
|
struct cmp {
|
||||||
|
|
Loading…
Reference in a new issue