Add some overloads

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Rename/Reorg some kernel files

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add expression offset pair

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add has_free_vars/closed function

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Simplify expr accessor names

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Use operator() for creating applications

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add small demo

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Rename abst_expr -> abst_body

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add abstract/instantiate for kernel expressions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Refactor instantiate/abstract code

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Remove dead code

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Use consistent naming for functional objects

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Fix compilation error with clang++

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Fix race condition when updating expression flags: max_shared and closed

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add deep copy for kernel expressions

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Improve hash for hierarchical names.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Expose max_sharing_fn object

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add (temporary) buffer class

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Move numerics and sexpr to util

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
Add buffer test

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>