feat(builtin/kernel): add new useful theorems for the simplifier

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
test(tests/lua): extra tests for Lua hierachical name API

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(kernel/free_vars): make sure has_free_var does not return incorrect result due to arithmetic overflows

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(kernel/instantiate): relax apply_beta pre-condition

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(library/hop_match): bugs in the higher-order matching procedure, add more tests

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(library): add if_then_else Lean/C++ interface

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(kernel): expose imported predicate

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
feat(library/simplifier): add to_ceqs function that converts a theorem into a sequence of conditional equations

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(build): C++ module dependency problem, and style

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(build): C++ module dependency problem, and style