From 2c464d413d15c2da908ad8dfe2f7eb9995730a7a Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 10:19:38 -0700 Subject: [PATCH 01/54] Reorganizing source code. Created util dir Signed-off-by: Leonardo de Moura --- {lib => src/util}/approx_nat.cpp | 0 {lib => src/util}/approx_nat.h | 0 {lib => src/util}/approx_set.cpp | 0 {lib => src/util}/approx_set.h | 0 {lib => src/util}/array.h | 0 {lib => src/util}/array_map.h | 0 {lib => src/util}/backtrackable_set.h | 0 {lib => src/util}/basic_interval.h | 0 {lib => src/util}/bit_util.cpp | 0 {lib => src/util}/bit_util.h | 0 {lib => src/util}/bit_vector.cpp | 0 {lib => src/util}/bit_vector.h | 0 {lib => src/util}/buffer.h | 0 {lib => src/util}/cancel_eh.h | 0 {lib => src/util}/chashtable.h | 0 {lib => src/util}/critical_flet.h | 0 {lib => src/util}/debug.cpp | 0 {lib => src/util}/debug.h | 0 {lib => src/util}/dec_ref_util.h | 0 {lib => src/util}/dependency.h | 0 {lib => src/util}/dictionary.h | 0 {lib => src/util}/dlist.h | 0 {lib => src/util}/double_manager.h | 0 {lib => src/util}/event_handler.h | 0 {lib => src/util}/ext_gcd.h | 0 {lib => src/util}/ext_numeral.h | 0 {lib => src/util}/f2n.h | 0 {lib => src/util}/fvi.h | 0 {lib => src/util}/fvi_def.h | 0 {lib => src/util}/hash.cpp | 0 {lib => src/util}/hash.h | 0 {lib => src/util}/hashtable.h | 0 {lib => src/util}/heap.h | 0 {lib => src/util}/hwf.cpp | 0 {lib => src/util}/hwf.h | 0 {lib => src/util}/id_gen.h | 0 {lib => src/util}/imdd.cpp | 0 {lib => src/util}/imdd.h | 0 {lib => src/util}/inf_int_rational.cpp | 0 {lib => src/util}/inf_int_rational.h | 0 {lib => src/util}/inf_rational.cpp | 0 {lib => src/util}/inf_rational.h | 0 {lib => src/util}/inf_s_integer.cpp | 0 {lib => src/util}/inf_s_integer.h | 0 {lib => src/util}/ini_file.cpp | 0 {lib => src/util}/ini_file.h | 0 {lib => src/util}/instruction_count.cpp | 0 {lib => src/util}/instruction_count.h | 0 {lib => src/util}/interval.h | 0 {lib => src/util}/interval_def.h | 0 {lib => src/util}/interval_skip_list.h | 0 {lib => src/util}/lbool.cpp | 0 {lib => src/util}/lbool.h | 0 {lib => src/util}/list.h | 0 {lib => src/util}/machine.h | 0 {lib => src/util}/map.h | 0 {lib => src/util}/mem_stat.cpp | 0 {lib => src/util}/mem_stat.h | 0 {lib => src/util}/memory_manager.cpp | 0 {lib => src/util}/memory_manager.h | 0 {lib => src/util}/mpbq.cpp | 0 {lib => src/util}/mpbq.h | 0 {lib => src/util}/mpbqi.h | 0 {lib => src/util}/mpf.cpp | 0 {lib => src/util}/mpf.h | 0 {lib => src/util}/mpff.cpp | 0 {lib => src/util}/mpff.h | 0 {lib => src/util}/mpfx.cpp | 0 {lib => src/util}/mpfx.h | 0 {lib => src/util}/mpn.cpp | 0 {lib => src/util}/mpn.h | 0 {lib => src/util}/mpq.cpp | 0 {lib => src/util}/mpq.h | 0 {lib => src/util}/mpq_inf.cpp | 0 {lib => src/util}/mpq_inf.h | 0 {lib => src/util}/mpz.cpp | 0 {lib => src/util}/mpz.h | 0 {lib => src/util}/mpzzp.h | 0 {lib => src/util}/nat_set.h | 0 {lib => src/util}/numeral_buffer.h | 0 {lib => src/util}/obj_hashtable.h | 0 {lib => src/util}/obj_mark.h | 0 {lib => src/util}/obj_pair_hashtable.h | 0 {lib => src/util}/obj_pair_set.h | 0 {lib => src/util}/obj_ref.h | 0 {lib => src/util}/obj_triple_hashtable.h | 0 {lib => src/util}/object_allocator.h | 0 {lib => src/util}/old_interval.cpp | 0 {lib => src/util}/old_interval.h | 0 {lib => src/util}/optional.h | 0 {lib => src/util}/page.cpp | 0 {lib => src/util}/page.h | 0 {lib => src/util}/parray.h | 0 {lib => src/util}/permutation.cpp | 0 {lib => src/util}/permutation.h | 0 {lib => src/util}/pool.h | 0 {lib => src/util}/pop_scopes.h | 0 {lib => src/util}/prime_generator.cpp | 0 {lib => src/util}/prime_generator.h | 0 {lib => src/util}/ptr_scoped_buffer.h | 0 {lib => src/util}/rational.cpp | 0 {lib => src/util}/rational.h | 0 {lib => src/util}/ref.h | 0 {lib => src/util}/ref_buffer.h | 0 {lib => src/util}/ref_util.h | 0 {lib => src/util}/ref_vector.h | 0 {lib => src/util}/region.cpp | 0 {lib => src/util}/region.h | 0 {lib => src/util}/resource_limit.h | 0 {lib => src/util}/s_integer.cpp | 0 {lib => src/util}/s_integer.h | 0 {lib => src/util}/scoped_ctrl_c.cpp | 0 {lib => src/util}/scoped_ctrl_c.h | 0 {lib => src/util}/scoped_numeral.h | 0 {lib => src/util}/scoped_numeral_buffer.h | 0 {lib => src/util}/scoped_numeral_vector.h | 0 {lib => src/util}/scoped_ptr_vector.h | 0 {lib => src/util}/scoped_timer.cpp | 0 {lib => src/util}/scoped_timer.h | 0 {lib => src/util}/sexpr.cpp | 0 {lib => src/util}/sexpr.h | 0 {lib => src/util}/small_object_allocator.cpp | 0 {lib => src/util}/small_object_allocator.h | 0 {lib => src/util}/stack.cpp | 0 {lib => src/util}/stack.h | 0 {lib => src/util}/statistics.cpp | 0 {lib => src/util}/statistics.h | 0 {lib => src/util}/stats.h | 0 {lib => src/util}/stopwatch.h | 0 {lib => src/util}/str_hashtable.h | 0 {lib => src/util}/stream_buffer.h | 0 {lib => src/util}/string_buffer.h | 0 {lib => src/util}/symbol.cpp | 0 {lib => src/util}/symbol.h | 0 {lib => src/util}/symbol_table.h | 0 {lib => src/util}/timeit.cpp | 0 {lib => src/util}/timeit.h | 0 {lib => src/util}/timeout.cpp | 0 {lib => src/util}/timeout.h | 0 {lib => src/util}/timer.cpp | 0 {lib => src/util}/timer.h | 0 {lib => src/util}/total_order.h | 0 {lib => src/util}/tptr.h | 0 {lib => src/util}/trace.cpp | 0 {lib => src/util}/trace.h | 0 {lib => src/util}/uint_map.h | 0 {lib => src/util}/uint_set.h | 0 {lib => src/util}/util.cpp | 0 {lib => src/util}/util.h | 0 {lib => src/util}/vector.h | 0 {lib => src/util}/version.h | 0 {lib => src/util}/warning.cpp | 0 {lib => src/util}/warning.h | 0 153 files changed, 0 insertions(+), 0 deletions(-) rename {lib => src/util}/approx_nat.cpp (100%) rename {lib => src/util}/approx_nat.h (100%) rename {lib => src/util}/approx_set.cpp (100%) rename {lib => src/util}/approx_set.h (100%) rename {lib => src/util}/array.h (100%) rename {lib => src/util}/array_map.h (100%) rename {lib => src/util}/backtrackable_set.h (100%) rename {lib => src/util}/basic_interval.h (100%) rename {lib => src/util}/bit_util.cpp (100%) rename {lib => src/util}/bit_util.h (100%) rename {lib => src/util}/bit_vector.cpp (100%) rename {lib => src/util}/bit_vector.h (100%) rename {lib => src/util}/buffer.h (100%) rename {lib => src/util}/cancel_eh.h (100%) rename {lib => src/util}/chashtable.h (100%) rename {lib => src/util}/critical_flet.h (100%) rename {lib => src/util}/debug.cpp (100%) rename {lib => src/util}/debug.h (100%) rename {lib => src/util}/dec_ref_util.h (100%) rename {lib => src/util}/dependency.h (100%) rename {lib => src/util}/dictionary.h (100%) rename {lib => src/util}/dlist.h (100%) rename {lib => src/util}/double_manager.h (100%) rename {lib => src/util}/event_handler.h (100%) rename {lib => src/util}/ext_gcd.h (100%) rename {lib => src/util}/ext_numeral.h (100%) rename {lib => src/util}/f2n.h (100%) rename {lib => src/util}/fvi.h (100%) rename {lib => src/util}/fvi_def.h (100%) rename {lib => src/util}/hash.cpp (100%) rename {lib => src/util}/hash.h (100%) rename {lib => src/util}/hashtable.h (100%) rename {lib => src/util}/heap.h (100%) rename {lib => src/util}/hwf.cpp (100%) rename {lib => src/util}/hwf.h (100%) rename {lib => src/util}/id_gen.h (100%) rename {lib => src/util}/imdd.cpp (100%) rename {lib => src/util}/imdd.h (100%) rename {lib => src/util}/inf_int_rational.cpp (100%) rename {lib => src/util}/inf_int_rational.h (100%) rename {lib => src/util}/inf_rational.cpp (100%) rename {lib => src/util}/inf_rational.h (100%) rename {lib => src/util}/inf_s_integer.cpp (100%) rename {lib => src/util}/inf_s_integer.h (100%) rename {lib => src/util}/ini_file.cpp (100%) rename {lib => src/util}/ini_file.h (100%) rename {lib => src/util}/instruction_count.cpp (100%) rename {lib => src/util}/instruction_count.h (100%) rename {lib => src/util}/interval.h (100%) rename {lib => src/util}/interval_def.h (100%) rename {lib => src/util}/interval_skip_list.h (100%) rename {lib => src/util}/lbool.cpp (100%) rename {lib => src/util}/lbool.h (100%) rename {lib => src/util}/list.h (100%) rename {lib => src/util}/machine.h (100%) rename {lib => src/util}/map.h (100%) rename {lib => src/util}/mem_stat.cpp (100%) rename {lib => src/util}/mem_stat.h (100%) rename {lib => src/util}/memory_manager.cpp (100%) rename {lib => src/util}/memory_manager.h (100%) rename {lib => src/util}/mpbq.cpp (100%) rename {lib => src/util}/mpbq.h (100%) rename {lib => src/util}/mpbqi.h (100%) rename {lib => src/util}/mpf.cpp (100%) rename {lib => src/util}/mpf.h (100%) rename {lib => src/util}/mpff.cpp (100%) rename {lib => src/util}/mpff.h (100%) rename {lib => src/util}/mpfx.cpp (100%) rename {lib => src/util}/mpfx.h (100%) rename {lib => src/util}/mpn.cpp (100%) rename {lib => src/util}/mpn.h (100%) rename {lib => src/util}/mpq.cpp (100%) rename {lib => src/util}/mpq.h (100%) rename {lib => src/util}/mpq_inf.cpp (100%) rename {lib => src/util}/mpq_inf.h (100%) rename {lib => src/util}/mpz.cpp (100%) rename {lib => src/util}/mpz.h (100%) rename {lib => src/util}/mpzzp.h (100%) rename {lib => src/util}/nat_set.h (100%) rename {lib => src/util}/numeral_buffer.h (100%) rename {lib => src/util}/obj_hashtable.h (100%) rename {lib => src/util}/obj_mark.h (100%) rename {lib => src/util}/obj_pair_hashtable.h (100%) rename {lib => src/util}/obj_pair_set.h (100%) rename {lib => src/util}/obj_ref.h (100%) rename {lib => src/util}/obj_triple_hashtable.h (100%) rename {lib => src/util}/object_allocator.h (100%) rename {lib => src/util}/old_interval.cpp (100%) rename {lib => src/util}/old_interval.h (100%) rename {lib => src/util}/optional.h (100%) rename {lib => src/util}/page.cpp (100%) rename {lib => src/util}/page.h (100%) rename {lib => src/util}/parray.h (100%) rename {lib => src/util}/permutation.cpp (100%) rename {lib => src/util}/permutation.h (100%) rename {lib => src/util}/pool.h (100%) rename {lib => src/util}/pop_scopes.h (100%) rename {lib => src/util}/prime_generator.cpp (100%) rename {lib => src/util}/prime_generator.h (100%) rename {lib => src/util}/ptr_scoped_buffer.h (100%) rename {lib => src/util}/rational.cpp (100%) rename {lib => src/util}/rational.h (100%) rename {lib => src/util}/ref.h (100%) rename {lib => src/util}/ref_buffer.h (100%) rename {lib => src/util}/ref_util.h (100%) rename {lib => src/util}/ref_vector.h (100%) rename {lib => src/util}/region.cpp (100%) rename {lib => src/util}/region.h (100%) rename {lib => src/util}/resource_limit.h (100%) rename {lib => src/util}/s_integer.cpp (100%) rename {lib => src/util}/s_integer.h (100%) rename {lib => src/util}/scoped_ctrl_c.cpp (100%) rename {lib => src/util}/scoped_ctrl_c.h (100%) rename {lib => src/util}/scoped_numeral.h (100%) rename {lib => src/util}/scoped_numeral_buffer.h (100%) rename {lib => src/util}/scoped_numeral_vector.h (100%) rename {lib => src/util}/scoped_ptr_vector.h (100%) rename {lib => src/util}/scoped_timer.cpp (100%) rename {lib => src/util}/scoped_timer.h (100%) rename {lib => src/util}/sexpr.cpp (100%) rename {lib => src/util}/sexpr.h (100%) rename {lib => src/util}/small_object_allocator.cpp (100%) rename {lib => src/util}/small_object_allocator.h (100%) rename {lib => src/util}/stack.cpp (100%) rename {lib => src/util}/stack.h (100%) rename {lib => src/util}/statistics.cpp (100%) rename {lib => src/util}/statistics.h (100%) rename {lib => src/util}/stats.h (100%) rename {lib => src/util}/stopwatch.h (100%) rename {lib => src/util}/str_hashtable.h (100%) rename {lib => src/util}/stream_buffer.h (100%) rename {lib => src/util}/string_buffer.h (100%) rename {lib => src/util}/symbol.cpp (100%) rename {lib => src/util}/symbol.h (100%) rename {lib => src/util}/symbol_table.h (100%) rename {lib => src/util}/timeit.cpp (100%) rename {lib => src/util}/timeit.h (100%) rename {lib => src/util}/timeout.cpp (100%) rename {lib => src/util}/timeout.h (100%) rename {lib => src/util}/timer.cpp (100%) rename {lib => src/util}/timer.h (100%) rename {lib => src/util}/total_order.h (100%) rename {lib => src/util}/tptr.h (100%) rename {lib => src/util}/trace.cpp (100%) rename {lib => src/util}/trace.h (100%) rename {lib => src/util}/uint_map.h (100%) rename {lib => src/util}/uint_set.h (100%) rename {lib => src/util}/util.cpp (100%) rename {lib => src/util}/util.h (100%) rename {lib => src/util}/vector.h (100%) rename {lib => src/util}/version.h (100%) rename {lib => src/util}/warning.cpp (100%) rename {lib => src/util}/warning.h (100%) diff --git a/lib/approx_nat.cpp b/src/util/approx_nat.cpp similarity index 100% rename from lib/approx_nat.cpp rename to src/util/approx_nat.cpp diff --git a/lib/approx_nat.h b/src/util/approx_nat.h similarity index 100% rename from lib/approx_nat.h rename to src/util/approx_nat.h diff --git a/lib/approx_set.cpp b/src/util/approx_set.cpp similarity index 100% rename from lib/approx_set.cpp rename to src/util/approx_set.cpp diff --git a/lib/approx_set.h b/src/util/approx_set.h similarity index 100% rename from lib/approx_set.h rename to src/util/approx_set.h diff --git a/lib/array.h b/src/util/array.h similarity index 100% rename from lib/array.h rename to src/util/array.h diff --git a/lib/array_map.h b/src/util/array_map.h similarity index 100% rename from lib/array_map.h rename to src/util/array_map.h diff --git a/lib/backtrackable_set.h b/src/util/backtrackable_set.h similarity index 100% rename from lib/backtrackable_set.h rename to src/util/backtrackable_set.h diff --git a/lib/basic_interval.h b/src/util/basic_interval.h similarity index 100% rename from lib/basic_interval.h rename to src/util/basic_interval.h diff --git a/lib/bit_util.cpp b/src/util/bit_util.cpp similarity index 100% rename from lib/bit_util.cpp rename to src/util/bit_util.cpp diff --git a/lib/bit_util.h b/src/util/bit_util.h similarity index 100% rename from lib/bit_util.h rename to src/util/bit_util.h diff --git a/lib/bit_vector.cpp b/src/util/bit_vector.cpp similarity index 100% rename from lib/bit_vector.cpp rename to src/util/bit_vector.cpp diff --git a/lib/bit_vector.h b/src/util/bit_vector.h similarity index 100% rename from lib/bit_vector.h rename to src/util/bit_vector.h diff --git a/lib/buffer.h b/src/util/buffer.h similarity index 100% rename from lib/buffer.h rename to src/util/buffer.h diff --git a/lib/cancel_eh.h b/src/util/cancel_eh.h similarity index 100% rename from lib/cancel_eh.h rename to src/util/cancel_eh.h diff --git a/lib/chashtable.h b/src/util/chashtable.h similarity index 100% rename from lib/chashtable.h rename to src/util/chashtable.h diff --git a/lib/critical_flet.h b/src/util/critical_flet.h similarity index 100% rename from lib/critical_flet.h rename to src/util/critical_flet.h diff --git a/lib/debug.cpp b/src/util/debug.cpp similarity index 100% rename from lib/debug.cpp rename to src/util/debug.cpp diff --git a/lib/debug.h b/src/util/debug.h similarity index 100% rename from lib/debug.h rename to src/util/debug.h diff --git a/lib/dec_ref_util.h b/src/util/dec_ref_util.h similarity index 100% rename from lib/dec_ref_util.h rename to src/util/dec_ref_util.h diff --git a/lib/dependency.h b/src/util/dependency.h similarity index 100% rename from lib/dependency.h rename to src/util/dependency.h diff --git a/lib/dictionary.h b/src/util/dictionary.h similarity index 100% rename from lib/dictionary.h rename to src/util/dictionary.h diff --git a/lib/dlist.h b/src/util/dlist.h similarity index 100% rename from lib/dlist.h rename to src/util/dlist.h diff --git a/lib/double_manager.h b/src/util/double_manager.h similarity index 100% rename from lib/double_manager.h rename to src/util/double_manager.h diff --git a/lib/event_handler.h b/src/util/event_handler.h similarity index 100% rename from lib/event_handler.h rename to src/util/event_handler.h diff --git a/lib/ext_gcd.h b/src/util/ext_gcd.h similarity index 100% rename from lib/ext_gcd.h rename to src/util/ext_gcd.h diff --git a/lib/ext_numeral.h b/src/util/ext_numeral.h similarity index 100% rename from lib/ext_numeral.h rename to src/util/ext_numeral.h diff --git a/lib/f2n.h b/src/util/f2n.h similarity index 100% rename from lib/f2n.h rename to src/util/f2n.h diff --git a/lib/fvi.h b/src/util/fvi.h similarity index 100% rename from lib/fvi.h rename to src/util/fvi.h diff --git a/lib/fvi_def.h b/src/util/fvi_def.h similarity index 100% rename from lib/fvi_def.h rename to src/util/fvi_def.h diff --git a/lib/hash.cpp b/src/util/hash.cpp similarity index 100% rename from lib/hash.cpp rename to src/util/hash.cpp diff --git a/lib/hash.h b/src/util/hash.h similarity index 100% rename from lib/hash.h rename to src/util/hash.h diff --git a/lib/hashtable.h b/src/util/hashtable.h similarity index 100% rename from lib/hashtable.h rename to src/util/hashtable.h diff --git a/lib/heap.h b/src/util/heap.h similarity index 100% rename from lib/heap.h rename to src/util/heap.h diff --git a/lib/hwf.cpp b/src/util/hwf.cpp similarity index 100% rename from lib/hwf.cpp rename to src/util/hwf.cpp diff --git a/lib/hwf.h b/src/util/hwf.h similarity index 100% rename from lib/hwf.h rename to src/util/hwf.h diff --git a/lib/id_gen.h b/src/util/id_gen.h similarity index 100% rename from lib/id_gen.h rename to src/util/id_gen.h diff --git a/lib/imdd.cpp b/src/util/imdd.cpp similarity index 100% rename from lib/imdd.cpp rename to src/util/imdd.cpp diff --git a/lib/imdd.h b/src/util/imdd.h similarity index 100% rename from lib/imdd.h rename to src/util/imdd.h diff --git a/lib/inf_int_rational.cpp b/src/util/inf_int_rational.cpp similarity index 100% rename from lib/inf_int_rational.cpp rename to src/util/inf_int_rational.cpp diff --git a/lib/inf_int_rational.h b/src/util/inf_int_rational.h similarity index 100% rename from lib/inf_int_rational.h rename to src/util/inf_int_rational.h diff --git a/lib/inf_rational.cpp b/src/util/inf_rational.cpp similarity index 100% rename from lib/inf_rational.cpp rename to src/util/inf_rational.cpp diff --git a/lib/inf_rational.h b/src/util/inf_rational.h similarity index 100% rename from lib/inf_rational.h rename to src/util/inf_rational.h diff --git a/lib/inf_s_integer.cpp b/src/util/inf_s_integer.cpp similarity index 100% rename from lib/inf_s_integer.cpp rename to src/util/inf_s_integer.cpp diff --git a/lib/inf_s_integer.h b/src/util/inf_s_integer.h similarity index 100% rename from lib/inf_s_integer.h rename to src/util/inf_s_integer.h diff --git a/lib/ini_file.cpp b/src/util/ini_file.cpp similarity index 100% rename from lib/ini_file.cpp rename to src/util/ini_file.cpp diff --git a/lib/ini_file.h b/src/util/ini_file.h similarity index 100% rename from lib/ini_file.h rename to src/util/ini_file.h diff --git a/lib/instruction_count.cpp b/src/util/instruction_count.cpp similarity index 100% rename from lib/instruction_count.cpp rename to src/util/instruction_count.cpp diff --git a/lib/instruction_count.h b/src/util/instruction_count.h similarity index 100% rename from lib/instruction_count.h rename to src/util/instruction_count.h diff --git a/lib/interval.h b/src/util/interval.h similarity index 100% rename from lib/interval.h rename to src/util/interval.h diff --git a/lib/interval_def.h b/src/util/interval_def.h similarity index 100% rename from lib/interval_def.h rename to src/util/interval_def.h diff --git a/lib/interval_skip_list.h b/src/util/interval_skip_list.h similarity index 100% rename from lib/interval_skip_list.h rename to src/util/interval_skip_list.h diff --git a/lib/lbool.cpp b/src/util/lbool.cpp similarity index 100% rename from lib/lbool.cpp rename to src/util/lbool.cpp diff --git a/lib/lbool.h b/src/util/lbool.h similarity index 100% rename from lib/lbool.h rename to src/util/lbool.h diff --git a/lib/list.h b/src/util/list.h similarity index 100% rename from lib/list.h rename to src/util/list.h diff --git a/lib/machine.h b/src/util/machine.h similarity index 100% rename from lib/machine.h rename to src/util/machine.h diff --git a/lib/map.h b/src/util/map.h similarity index 100% rename from lib/map.h rename to src/util/map.h diff --git a/lib/mem_stat.cpp b/src/util/mem_stat.cpp similarity index 100% rename from lib/mem_stat.cpp rename to src/util/mem_stat.cpp diff --git a/lib/mem_stat.h b/src/util/mem_stat.h similarity index 100% rename from lib/mem_stat.h rename to src/util/mem_stat.h diff --git a/lib/memory_manager.cpp b/src/util/memory_manager.cpp similarity index 100% rename from lib/memory_manager.cpp rename to src/util/memory_manager.cpp diff --git a/lib/memory_manager.h b/src/util/memory_manager.h similarity index 100% rename from lib/memory_manager.h rename to src/util/memory_manager.h diff --git a/lib/mpbq.cpp b/src/util/mpbq.cpp similarity index 100% rename from lib/mpbq.cpp rename to src/util/mpbq.cpp diff --git a/lib/mpbq.h b/src/util/mpbq.h similarity index 100% rename from lib/mpbq.h rename to src/util/mpbq.h diff --git a/lib/mpbqi.h b/src/util/mpbqi.h similarity index 100% rename from lib/mpbqi.h rename to src/util/mpbqi.h diff --git a/lib/mpf.cpp b/src/util/mpf.cpp similarity index 100% rename from lib/mpf.cpp rename to src/util/mpf.cpp diff --git a/lib/mpf.h b/src/util/mpf.h similarity index 100% rename from lib/mpf.h rename to src/util/mpf.h diff --git a/lib/mpff.cpp b/src/util/mpff.cpp similarity index 100% rename from lib/mpff.cpp rename to src/util/mpff.cpp diff --git a/lib/mpff.h b/src/util/mpff.h similarity index 100% rename from lib/mpff.h rename to src/util/mpff.h diff --git a/lib/mpfx.cpp b/src/util/mpfx.cpp similarity index 100% rename from lib/mpfx.cpp rename to src/util/mpfx.cpp diff --git a/lib/mpfx.h b/src/util/mpfx.h similarity index 100% rename from lib/mpfx.h rename to src/util/mpfx.h diff --git a/lib/mpn.cpp b/src/util/mpn.cpp similarity index 100% rename from lib/mpn.cpp rename to src/util/mpn.cpp diff --git a/lib/mpn.h b/src/util/mpn.h similarity index 100% rename from lib/mpn.h rename to src/util/mpn.h diff --git a/lib/mpq.cpp b/src/util/mpq.cpp similarity index 100% rename from lib/mpq.cpp rename to src/util/mpq.cpp diff --git a/lib/mpq.h b/src/util/mpq.h similarity index 100% rename from lib/mpq.h rename to src/util/mpq.h diff --git a/lib/mpq_inf.cpp b/src/util/mpq_inf.cpp similarity index 100% rename from lib/mpq_inf.cpp rename to src/util/mpq_inf.cpp diff --git a/lib/mpq_inf.h b/src/util/mpq_inf.h similarity index 100% rename from lib/mpq_inf.h rename to src/util/mpq_inf.h diff --git a/lib/mpz.cpp b/src/util/mpz.cpp similarity index 100% rename from lib/mpz.cpp rename to src/util/mpz.cpp diff --git a/lib/mpz.h b/src/util/mpz.h similarity index 100% rename from lib/mpz.h rename to src/util/mpz.h diff --git a/lib/mpzzp.h b/src/util/mpzzp.h similarity index 100% rename from lib/mpzzp.h rename to src/util/mpzzp.h diff --git a/lib/nat_set.h b/src/util/nat_set.h similarity index 100% rename from lib/nat_set.h rename to src/util/nat_set.h diff --git a/lib/numeral_buffer.h b/src/util/numeral_buffer.h similarity index 100% rename from lib/numeral_buffer.h rename to src/util/numeral_buffer.h diff --git a/lib/obj_hashtable.h b/src/util/obj_hashtable.h similarity index 100% rename from lib/obj_hashtable.h rename to src/util/obj_hashtable.h diff --git a/lib/obj_mark.h b/src/util/obj_mark.h similarity index 100% rename from lib/obj_mark.h rename to src/util/obj_mark.h diff --git a/lib/obj_pair_hashtable.h b/src/util/obj_pair_hashtable.h similarity index 100% rename from lib/obj_pair_hashtable.h rename to src/util/obj_pair_hashtable.h diff --git a/lib/obj_pair_set.h b/src/util/obj_pair_set.h similarity index 100% rename from lib/obj_pair_set.h rename to src/util/obj_pair_set.h diff --git a/lib/obj_ref.h b/src/util/obj_ref.h similarity index 100% rename from lib/obj_ref.h rename to src/util/obj_ref.h diff --git a/lib/obj_triple_hashtable.h b/src/util/obj_triple_hashtable.h similarity index 100% rename from lib/obj_triple_hashtable.h rename to src/util/obj_triple_hashtable.h diff --git a/lib/object_allocator.h b/src/util/object_allocator.h similarity index 100% rename from lib/object_allocator.h rename to src/util/object_allocator.h diff --git a/lib/old_interval.cpp b/src/util/old_interval.cpp similarity index 100% rename from lib/old_interval.cpp rename to src/util/old_interval.cpp diff --git a/lib/old_interval.h b/src/util/old_interval.h similarity index 100% rename from lib/old_interval.h rename to src/util/old_interval.h diff --git a/lib/optional.h b/src/util/optional.h similarity index 100% rename from lib/optional.h rename to src/util/optional.h diff --git a/lib/page.cpp b/src/util/page.cpp similarity index 100% rename from lib/page.cpp rename to src/util/page.cpp diff --git a/lib/page.h b/src/util/page.h similarity index 100% rename from lib/page.h rename to src/util/page.h diff --git a/lib/parray.h b/src/util/parray.h similarity index 100% rename from lib/parray.h rename to src/util/parray.h diff --git a/lib/permutation.cpp b/src/util/permutation.cpp similarity index 100% rename from lib/permutation.cpp rename to src/util/permutation.cpp diff --git a/lib/permutation.h b/src/util/permutation.h similarity index 100% rename from lib/permutation.h rename to src/util/permutation.h diff --git a/lib/pool.h b/src/util/pool.h similarity index 100% rename from lib/pool.h rename to src/util/pool.h diff --git a/lib/pop_scopes.h b/src/util/pop_scopes.h similarity index 100% rename from lib/pop_scopes.h rename to src/util/pop_scopes.h diff --git a/lib/prime_generator.cpp b/src/util/prime_generator.cpp similarity index 100% rename from lib/prime_generator.cpp rename to src/util/prime_generator.cpp diff --git a/lib/prime_generator.h b/src/util/prime_generator.h similarity index 100% rename from lib/prime_generator.h rename to src/util/prime_generator.h diff --git a/lib/ptr_scoped_buffer.h b/src/util/ptr_scoped_buffer.h similarity index 100% rename from lib/ptr_scoped_buffer.h rename to src/util/ptr_scoped_buffer.h diff --git a/lib/rational.cpp b/src/util/rational.cpp similarity index 100% rename from lib/rational.cpp rename to src/util/rational.cpp diff --git a/lib/rational.h b/src/util/rational.h similarity index 100% rename from lib/rational.h rename to src/util/rational.h diff --git a/lib/ref.h b/src/util/ref.h similarity index 100% rename from lib/ref.h rename to src/util/ref.h diff --git a/lib/ref_buffer.h b/src/util/ref_buffer.h similarity index 100% rename from lib/ref_buffer.h rename to src/util/ref_buffer.h diff --git a/lib/ref_util.h b/src/util/ref_util.h similarity index 100% rename from lib/ref_util.h rename to src/util/ref_util.h diff --git a/lib/ref_vector.h b/src/util/ref_vector.h similarity index 100% rename from lib/ref_vector.h rename to src/util/ref_vector.h diff --git a/lib/region.cpp b/src/util/region.cpp similarity index 100% rename from lib/region.cpp rename to src/util/region.cpp diff --git a/lib/region.h b/src/util/region.h similarity index 100% rename from lib/region.h rename to src/util/region.h diff --git a/lib/resource_limit.h b/src/util/resource_limit.h similarity index 100% rename from lib/resource_limit.h rename to src/util/resource_limit.h diff --git a/lib/s_integer.cpp b/src/util/s_integer.cpp similarity index 100% rename from lib/s_integer.cpp rename to src/util/s_integer.cpp diff --git a/lib/s_integer.h b/src/util/s_integer.h similarity index 100% rename from lib/s_integer.h rename to src/util/s_integer.h diff --git a/lib/scoped_ctrl_c.cpp b/src/util/scoped_ctrl_c.cpp similarity index 100% rename from lib/scoped_ctrl_c.cpp rename to src/util/scoped_ctrl_c.cpp diff --git a/lib/scoped_ctrl_c.h b/src/util/scoped_ctrl_c.h similarity index 100% rename from lib/scoped_ctrl_c.h rename to src/util/scoped_ctrl_c.h diff --git a/lib/scoped_numeral.h b/src/util/scoped_numeral.h similarity index 100% rename from lib/scoped_numeral.h rename to src/util/scoped_numeral.h diff --git a/lib/scoped_numeral_buffer.h b/src/util/scoped_numeral_buffer.h similarity index 100% rename from lib/scoped_numeral_buffer.h rename to src/util/scoped_numeral_buffer.h diff --git a/lib/scoped_numeral_vector.h b/src/util/scoped_numeral_vector.h similarity index 100% rename from lib/scoped_numeral_vector.h rename to src/util/scoped_numeral_vector.h diff --git a/lib/scoped_ptr_vector.h b/src/util/scoped_ptr_vector.h similarity index 100% rename from lib/scoped_ptr_vector.h rename to src/util/scoped_ptr_vector.h diff --git a/lib/scoped_timer.cpp b/src/util/scoped_timer.cpp similarity index 100% rename from lib/scoped_timer.cpp rename to src/util/scoped_timer.cpp diff --git a/lib/scoped_timer.h b/src/util/scoped_timer.h similarity index 100% rename from lib/scoped_timer.h rename to src/util/scoped_timer.h diff --git a/lib/sexpr.cpp b/src/util/sexpr.cpp similarity index 100% rename from lib/sexpr.cpp rename to src/util/sexpr.cpp diff --git a/lib/sexpr.h b/src/util/sexpr.h similarity index 100% rename from lib/sexpr.h rename to src/util/sexpr.h diff --git a/lib/small_object_allocator.cpp b/src/util/small_object_allocator.cpp similarity index 100% rename from lib/small_object_allocator.cpp rename to src/util/small_object_allocator.cpp diff --git a/lib/small_object_allocator.h b/src/util/small_object_allocator.h similarity index 100% rename from lib/small_object_allocator.h rename to src/util/small_object_allocator.h diff --git a/lib/stack.cpp b/src/util/stack.cpp similarity index 100% rename from lib/stack.cpp rename to src/util/stack.cpp diff --git a/lib/stack.h b/src/util/stack.h similarity index 100% rename from lib/stack.h rename to src/util/stack.h diff --git a/lib/statistics.cpp b/src/util/statistics.cpp similarity index 100% rename from lib/statistics.cpp rename to src/util/statistics.cpp diff --git a/lib/statistics.h b/src/util/statistics.h similarity index 100% rename from lib/statistics.h rename to src/util/statistics.h diff --git a/lib/stats.h b/src/util/stats.h similarity index 100% rename from lib/stats.h rename to src/util/stats.h diff --git a/lib/stopwatch.h b/src/util/stopwatch.h similarity index 100% rename from lib/stopwatch.h rename to src/util/stopwatch.h diff --git a/lib/str_hashtable.h b/src/util/str_hashtable.h similarity index 100% rename from lib/str_hashtable.h rename to src/util/str_hashtable.h diff --git a/lib/stream_buffer.h b/src/util/stream_buffer.h similarity index 100% rename from lib/stream_buffer.h rename to src/util/stream_buffer.h diff --git a/lib/string_buffer.h b/src/util/string_buffer.h similarity index 100% rename from lib/string_buffer.h rename to src/util/string_buffer.h diff --git a/lib/symbol.cpp b/src/util/symbol.cpp similarity index 100% rename from lib/symbol.cpp rename to src/util/symbol.cpp diff --git a/lib/symbol.h b/src/util/symbol.h similarity index 100% rename from lib/symbol.h rename to src/util/symbol.h diff --git a/lib/symbol_table.h b/src/util/symbol_table.h similarity index 100% rename from lib/symbol_table.h rename to src/util/symbol_table.h diff --git a/lib/timeit.cpp b/src/util/timeit.cpp similarity index 100% rename from lib/timeit.cpp rename to src/util/timeit.cpp diff --git a/lib/timeit.h b/src/util/timeit.h similarity index 100% rename from lib/timeit.h rename to src/util/timeit.h diff --git a/lib/timeout.cpp b/src/util/timeout.cpp similarity index 100% rename from lib/timeout.cpp rename to src/util/timeout.cpp diff --git a/lib/timeout.h b/src/util/timeout.h similarity index 100% rename from lib/timeout.h rename to src/util/timeout.h diff --git a/lib/timer.cpp b/src/util/timer.cpp similarity index 100% rename from lib/timer.cpp rename to src/util/timer.cpp diff --git a/lib/timer.h b/src/util/timer.h similarity index 100% rename from lib/timer.h rename to src/util/timer.h diff --git a/lib/total_order.h b/src/util/total_order.h similarity index 100% rename from lib/total_order.h rename to src/util/total_order.h diff --git a/lib/tptr.h b/src/util/tptr.h similarity index 100% rename from lib/tptr.h rename to src/util/tptr.h diff --git a/lib/trace.cpp b/src/util/trace.cpp similarity index 100% rename from lib/trace.cpp rename to src/util/trace.cpp diff --git a/lib/trace.h b/src/util/trace.h similarity index 100% rename from lib/trace.h rename to src/util/trace.h diff --git a/lib/uint_map.h b/src/util/uint_map.h similarity index 100% rename from lib/uint_map.h rename to src/util/uint_map.h diff --git a/lib/uint_set.h b/src/util/uint_set.h similarity index 100% rename from lib/uint_set.h rename to src/util/uint_set.h diff --git a/lib/util.cpp b/src/util/util.cpp similarity index 100% rename from lib/util.cpp rename to src/util/util.cpp diff --git a/lib/util.h b/src/util/util.h similarity index 100% rename from lib/util.h rename to src/util/util.h diff --git a/lib/vector.h b/src/util/vector.h similarity index 100% rename from lib/vector.h rename to src/util/vector.h diff --git a/lib/version.h b/src/util/version.h similarity index 100% rename from lib/version.h rename to src/util/version.h diff --git a/lib/warning.cpp b/src/util/warning.cpp similarity index 100% rename from lib/warning.cpp rename to src/util/warning.cpp diff --git a/lib/warning.h b/src/util/warning.h similarity index 100% rename from lib/warning.h rename to src/util/warning.h From 8a6997960a931d5342e73117b563e53209d37219 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 15:16:37 -0700 Subject: [PATCH 02/54] Reorganizing code. Added script for generating VS project files Signed-off-by: Leonardo de Moura --- mk_make.py | 161 ++++++++++++++++++ {lib => src/ast}/arith_decl_plugin.cpp | 0 {lib => src/ast}/arith_decl_plugin.h | 0 {lib => src/ast}/array_decl_plugin.cpp | 0 {lib => src/ast}/array_decl_plugin.h | 0 {lib => src/ast}/ast.cpp | 0 {lib => src/ast}/ast.h | 0 {lib => src/ast}/ast_list.h | 0 {lib => src/ast}/ast_ll_pp.cpp | 0 {lib => src/ast}/ast_ll_pp.h | 0 {lib => src/ast}/ast_pp.cpp | 0 {lib => src/ast}/ast_pp.h | 0 {lib => src/ast}/ast_smt2_pp.cpp | 0 {lib => src/ast}/ast_smt2_pp.h | 0 {lib => src/ast}/ast_util.cpp | 0 {lib => src/ast}/ast_util.h | 0 {lib => src/ast}/bv_decl_plugin.cpp | 0 {lib => src/ast}/bv_decl_plugin.h | 0 {lib => src/ast}/datatype_decl_plugin.cpp | 0 {lib => src/ast}/datatype_decl_plugin.h | 0 {lib => src/ast}/dl_decl_plugin.cpp | 0 {lib => src/ast}/dl_decl_plugin.h | 0 {lib => src/ast}/float_decl_plugin.cpp | 0 {lib => src/ast}/float_decl_plugin.h | 0 {lib => src/ast}/for_each_ast.h | 0 {lib => src/ast}/format.cpp | 0 {lib => src/ast}/format.h | 0 {lib => src/ast}/pp.cpp | 0 {lib => src/ast}/pp.h | 0 {lib => src/ast}/pp_params.cpp | 0 {lib => src/ast}/pp_params.h | 0 {lib => src/ast}/recurse_expr.h | 0 {lib => src/ast}/recurse_expr_def.h | 0 {lib => src/ast}/seq_decl_plugin.cpp | 0 {lib => src/ast}/seq_decl_plugin.h | 0 {lib => src/ast}/shared_occs.cpp | 0 {lib => src/ast}/shared_occs.h | 0 {lib => src/polynomial}/algebraic_numbers.cpp | 0 {lib => src/polynomial}/algebraic_numbers.h | 0 {lib => src/polynomial}/linear_eq_solver.h | 0 {lib => src/polynomial}/polynomial.cpp | 0 {lib => src/polynomial}/polynomial.h | 0 {lib => src/polynomial}/polynomial_cache.cpp | 0 {lib => src/polynomial}/polynomial_cache.h | 0 .../polynomial}/polynomial_factorization.cpp | 0 .../polynomial}/polynomial_factorization.h | 0 {lib => src/polynomial}/polynomial_primes.h | 0 .../polynomial}/polynomial_var2value.h | 0 {lib => src/polynomial}/sexpr2upolynomial.cpp | 0 {lib => src/polynomial}/sexpr2upolynomial.h | 0 {lib => src/polynomial}/upolynomial.cpp | 0 {lib => src/polynomial}/upolynomial.h | 0 .../polynomial}/upolynomial_factorization.cpp | 0 .../polynomial}/upolynomial_factorization.h | 0 .../upolynomial_factorization_int.h | 0 {lib => src/util}/cmd_context_types.cpp | 0 {lib => src/util}/cmd_context_types.h | 0 {lib => src/util}/cooperate.cpp | 0 {lib => src/util}/cooperate.h | 0 {lib => src/util}/error_codes.h | 0 src/util/mpq_inf.h | 9 +- {lib => src/util}/params.cpp | 149 +--------------- {lib => src/util}/params.h | 16 -- {lib => src/util}/skip_list_base.h | 0 src/util/statistics.cpp | 2 +- {lib => src/util}/z3_exception.cpp | 0 {lib => src/util}/z3_exception.h | 0 {lib => src/util}/z3_omp.h | 0 68 files changed, 167 insertions(+), 170 deletions(-) create mode 100644 mk_make.py rename {lib => src/ast}/arith_decl_plugin.cpp (100%) rename {lib => src/ast}/arith_decl_plugin.h (100%) rename {lib => src/ast}/array_decl_plugin.cpp (100%) rename {lib => src/ast}/array_decl_plugin.h (100%) rename {lib => src/ast}/ast.cpp (100%) rename {lib => src/ast}/ast.h (100%) rename {lib => src/ast}/ast_list.h (100%) rename {lib => src/ast}/ast_ll_pp.cpp (100%) rename {lib => src/ast}/ast_ll_pp.h (100%) rename {lib => src/ast}/ast_pp.cpp (100%) rename {lib => src/ast}/ast_pp.h (100%) rename {lib => src/ast}/ast_smt2_pp.cpp (100%) rename {lib => src/ast}/ast_smt2_pp.h (100%) rename {lib => src/ast}/ast_util.cpp (100%) rename {lib => src/ast}/ast_util.h (100%) rename {lib => src/ast}/bv_decl_plugin.cpp (100%) rename {lib => src/ast}/bv_decl_plugin.h (100%) rename {lib => src/ast}/datatype_decl_plugin.cpp (100%) rename {lib => src/ast}/datatype_decl_plugin.h (100%) rename {lib => src/ast}/dl_decl_plugin.cpp (100%) rename {lib => src/ast}/dl_decl_plugin.h (100%) rename {lib => src/ast}/float_decl_plugin.cpp (100%) rename {lib => src/ast}/float_decl_plugin.h (100%) rename {lib => src/ast}/for_each_ast.h (100%) rename {lib => src/ast}/format.cpp (100%) rename {lib => src/ast}/format.h (100%) rename {lib => src/ast}/pp.cpp (100%) rename {lib => src/ast}/pp.h (100%) rename {lib => src/ast}/pp_params.cpp (100%) rename {lib => src/ast}/pp_params.h (100%) rename {lib => src/ast}/recurse_expr.h (100%) rename {lib => src/ast}/recurse_expr_def.h (100%) rename {lib => src/ast}/seq_decl_plugin.cpp (100%) rename {lib => src/ast}/seq_decl_plugin.h (100%) rename {lib => src/ast}/shared_occs.cpp (100%) rename {lib => src/ast}/shared_occs.h (100%) rename {lib => src/polynomial}/algebraic_numbers.cpp (100%) rename {lib => src/polynomial}/algebraic_numbers.h (100%) rename {lib => src/polynomial}/linear_eq_solver.h (100%) rename {lib => src/polynomial}/polynomial.cpp (100%) rename {lib => src/polynomial}/polynomial.h (100%) rename {lib => src/polynomial}/polynomial_cache.cpp (100%) rename {lib => src/polynomial}/polynomial_cache.h (100%) rename {lib => src/polynomial}/polynomial_factorization.cpp (100%) rename {lib => src/polynomial}/polynomial_factorization.h (100%) rename {lib => src/polynomial}/polynomial_primes.h (100%) rename {lib => src/polynomial}/polynomial_var2value.h (100%) rename {lib => src/polynomial}/sexpr2upolynomial.cpp (100%) rename {lib => src/polynomial}/sexpr2upolynomial.h (100%) rename {lib => src/polynomial}/upolynomial.cpp (100%) rename {lib => src/polynomial}/upolynomial.h (100%) rename {lib => src/polynomial}/upolynomial_factorization.cpp (100%) rename {lib => src/polynomial}/upolynomial_factorization.h (100%) rename {lib => src/polynomial}/upolynomial_factorization_int.h (100%) rename {lib => src/util}/cmd_context_types.cpp (100%) rename {lib => src/util}/cmd_context_types.h (100%) rename {lib => src/util}/cooperate.cpp (100%) rename {lib => src/util}/cooperate.h (100%) rename {lib => src/util}/error_codes.h (100%) rename {lib => src/util}/params.cpp (80%) rename {lib => src/util}/params.h (81%) rename {lib => src/util}/skip_list_base.h (100%) rename {lib => src/util}/z3_exception.cpp (100%) rename {lib => src/util}/z3_exception.h (100%) rename {lib => src/util}/z3_omp.h (100%) diff --git a/mk_make.py b/mk_make.py new file mode 100644 index 000000000..35c06b4c5 --- /dev/null +++ b/mk_make.py @@ -0,0 +1,161 @@ +import os +import glob + +BUILD_DIR='build-test' +SRC_DIR='src' +MODES=['Debug', 'Release'] +PLATFORMS=['Win32', 'x64'] +VS_COMMON_OPTIONS='WIN32;_WINDOWS;ASYNC_COMMANDS' +VS_DBG_OPTIONS='Z3DEBUG;_TRACE;_DEBUG' +VS_RELEASE_OPTIONS='NDEBUG;_EXTERNAL_RELEASE' + +def is_debug(mode): + return mode == 'Debug' + +def is_x64(platform): + return platform == 'x64' + +def mk_dir(d): + if not os.path.exists(d): + os.makedirs(d) + +# Initialization +mk_dir(BUILD_DIR) + +def module_src_dir(name): + return '%s%s%s' % (SRC_DIR, os.sep, name) + +def module_build_dir(name): + return '%s%s%s' % (BUILD_DIR, os.sep, name) + +def vs_header(f): + f.write( +'\n' +'\n') + +GUI = 0 +Name2GUI = {} + +def vs_project_configurations(f, name): + global GUI, Name2GUI + f.write(' \n') + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + f.write(' %s\n' % mode) + f.write(' %s\n' % platform) + f.write(' \n') + f.write(' \n') + + f.write(' \n') + f.write(' {00000000-0000-0000-000--%s}\n' % GUI) + f.write(' %s\n' % name) + f.write(' Win32Proj\n') + f.write(' \n') + f.write(' \n') + Name2GUI[name] = GUI + GUI = GUI + 1 + +def vs_lib_configurations(f, name): + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + f.write(' StaticLibrary\n') + f.write(' Unicode\n') + f.write(' false\n') + f.write(' \n') + + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + + f.write(' \n') + for mode in MODES: + for platform in PLATFORMS: + if is_x64(platform): + f.write(' $(SolutionDir)$(Platform)\$(Configuration)\\n' % + (mode, platform)) + else: + f.write(' $(SolutionDir)$(Configuration)\\n' % (mode, platform)) + for mode in MODES: + for platform in PLATFORMS: + f.write(' %s\n' % (mode, platform, name)) + f.write(' .lib\n' % (mode, platform)) + f.write(' \n') + +def vs_compilation_options(f, name, deps): + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + if is_x64(platform): + f.write(' \n') + f.write(' X64\n') + f.write(' \n') + f.write(' \n') + if is_debug(mode): + f.write(' Disabled\n') + else: + f.write(' Full\n') + options = VS_COMMON_OPTIONS + if is_debug(mode): + options = "%s;%s" % (options, VS_DBG_OPTIONS) + else: + options = "%s;%s" % (options, VS_RELEASE_OPTIONS) + if is_x64(platform): + options = "%s;_AMD64_" % options + f.write(' %s;%%(PreprocessorDefinitions)\n' % options) + if is_debug(mode): + f.write(' true\n') + f.write(' EnableFastChecks\n') + f.write(' Level3\n') + f.write(' MultiThreadedDebugDLL\n') + f.write(' true\n') + f.write(' ProgramDatabase\n') + f.write(' ') + f.write('..\..\src\%s' % name) + for dep in deps: + f.write(';..\..\src\%s' % dep) + f.write('\n') + f.write(' \n') + f.write(' \n') + f.write(' $(OutDir)%s.lib\n' % name) + f.write(' %(AdditionalLibraryDirectories)\n') + if is_x64(platform): + f.write(' MachineX64\n') + else: + f.write(' MachineX86\n') + f.write(' \n') + f.write(' \n') + +def add_vs_cpps(f, name): + f.write(' \n') + srcs = module_src_dir(name) + for cppfile in glob.glob(os.path.join(srcs, '*.cpp')): + f.write(' \n' % (os.sep, os.sep, cppfile)) + f.write(' \n') + +def vs_footer(f): + f.write( +' \n' +' \n' +' \n' +'\n') + +def add_lib(name, deps): + module_dir = module_build_dir(name) + mk_dir(module_dir) + + vs_proj = open('%s%s%s.vcxproj' % (module_dir, os.sep, name), 'w') + vs_header(vs_proj) + vs_project_configurations(vs_proj, name) + vs_lib_configurations(vs_proj, name) + vs_compilation_options(vs_proj, name, deps) + add_vs_cpps(vs_proj, name) + vs_footer(vs_proj) + +add_lib('util', []) +add_lib('polynomial', ['util']) +add_lib('ast', ['util', 'polynomial']) diff --git a/lib/arith_decl_plugin.cpp b/src/ast/arith_decl_plugin.cpp similarity index 100% rename from lib/arith_decl_plugin.cpp rename to src/ast/arith_decl_plugin.cpp diff --git a/lib/arith_decl_plugin.h b/src/ast/arith_decl_plugin.h similarity index 100% rename from lib/arith_decl_plugin.h rename to src/ast/arith_decl_plugin.h diff --git a/lib/array_decl_plugin.cpp b/src/ast/array_decl_plugin.cpp similarity index 100% rename from lib/array_decl_plugin.cpp rename to src/ast/array_decl_plugin.cpp diff --git a/lib/array_decl_plugin.h b/src/ast/array_decl_plugin.h similarity index 100% rename from lib/array_decl_plugin.h rename to src/ast/array_decl_plugin.h diff --git a/lib/ast.cpp b/src/ast/ast.cpp similarity index 100% rename from lib/ast.cpp rename to src/ast/ast.cpp diff --git a/lib/ast.h b/src/ast/ast.h similarity index 100% rename from lib/ast.h rename to src/ast/ast.h diff --git a/lib/ast_list.h b/src/ast/ast_list.h similarity index 100% rename from lib/ast_list.h rename to src/ast/ast_list.h diff --git a/lib/ast_ll_pp.cpp b/src/ast/ast_ll_pp.cpp similarity index 100% rename from lib/ast_ll_pp.cpp rename to src/ast/ast_ll_pp.cpp diff --git a/lib/ast_ll_pp.h b/src/ast/ast_ll_pp.h similarity index 100% rename from lib/ast_ll_pp.h rename to src/ast/ast_ll_pp.h diff --git a/lib/ast_pp.cpp b/src/ast/ast_pp.cpp similarity index 100% rename from lib/ast_pp.cpp rename to src/ast/ast_pp.cpp diff --git a/lib/ast_pp.h b/src/ast/ast_pp.h similarity index 100% rename from lib/ast_pp.h rename to src/ast/ast_pp.h diff --git a/lib/ast_smt2_pp.cpp b/src/ast/ast_smt2_pp.cpp similarity index 100% rename from lib/ast_smt2_pp.cpp rename to src/ast/ast_smt2_pp.cpp diff --git a/lib/ast_smt2_pp.h b/src/ast/ast_smt2_pp.h similarity index 100% rename from lib/ast_smt2_pp.h rename to src/ast/ast_smt2_pp.h diff --git a/lib/ast_util.cpp b/src/ast/ast_util.cpp similarity index 100% rename from lib/ast_util.cpp rename to src/ast/ast_util.cpp diff --git a/lib/ast_util.h b/src/ast/ast_util.h similarity index 100% rename from lib/ast_util.h rename to src/ast/ast_util.h diff --git a/lib/bv_decl_plugin.cpp b/src/ast/bv_decl_plugin.cpp similarity index 100% rename from lib/bv_decl_plugin.cpp rename to src/ast/bv_decl_plugin.cpp diff --git a/lib/bv_decl_plugin.h b/src/ast/bv_decl_plugin.h similarity index 100% rename from lib/bv_decl_plugin.h rename to src/ast/bv_decl_plugin.h diff --git a/lib/datatype_decl_plugin.cpp b/src/ast/datatype_decl_plugin.cpp similarity index 100% rename from lib/datatype_decl_plugin.cpp rename to src/ast/datatype_decl_plugin.cpp diff --git a/lib/datatype_decl_plugin.h b/src/ast/datatype_decl_plugin.h similarity index 100% rename from lib/datatype_decl_plugin.h rename to src/ast/datatype_decl_plugin.h diff --git a/lib/dl_decl_plugin.cpp b/src/ast/dl_decl_plugin.cpp similarity index 100% rename from lib/dl_decl_plugin.cpp rename to src/ast/dl_decl_plugin.cpp diff --git a/lib/dl_decl_plugin.h b/src/ast/dl_decl_plugin.h similarity index 100% rename from lib/dl_decl_plugin.h rename to src/ast/dl_decl_plugin.h diff --git a/lib/float_decl_plugin.cpp b/src/ast/float_decl_plugin.cpp similarity index 100% rename from lib/float_decl_plugin.cpp rename to src/ast/float_decl_plugin.cpp diff --git a/lib/float_decl_plugin.h b/src/ast/float_decl_plugin.h similarity index 100% rename from lib/float_decl_plugin.h rename to src/ast/float_decl_plugin.h diff --git a/lib/for_each_ast.h b/src/ast/for_each_ast.h similarity index 100% rename from lib/for_each_ast.h rename to src/ast/for_each_ast.h diff --git a/lib/format.cpp b/src/ast/format.cpp similarity index 100% rename from lib/format.cpp rename to src/ast/format.cpp diff --git a/lib/format.h b/src/ast/format.h similarity index 100% rename from lib/format.h rename to src/ast/format.h diff --git a/lib/pp.cpp b/src/ast/pp.cpp similarity index 100% rename from lib/pp.cpp rename to src/ast/pp.cpp diff --git a/lib/pp.h b/src/ast/pp.h similarity index 100% rename from lib/pp.h rename to src/ast/pp.h diff --git a/lib/pp_params.cpp b/src/ast/pp_params.cpp similarity index 100% rename from lib/pp_params.cpp rename to src/ast/pp_params.cpp diff --git a/lib/pp_params.h b/src/ast/pp_params.h similarity index 100% rename from lib/pp_params.h rename to src/ast/pp_params.h diff --git a/lib/recurse_expr.h b/src/ast/recurse_expr.h similarity index 100% rename from lib/recurse_expr.h rename to src/ast/recurse_expr.h diff --git a/lib/recurse_expr_def.h b/src/ast/recurse_expr_def.h similarity index 100% rename from lib/recurse_expr_def.h rename to src/ast/recurse_expr_def.h diff --git a/lib/seq_decl_plugin.cpp b/src/ast/seq_decl_plugin.cpp similarity index 100% rename from lib/seq_decl_plugin.cpp rename to src/ast/seq_decl_plugin.cpp diff --git a/lib/seq_decl_plugin.h b/src/ast/seq_decl_plugin.h similarity index 100% rename from lib/seq_decl_plugin.h rename to src/ast/seq_decl_plugin.h diff --git a/lib/shared_occs.cpp b/src/ast/shared_occs.cpp similarity index 100% rename from lib/shared_occs.cpp rename to src/ast/shared_occs.cpp diff --git a/lib/shared_occs.h b/src/ast/shared_occs.h similarity index 100% rename from lib/shared_occs.h rename to src/ast/shared_occs.h diff --git a/lib/algebraic_numbers.cpp b/src/polynomial/algebraic_numbers.cpp similarity index 100% rename from lib/algebraic_numbers.cpp rename to src/polynomial/algebraic_numbers.cpp diff --git a/lib/algebraic_numbers.h b/src/polynomial/algebraic_numbers.h similarity index 100% rename from lib/algebraic_numbers.h rename to src/polynomial/algebraic_numbers.h diff --git a/lib/linear_eq_solver.h b/src/polynomial/linear_eq_solver.h similarity index 100% rename from lib/linear_eq_solver.h rename to src/polynomial/linear_eq_solver.h diff --git a/lib/polynomial.cpp b/src/polynomial/polynomial.cpp similarity index 100% rename from lib/polynomial.cpp rename to src/polynomial/polynomial.cpp diff --git a/lib/polynomial.h b/src/polynomial/polynomial.h similarity index 100% rename from lib/polynomial.h rename to src/polynomial/polynomial.h diff --git a/lib/polynomial_cache.cpp b/src/polynomial/polynomial_cache.cpp similarity index 100% rename from lib/polynomial_cache.cpp rename to src/polynomial/polynomial_cache.cpp diff --git a/lib/polynomial_cache.h b/src/polynomial/polynomial_cache.h similarity index 100% rename from lib/polynomial_cache.h rename to src/polynomial/polynomial_cache.h diff --git a/lib/polynomial_factorization.cpp b/src/polynomial/polynomial_factorization.cpp similarity index 100% rename from lib/polynomial_factorization.cpp rename to src/polynomial/polynomial_factorization.cpp diff --git a/lib/polynomial_factorization.h b/src/polynomial/polynomial_factorization.h similarity index 100% rename from lib/polynomial_factorization.h rename to src/polynomial/polynomial_factorization.h diff --git a/lib/polynomial_primes.h b/src/polynomial/polynomial_primes.h similarity index 100% rename from lib/polynomial_primes.h rename to src/polynomial/polynomial_primes.h diff --git a/lib/polynomial_var2value.h b/src/polynomial/polynomial_var2value.h similarity index 100% rename from lib/polynomial_var2value.h rename to src/polynomial/polynomial_var2value.h diff --git a/lib/sexpr2upolynomial.cpp b/src/polynomial/sexpr2upolynomial.cpp similarity index 100% rename from lib/sexpr2upolynomial.cpp rename to src/polynomial/sexpr2upolynomial.cpp diff --git a/lib/sexpr2upolynomial.h b/src/polynomial/sexpr2upolynomial.h similarity index 100% rename from lib/sexpr2upolynomial.h rename to src/polynomial/sexpr2upolynomial.h diff --git a/lib/upolynomial.cpp b/src/polynomial/upolynomial.cpp similarity index 100% rename from lib/upolynomial.cpp rename to src/polynomial/upolynomial.cpp diff --git a/lib/upolynomial.h b/src/polynomial/upolynomial.h similarity index 100% rename from lib/upolynomial.h rename to src/polynomial/upolynomial.h diff --git a/lib/upolynomial_factorization.cpp b/src/polynomial/upolynomial_factorization.cpp similarity index 100% rename from lib/upolynomial_factorization.cpp rename to src/polynomial/upolynomial_factorization.cpp diff --git a/lib/upolynomial_factorization.h b/src/polynomial/upolynomial_factorization.h similarity index 100% rename from lib/upolynomial_factorization.h rename to src/polynomial/upolynomial_factorization.h diff --git a/lib/upolynomial_factorization_int.h b/src/polynomial/upolynomial_factorization_int.h similarity index 100% rename from lib/upolynomial_factorization_int.h rename to src/polynomial/upolynomial_factorization_int.h diff --git a/lib/cmd_context_types.cpp b/src/util/cmd_context_types.cpp similarity index 100% rename from lib/cmd_context_types.cpp rename to src/util/cmd_context_types.cpp diff --git a/lib/cmd_context_types.h b/src/util/cmd_context_types.h similarity index 100% rename from lib/cmd_context_types.h rename to src/util/cmd_context_types.h diff --git a/lib/cooperate.cpp b/src/util/cooperate.cpp similarity index 100% rename from lib/cooperate.cpp rename to src/util/cooperate.cpp diff --git a/lib/cooperate.h b/src/util/cooperate.h similarity index 100% rename from lib/cooperate.h rename to src/util/cooperate.h diff --git a/lib/error_codes.h b/src/util/error_codes.h similarity index 100% rename from lib/error_codes.h rename to src/util/error_codes.h diff --git a/src/util/mpq_inf.h b/src/util/mpq_inf.h index 008333b0b..217b58567 100644 --- a/src/util/mpq_inf.h +++ b/src/util/mpq_inf.h @@ -21,7 +21,6 @@ Revision History: #include"mpq.h" #include"hash.h" -#include"params.h" typedef std::pair mpq_inf; @@ -32,12 +31,12 @@ class mpq_inf_manager { public: typedef mpq_inf numeral; - mpq_inf_manager(mpq_manager & _m, params_ref const & p = params_ref()):m(_m) { - updt_params(p); + mpq_inf_manager(mpq_manager & _m, double inf = 0.0001):m(_m) { + set_inf(inf); } - void updt_params(params_ref const & p) { - m_inf = p.get_double(":infinitesimal-as-double", 0.00001); + void set_inf(double inf) { + m_inf = inf; } enum inf_kind { NEG=-1, ZERO, POS }; diff --git a/lib/params.cpp b/src/util/params.cpp similarity index 80% rename from lib/params.cpp rename to src/util/params.cpp index bcb3ce078..ae7f0c830 100644 --- a/lib/params.cpp +++ b/src/util/params.cpp @@ -17,7 +17,6 @@ Notes: --*/ #include"params.h" -#include"ast.h" #include"rational.h" #include"symbol.h" #include"dictionary.h" @@ -158,11 +157,9 @@ class params { char const * m_str_value; char const * m_sym_value; rational * m_rat_value; - ast * m_ast_value; }; }; typedef std::pair entry; - ast_manager * m_manager; svector m_entries; unsigned m_ref_count; @@ -170,7 +167,7 @@ class params { void del_values(); public: - params():m_manager(0), m_ref_count(0) {} + params():m_ref_count(0) {} ~params() { reset(); } @@ -178,8 +175,6 @@ public: void inc_ref() { m_ref_count++; } void dec_ref() { SASSERT(m_ref_count > 0); m_ref_count--; if (m_ref_count == 0) dealloc(this); } - void set_manager(ast_manager & m); - bool empty() const { return m_entries.empty(); } bool contains(symbol const & k) const; bool contains(char const * k) const; @@ -213,12 +208,6 @@ public: rational get_rat(char const * k, rational const & _default) const; symbol get_sym(symbol const & k, symbol const & _default) const; symbol get_sym(char const * k, symbol const & _default) const; - expr * get_expr(symbol const & k, expr * _default) const; - expr * get_expr(char const * k, expr * _default) const; - func_decl * get_func_decl(symbol const & k, func_decl * _default) const; - func_decl * get_func_decl(char const * k, func_decl * _default) const; - sort * get_sort(symbol const & k, sort * _default) const; - sort * get_sort(char const * k, sort * _default) const; // setters void set_bool(symbol const & k, bool v); @@ -233,12 +222,6 @@ public: void set_rat(char const * k, rational const & v); void set_sym(symbol const & k, symbol const & v); void set_sym(char const * k, symbol const & v); - void set_expr(symbol const & k, expr * v); - void set_expr(char const * k, expr * v); - void set_func_decl(symbol const & k, func_decl * v); - void set_func_decl(char const * k, func_decl * v); - void set_sort(symbol const & k, sort * v); - void set_sort(char const * k, sort * v); void display(std::ostream & out) const { out << "(params"; @@ -265,11 +248,6 @@ public: case CPK_STRING: out << " " << it->second.m_str_value; break; - case CPK_EXPR: - case CPK_FUNC_DECL: - case CPK_SORT: - out << " #" << it->second.m_ast_value->get_id(); - break; default: UNREACHABLE(); break; @@ -344,15 +322,6 @@ void params_ref::copy_core(params const * src) { case CPK_STRING: m_params->set_str(it->first, it->second.m_str_value); break; - case CPK_EXPR: - m_params->set_expr(it->first, static_cast(it->second.m_ast_value)); - break; - case CPK_FUNC_DECL: - m_params->set_func_decl(it->first, static_cast(it->second.m_ast_value)); - break; - case CPK_SORT: - m_params->set_sort(it->first, static_cast(it->second.m_ast_value)); - break; default: UNREACHABLE(); break; @@ -369,7 +338,6 @@ void params_ref::init() { params * old = m_params; m_params = alloc(params); m_params->inc_ref(); - m_params->m_manager = old->m_manager; copy_core(old); old->dec_ref(); } @@ -385,12 +353,6 @@ double params_ref::get_double(symbol const & k, double _default) const { return double params_ref::get_double(char const * k, double _default) const { return m_params ? m_params->get_double(k, _default) : _default; } char const * params_ref::get_str(symbol const & k, char const * _default) const { return m_params ? m_params->get_str(k, _default) : _default; } char const * params_ref::get_str(char const * k, char const * _default) const { return m_params ? m_params->get_str(k, _default) : _default; } -expr * params_ref::get_expr(symbol const & k, expr * _default) const { return m_params ? m_params->get_expr(k, _default) : _default; } -expr * params_ref::get_expr(char const * k, expr * _default) const { return m_params ? m_params->get_expr(k, _default) : _default; } -func_decl * params_ref::get_func_decl(symbol const & k, func_decl * _default) const { return m_params ? m_params->get_func_decl(k, _default) : _default; } -func_decl * params_ref::get_func_decl(char const * k, func_decl * _default) const { return m_params ? m_params->get_func_decl(k, _default) : _default; } -sort * params_ref::get_sort(symbol const & k, sort * _default) const { return m_params ? m_params->get_sort(k, _default) : _default; } -sort * params_ref::get_sort(char const * k, sort * _default) const { return m_params ? m_params->get_sort(k, _default) : _default; } rational params_ref::get_rat(symbol const & k, rational const & _default) const { return m_params ? m_params->get_rat(k, _default) : _default; @@ -408,11 +370,6 @@ symbol params_ref::get_sym(char const * k, symbol const & _default) const { return m_params ? m_params->get_sym(k, _default) : _default; } -void params_ref::set_manager(ast_manager & m) { - init(); - m_params->set_manager(m); -} - bool params_ref::empty() const { if (!m_params) return true; @@ -506,35 +463,6 @@ void params_ref::set_sym(char const * k, symbol const & v) { m_params->set_sym(k, v); } -void params_ref::set_expr(symbol const & k, expr * v) { - init(); - m_params->set_expr(k, v); -} - -void params_ref::set_expr(char const * k, expr * v) { - init(); - m_params->set_expr(k, v); -} - -void params_ref::set_func_decl(symbol const & k, func_decl * v) { - init(); - m_params->set_func_decl(k, v); -} - -void params_ref::set_func_decl(char const * k, func_decl * v) { - init(); - m_params->set_func_decl(k, v); -} - -void params_ref::set_sort(symbol const & k, sort * v) { - init(); - m_params->set_sort(k, v); -} - -void params_ref::set_sort(char const * k, sort * v) { - init(); - m_params->set_sort(k, v); -} void params::del_value(entry & e) { switch (e.second.m_kind) { @@ -542,21 +470,11 @@ void params::del_value(entry & e) { if (e.second.m_kind == CPK_NUMERAL) dealloc(e.second.m_rat_value); break; - case CPK_EXPR: - case CPK_SORT: - case CPK_FUNC_DECL: - SASSERT(m_manager); - m_manager->dec_ref(e.second.m_ast_value); - return; default: return; } } -void params::set_manager(ast_manager & m) { - m_manager = &m; -} - #define TRAVERSE_ENTRIES(CODE) { \ svector::iterator it = m_entries.begin(); \ svector::iterator end = m_entries.end(); \ @@ -696,30 +614,6 @@ symbol params::get_sym(char const * k, symbol const & _default) const { GET_VALUE(return symbol::mk_symbol_from_c_ptr(it->second.m_sym_value);, CPK_SYMBOL); } -expr * params::get_expr(symbol const & k, expr * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_EXPR); -} - -expr * params::get_expr(char const * k, expr * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_EXPR); -} - -func_decl * params::get_func_decl(symbol const & k, func_decl * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_FUNC_DECL); -} - -func_decl * params::get_func_decl(char const * k, func_decl * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_FUNC_DECL); -} - -sort * params::get_sort(symbol const & k, sort * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_SORT); -} - -sort * params::get_sort(char const * k, sort * _default) const { - GET_VALUE(return static_cast(it->second.m_ast_value);, CPK_SORT); -} - #define SET_VALUE(MATCH_CODE, ADD_CODE) { \ TRAVERSE_ENTRIES(if (it->first == k) { \ MATCH_CODE \ @@ -820,44 +714,3 @@ void params::set_sym(char const * k, symbol const & v) { SET_SYM_VALUE(); } -#define SET_AST_VALUE(KIND) { \ - SASSERT(m_manager); \ - m_manager->inc_ref(v); \ - SET_VALUE({ \ - del_value(*it); \ - it->second.m_kind = KIND; \ - it->second.m_ast_value = v; \ - }, \ - { \ - entry new_entry; \ - new_entry.first = symbol(k); \ - new_entry.second.m_kind = KIND; \ - new_entry.second.m_ast_value = v; \ - m_entries.push_back(new_entry); \ - })} - - -void params::set_expr(symbol const & k, expr * v) { - SET_AST_VALUE(CPK_EXPR); -} - -void params::set_expr(char const * k, expr * v) { - SET_AST_VALUE(CPK_EXPR); -} - -void params::set_func_decl(symbol const & k, func_decl * v) { - SET_AST_VALUE(CPK_FUNC_DECL); -} - -void params::set_func_decl(char const * k, func_decl * v) { - SET_AST_VALUE(CPK_FUNC_DECL); -} - -void params::set_sort(symbol const & k, sort * v) { - SET_AST_VALUE(CPK_SORT); -} - -void params::set_sort(char const * k, sort * v) { - SET_AST_VALUE(CPK_SORT); -} - diff --git a/lib/params.h b/src/util/params.h similarity index 81% rename from lib/params.h rename to src/util/params.h index f2a5e4da8..66c4e7c7a 100644 --- a/lib/params.h +++ b/src/util/params.h @@ -21,8 +21,6 @@ Notes: #include"cmd_context_types.h" #include"vector.h" -class ast; -class ast_manager; typedef cmd_arg_kind param_kind; @@ -56,14 +54,6 @@ public: rational get_rat(char const * k, rational const & _default) const; symbol get_sym(symbol const & k, symbol const & _default) const; symbol get_sym(char const * k, symbol const & _default) const; - expr * get_expr(symbol const & k, expr * _default) const; - expr * get_expr(char const * k, expr * _default) const; - func_decl * get_func_decl(symbol const & k, func_decl * _default) const; - func_decl * get_func_decl(char const * k, func_decl * _default) const; - sort * get_sort(symbol const & k, sort * _default) const; - sort * get_sort(char const * k, sort * _default) const; - - void set_manager(ast_manager & m); bool empty() const; bool contains(symbol const & k) const; @@ -85,12 +75,6 @@ public: void set_rat(char const * k, rational const & v); void set_sym(symbol const & k, symbol const & v); void set_sym(char const * k, symbol const & v); - void set_expr(symbol const & k, expr * v); - void set_expr(char const * k, expr * v); - void set_func_decl(symbol const & k, func_decl * v); - void set_func_decl(char const * k, func_decl * v); - void set_sort(symbol const & k, sort * v); - void set_sort(char const * k, sort * v); void display(std::ostream & out) const; diff --git a/lib/skip_list_base.h b/src/util/skip_list_base.h similarity index 100% rename from lib/skip_list_base.h rename to src/util/skip_list_base.h diff --git a/src/util/statistics.cpp b/src/util/statistics.cpp index 6b5d396f8..24d17ddfa 100644 --- a/src/util/statistics.cpp +++ b/src/util/statistics.cpp @@ -20,7 +20,7 @@ Notes: #include"map.h" #include"str_hashtable.h" #include"buffer.h" -#include"ast_smt2_pp.h" +#include"smt2_util.h" #include void statistics::update(char const * key, unsigned inc) { diff --git a/lib/z3_exception.cpp b/src/util/z3_exception.cpp similarity index 100% rename from lib/z3_exception.cpp rename to src/util/z3_exception.cpp diff --git a/lib/z3_exception.h b/src/util/z3_exception.h similarity index 100% rename from lib/z3_exception.h rename to src/util/z3_exception.h diff --git a/lib/z3_omp.h b/src/util/z3_omp.h similarity index 100% rename from lib/z3_omp.h rename to src/util/z3_omp.h From c66b9ab615fecbce5d3d9988e8ce21a5c56d2e5c Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 15:30:42 -0700 Subject: [PATCH 03/54] Reorganizing the code Signed-off-by: Leonardo de Moura --- mk_make.py | 1 + {lib => src/sat}/luby.cpp | 0 {lib => src/sat}/luby.h | 0 {lib => src/sat}/sat_asymm_branch.cpp | 0 {lib => src/sat}/sat_asymm_branch.h | 0 {lib => src/sat}/sat_clause.cpp | 0 {lib => src/sat}/sat_clause.h | 0 {lib => src/sat}/sat_clause_set.cpp | 0 {lib => src/sat}/sat_clause_set.h | 0 {lib => src/sat}/sat_clause_use_list.cpp | 0 {lib => src/sat}/sat_clause_use_list.h | 0 {lib => src/sat}/sat_cleaner.cpp | 0 {lib => src/sat}/sat_cleaner.h | 0 {lib => src/sat}/sat_config.cpp | 0 {lib => src/sat}/sat_config.h | 0 {lib => src/sat}/sat_elim_eqs.cpp | 0 {lib => src/sat}/sat_elim_eqs.h | 0 {lib => src/sat}/sat_extension.h | 0 {lib => src/sat}/sat_iff3_finder.cpp | 0 {lib => src/sat}/sat_iff3_finder.h | 0 {lib => src/sat}/sat_integrity_checker.cpp | 0 {lib => src/sat}/sat_integrity_checker.h | 0 {lib => src/sat}/sat_justification.h | 0 {lib => src/sat}/sat_model_converter.cpp | 0 {lib => src/sat}/sat_model_converter.h | 0 {lib => src/sat}/sat_probing.cpp | 0 {lib => src/sat}/sat_probing.h | 0 {lib => src/sat}/sat_scc.cpp | 0 {lib => src/sat}/sat_scc.h | 0 {lib => src/sat}/sat_simplifier.cpp | 0 {lib => src/sat}/sat_simplifier.h | 0 {lib => src/sat}/sat_solver.cpp | 1 - {lib => src/sat}/sat_solver.h | 0 {lib => src/sat}/sat_types.h | 0 {lib => src/sat}/sat_var_queue.h | 0 {lib => src/sat}/sat_watched.cpp | 0 {lib => src/sat}/sat_watched.h | 0 {lib => src/util}/tactic_exception.cpp | 0 {lib => src/util}/tactic_exception.h | 0 39 files changed, 1 insertion(+), 1 deletion(-) rename {lib => src/sat}/luby.cpp (100%) rename {lib => src/sat}/luby.h (100%) rename {lib => src/sat}/sat_asymm_branch.cpp (100%) rename {lib => src/sat}/sat_asymm_branch.h (100%) rename {lib => src/sat}/sat_clause.cpp (100%) rename {lib => src/sat}/sat_clause.h (100%) rename {lib => src/sat}/sat_clause_set.cpp (100%) rename {lib => src/sat}/sat_clause_set.h (100%) rename {lib => src/sat}/sat_clause_use_list.cpp (100%) rename {lib => src/sat}/sat_clause_use_list.h (100%) rename {lib => src/sat}/sat_cleaner.cpp (100%) rename {lib => src/sat}/sat_cleaner.h (100%) rename {lib => src/sat}/sat_config.cpp (100%) rename {lib => src/sat}/sat_config.h (100%) rename {lib => src/sat}/sat_elim_eqs.cpp (100%) rename {lib => src/sat}/sat_elim_eqs.h (100%) rename {lib => src/sat}/sat_extension.h (100%) rename {lib => src/sat}/sat_iff3_finder.cpp (100%) rename {lib => src/sat}/sat_iff3_finder.h (100%) rename {lib => src/sat}/sat_integrity_checker.cpp (100%) rename {lib => src/sat}/sat_integrity_checker.h (100%) rename {lib => src/sat}/sat_justification.h (100%) rename {lib => src/sat}/sat_model_converter.cpp (100%) rename {lib => src/sat}/sat_model_converter.h (100%) rename {lib => src/sat}/sat_probing.cpp (100%) rename {lib => src/sat}/sat_probing.h (100%) rename {lib => src/sat}/sat_scc.cpp (100%) rename {lib => src/sat}/sat_scc.h (100%) rename {lib => src/sat}/sat_simplifier.cpp (100%) rename {lib => src/sat}/sat_simplifier.h (100%) rename {lib => src/sat}/sat_solver.cpp (99%) rename {lib => src/sat}/sat_solver.h (100%) rename {lib => src/sat}/sat_types.h (100%) rename {lib => src/sat}/sat_var_queue.h (100%) rename {lib => src/sat}/sat_watched.cpp (100%) rename {lib => src/sat}/sat_watched.h (100%) rename {lib => src/util}/tactic_exception.cpp (100%) rename {lib => src/util}/tactic_exception.h (100%) diff --git a/mk_make.py b/mk_make.py index 35c06b4c5..92b0cf4a0 100644 --- a/mk_make.py +++ b/mk_make.py @@ -158,4 +158,5 @@ def add_lib(name, deps): add_lib('util', []) add_lib('polynomial', ['util']) +add_lib('sat', ['util']) add_lib('ast', ['util', 'polynomial']) diff --git a/lib/luby.cpp b/src/sat/luby.cpp similarity index 100% rename from lib/luby.cpp rename to src/sat/luby.cpp diff --git a/lib/luby.h b/src/sat/luby.h similarity index 100% rename from lib/luby.h rename to src/sat/luby.h diff --git a/lib/sat_asymm_branch.cpp b/src/sat/sat_asymm_branch.cpp similarity index 100% rename from lib/sat_asymm_branch.cpp rename to src/sat/sat_asymm_branch.cpp diff --git a/lib/sat_asymm_branch.h b/src/sat/sat_asymm_branch.h similarity index 100% rename from lib/sat_asymm_branch.h rename to src/sat/sat_asymm_branch.h diff --git a/lib/sat_clause.cpp b/src/sat/sat_clause.cpp similarity index 100% rename from lib/sat_clause.cpp rename to src/sat/sat_clause.cpp diff --git a/lib/sat_clause.h b/src/sat/sat_clause.h similarity index 100% rename from lib/sat_clause.h rename to src/sat/sat_clause.h diff --git a/lib/sat_clause_set.cpp b/src/sat/sat_clause_set.cpp similarity index 100% rename from lib/sat_clause_set.cpp rename to src/sat/sat_clause_set.cpp diff --git a/lib/sat_clause_set.h b/src/sat/sat_clause_set.h similarity index 100% rename from lib/sat_clause_set.h rename to src/sat/sat_clause_set.h diff --git a/lib/sat_clause_use_list.cpp b/src/sat/sat_clause_use_list.cpp similarity index 100% rename from lib/sat_clause_use_list.cpp rename to src/sat/sat_clause_use_list.cpp diff --git a/lib/sat_clause_use_list.h b/src/sat/sat_clause_use_list.h similarity index 100% rename from lib/sat_clause_use_list.h rename to src/sat/sat_clause_use_list.h diff --git a/lib/sat_cleaner.cpp b/src/sat/sat_cleaner.cpp similarity index 100% rename from lib/sat_cleaner.cpp rename to src/sat/sat_cleaner.cpp diff --git a/lib/sat_cleaner.h b/src/sat/sat_cleaner.h similarity index 100% rename from lib/sat_cleaner.h rename to src/sat/sat_cleaner.h diff --git a/lib/sat_config.cpp b/src/sat/sat_config.cpp similarity index 100% rename from lib/sat_config.cpp rename to src/sat/sat_config.cpp diff --git a/lib/sat_config.h b/src/sat/sat_config.h similarity index 100% rename from lib/sat_config.h rename to src/sat/sat_config.h diff --git a/lib/sat_elim_eqs.cpp b/src/sat/sat_elim_eqs.cpp similarity index 100% rename from lib/sat_elim_eqs.cpp rename to src/sat/sat_elim_eqs.cpp diff --git a/lib/sat_elim_eqs.h b/src/sat/sat_elim_eqs.h similarity index 100% rename from lib/sat_elim_eqs.h rename to src/sat/sat_elim_eqs.h diff --git a/lib/sat_extension.h b/src/sat/sat_extension.h similarity index 100% rename from lib/sat_extension.h rename to src/sat/sat_extension.h diff --git a/lib/sat_iff3_finder.cpp b/src/sat/sat_iff3_finder.cpp similarity index 100% rename from lib/sat_iff3_finder.cpp rename to src/sat/sat_iff3_finder.cpp diff --git a/lib/sat_iff3_finder.h b/src/sat/sat_iff3_finder.h similarity index 100% rename from lib/sat_iff3_finder.h rename to src/sat/sat_iff3_finder.h diff --git a/lib/sat_integrity_checker.cpp b/src/sat/sat_integrity_checker.cpp similarity index 100% rename from lib/sat_integrity_checker.cpp rename to src/sat/sat_integrity_checker.cpp diff --git a/lib/sat_integrity_checker.h b/src/sat/sat_integrity_checker.h similarity index 100% rename from lib/sat_integrity_checker.h rename to src/sat/sat_integrity_checker.h diff --git a/lib/sat_justification.h b/src/sat/sat_justification.h similarity index 100% rename from lib/sat_justification.h rename to src/sat/sat_justification.h diff --git a/lib/sat_model_converter.cpp b/src/sat/sat_model_converter.cpp similarity index 100% rename from lib/sat_model_converter.cpp rename to src/sat/sat_model_converter.cpp diff --git a/lib/sat_model_converter.h b/src/sat/sat_model_converter.h similarity index 100% rename from lib/sat_model_converter.h rename to src/sat/sat_model_converter.h diff --git a/lib/sat_probing.cpp b/src/sat/sat_probing.cpp similarity index 100% rename from lib/sat_probing.cpp rename to src/sat/sat_probing.cpp diff --git a/lib/sat_probing.h b/src/sat/sat_probing.h similarity index 100% rename from lib/sat_probing.h rename to src/sat/sat_probing.h diff --git a/lib/sat_scc.cpp b/src/sat/sat_scc.cpp similarity index 100% rename from lib/sat_scc.cpp rename to src/sat/sat_scc.cpp diff --git a/lib/sat_scc.h b/src/sat/sat_scc.h similarity index 100% rename from lib/sat_scc.h rename to src/sat/sat_scc.h diff --git a/lib/sat_simplifier.cpp b/src/sat/sat_simplifier.cpp similarity index 100% rename from lib/sat_simplifier.cpp rename to src/sat/sat_simplifier.cpp diff --git a/lib/sat_simplifier.h b/src/sat/sat_simplifier.h similarity index 100% rename from lib/sat_simplifier.h rename to src/sat/sat_simplifier.h diff --git a/lib/sat_solver.cpp b/src/sat/sat_solver.cpp similarity index 99% rename from lib/sat_solver.cpp rename to src/sat/sat_solver.cpp index 3ca32a499..0322e80c5 100644 --- a/lib/sat_solver.cpp +++ b/src/sat/sat_solver.cpp @@ -17,7 +17,6 @@ Revision History: --*/ #include"sat_solver.h" -#include"strategy_exception.h" #include"sat_integrity_checker.h" #include"luby.h" #include"trace.h" diff --git a/lib/sat_solver.h b/src/sat/sat_solver.h similarity index 100% rename from lib/sat_solver.h rename to src/sat/sat_solver.h diff --git a/lib/sat_types.h b/src/sat/sat_types.h similarity index 100% rename from lib/sat_types.h rename to src/sat/sat_types.h diff --git a/lib/sat_var_queue.h b/src/sat/sat_var_queue.h similarity index 100% rename from lib/sat_var_queue.h rename to src/sat/sat_var_queue.h diff --git a/lib/sat_watched.cpp b/src/sat/sat_watched.cpp similarity index 100% rename from lib/sat_watched.cpp rename to src/sat/sat_watched.cpp diff --git a/lib/sat_watched.h b/src/sat/sat_watched.h similarity index 100% rename from lib/sat_watched.h rename to src/sat/sat_watched.h diff --git a/lib/tactic_exception.cpp b/src/util/tactic_exception.cpp similarity index 100% rename from lib/tactic_exception.cpp rename to src/util/tactic_exception.cpp diff --git a/lib/tactic_exception.h b/src/util/tactic_exception.h similarity index 100% rename from lib/tactic_exception.h rename to src/util/tactic_exception.h From 9a84cba6c92799fab1c58f0f72df68fadefabf17 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 15:48:18 -0700 Subject: [PATCH 04/54] Reorganizing the code. Moved nlsat to its own directory. Signed-off-by: Leonardo de Moura --- mk_make.py | 3 ++- {lib => src/ast}/for_each_ast.cpp | 0 {lib => src/ast}/for_each_expr.cpp | 0 {lib => src/ast}/for_each_expr.h | 0 {lib => src/ast}/well_sorted.cpp | 0 {lib => src/ast}/well_sorted.h | 0 {lib => src/nlsat}/nlsat_assignment.h | 0 {lib => src/nlsat}/nlsat_clause.cpp | 0 {lib => src/nlsat}/nlsat_clause.h | 0 {lib => src/nlsat}/nlsat_evaluator.cpp | 0 {lib => src/nlsat}/nlsat_evaluator.h | 0 {lib => src/nlsat}/nlsat_explain.cpp | 0 {lib => src/nlsat}/nlsat_explain.h | 0 {lib => src/nlsat}/nlsat_interval_set.cpp | 0 {lib => src/nlsat}/nlsat_interval_set.h | 0 {lib => src/nlsat}/nlsat_justification.h | 0 {lib => src/nlsat}/nlsat_scoped_literal_vector.h | 0 {lib => src/nlsat}/nlsat_solver.cpp | 2 +- {lib => src/nlsat}/nlsat_solver.h | 0 {lib => src/nlsat}/nlsat_types.cpp | 0 {lib => src/nlsat}/nlsat_types.h | 0 src/{sat => sat_core}/sat_types.h | 0 22 files changed, 3 insertions(+), 2 deletions(-) rename {lib => src/ast}/for_each_ast.cpp (100%) rename {lib => src/ast}/for_each_expr.cpp (100%) rename {lib => src/ast}/for_each_expr.h (100%) rename {lib => src/ast}/well_sorted.cpp (100%) rename {lib => src/ast}/well_sorted.h (100%) rename {lib => src/nlsat}/nlsat_assignment.h (100%) rename {lib => src/nlsat}/nlsat_clause.cpp (100%) rename {lib => src/nlsat}/nlsat_clause.h (100%) rename {lib => src/nlsat}/nlsat_evaluator.cpp (100%) rename {lib => src/nlsat}/nlsat_evaluator.h (100%) rename {lib => src/nlsat}/nlsat_explain.cpp (100%) rename {lib => src/nlsat}/nlsat_explain.h (100%) rename {lib => src/nlsat}/nlsat_interval_set.cpp (100%) rename {lib => src/nlsat}/nlsat_interval_set.h (100%) rename {lib => src/nlsat}/nlsat_justification.h (100%) rename {lib => src/nlsat}/nlsat_scoped_literal_vector.h (100%) rename {lib => src/nlsat}/nlsat_solver.cpp (99%) rename {lib => src/nlsat}/nlsat_solver.h (100%) rename {lib => src/nlsat}/nlsat_types.cpp (100%) rename {lib => src/nlsat}/nlsat_types.h (100%) rename src/{sat => sat_core}/sat_types.h (100%) diff --git a/mk_make.py b/mk_make.py index 92b0cf4a0..0bf3ecb80 100644 --- a/mk_make.py +++ b/mk_make.py @@ -158,5 +158,6 @@ def add_lib(name, deps): add_lib('util', []) add_lib('polynomial', ['util']) -add_lib('sat', ['util']) +add_lib('sat', ['util', 'sat_core']) +add_lib('nlsat', ['util', 'sat_core', 'polynomial']) add_lib('ast', ['util', 'polynomial']) diff --git a/lib/for_each_ast.cpp b/src/ast/for_each_ast.cpp similarity index 100% rename from lib/for_each_ast.cpp rename to src/ast/for_each_ast.cpp diff --git a/lib/for_each_expr.cpp b/src/ast/for_each_expr.cpp similarity index 100% rename from lib/for_each_expr.cpp rename to src/ast/for_each_expr.cpp diff --git a/lib/for_each_expr.h b/src/ast/for_each_expr.h similarity index 100% rename from lib/for_each_expr.h rename to src/ast/for_each_expr.h diff --git a/lib/well_sorted.cpp b/src/ast/well_sorted.cpp similarity index 100% rename from lib/well_sorted.cpp rename to src/ast/well_sorted.cpp diff --git a/lib/well_sorted.h b/src/ast/well_sorted.h similarity index 100% rename from lib/well_sorted.h rename to src/ast/well_sorted.h diff --git a/lib/nlsat_assignment.h b/src/nlsat/nlsat_assignment.h similarity index 100% rename from lib/nlsat_assignment.h rename to src/nlsat/nlsat_assignment.h diff --git a/lib/nlsat_clause.cpp b/src/nlsat/nlsat_clause.cpp similarity index 100% rename from lib/nlsat_clause.cpp rename to src/nlsat/nlsat_clause.cpp diff --git a/lib/nlsat_clause.h b/src/nlsat/nlsat_clause.h similarity index 100% rename from lib/nlsat_clause.h rename to src/nlsat/nlsat_clause.h diff --git a/lib/nlsat_evaluator.cpp b/src/nlsat/nlsat_evaluator.cpp similarity index 100% rename from lib/nlsat_evaluator.cpp rename to src/nlsat/nlsat_evaluator.cpp diff --git a/lib/nlsat_evaluator.h b/src/nlsat/nlsat_evaluator.h similarity index 100% rename from lib/nlsat_evaluator.h rename to src/nlsat/nlsat_evaluator.h diff --git a/lib/nlsat_explain.cpp b/src/nlsat/nlsat_explain.cpp similarity index 100% rename from lib/nlsat_explain.cpp rename to src/nlsat/nlsat_explain.cpp diff --git a/lib/nlsat_explain.h b/src/nlsat/nlsat_explain.h similarity index 100% rename from lib/nlsat_explain.h rename to src/nlsat/nlsat_explain.h diff --git a/lib/nlsat_interval_set.cpp b/src/nlsat/nlsat_interval_set.cpp similarity index 100% rename from lib/nlsat_interval_set.cpp rename to src/nlsat/nlsat_interval_set.cpp diff --git a/lib/nlsat_interval_set.h b/src/nlsat/nlsat_interval_set.h similarity index 100% rename from lib/nlsat_interval_set.h rename to src/nlsat/nlsat_interval_set.h diff --git a/lib/nlsat_justification.h b/src/nlsat/nlsat_justification.h similarity index 100% rename from lib/nlsat_justification.h rename to src/nlsat/nlsat_justification.h diff --git a/lib/nlsat_scoped_literal_vector.h b/src/nlsat/nlsat_scoped_literal_vector.h similarity index 100% rename from lib/nlsat_scoped_literal_vector.h rename to src/nlsat/nlsat_scoped_literal_vector.h diff --git a/lib/nlsat_solver.cpp b/src/nlsat/nlsat_solver.cpp similarity index 99% rename from lib/nlsat_solver.cpp rename to src/nlsat/nlsat_solver.cpp index 79ae334e3..b55a0a000 100644 --- a/lib/nlsat_solver.cpp +++ b/src/nlsat/nlsat_solver.cpp @@ -25,7 +25,7 @@ Revision History: #include"nlsat_evaluator.h" #include"nlsat_explain.h" #include"algebraic_numbers.h" -#include"tactic.h" +#include"tactic_exception.h" #include"chashtable.h" #include"id_gen.h" #include"dependency.h" diff --git a/lib/nlsat_solver.h b/src/nlsat/nlsat_solver.h similarity index 100% rename from lib/nlsat_solver.h rename to src/nlsat/nlsat_solver.h diff --git a/lib/nlsat_types.cpp b/src/nlsat/nlsat_types.cpp similarity index 100% rename from lib/nlsat_types.cpp rename to src/nlsat/nlsat_types.cpp diff --git a/lib/nlsat_types.h b/src/nlsat/nlsat_types.h similarity index 100% rename from lib/nlsat_types.h rename to src/nlsat/nlsat_types.h diff --git a/src/sat/sat_types.h b/src/sat_core/sat_types.h similarity index 100% rename from src/sat/sat_types.h rename to src/sat_core/sat_types.h From ded42feeb69af8edce048a38fc482cfdef4f2053 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 16:33:01 -0700 Subject: [PATCH 05/54] Reorganizing code base Signed-off-by: Leonardo de Moura --- lib/lockless_queue.h | 115 -------------------- mk_make.py | 4 + {lib => src/ast}/act_cache.cpp | 0 {lib => src/ast}/act_cache.h | 0 {lib => src/ast}/ast_dag_pp.cpp | 0 {lib => src/ast}/ast_dag_pp.h | 0 {lib => src/ast}/ast_lt.cpp | 0 {lib => src/ast}/ast_lt.h | 0 {lib => src/ast}/ast_smt_pp.cpp | 0 {lib => src/ast}/ast_smt_pp.h | 0 {lib => src/ast}/ast_translation.cpp | 0 {lib => src/ast}/ast_translation.h | 0 {lib => src/ast}/decl_collector.cpp | 0 {lib => src/ast}/decl_collector.h | 0 {lib => src/ast}/expr_delta_pair.h | 0 {lib => src/ast}/expr_substitution.cpp | 0 {lib => src/ast}/expr_substitution.h | 0 {lib => src/ast}/used_vars.cpp | 0 {lib => src/ast}/used_vars.h | 0 {lib => src/polynomial}/rpolynomial.cpp | 0 {lib => src/polynomial}/rpolynomial.h | 0 {lib => src/rewriter}/arith_rewriter.cpp | 0 {lib => src/rewriter}/arith_rewriter.h | 0 {lib => src/rewriter}/array_rewriter.cpp | 0 {lib => src/rewriter}/array_rewriter.h | 0 {lib => src/rewriter}/bool_rewriter.cpp | 0 {lib => src/rewriter}/bool_rewriter.h | 0 {lib => src/rewriter}/bv_rewriter.cpp | 0 {lib => src/rewriter}/bv_rewriter.h | 0 {lib => src/rewriter}/datatype_rewriter.cpp | 0 {lib => src/rewriter}/datatype_rewriter.h | 0 {lib => src/rewriter}/dl_rewriter.cpp | 0 {lib => src/rewriter}/dl_rewriter.h | 0 {lib => src/rewriter}/float_rewriter.cpp | 0 {lib => src/rewriter}/float_rewriter.h | 0 {lib => src/rewriter}/poly_rewriter.h | 0 {lib => src/rewriter}/poly_rewriter_def.h | 0 {lib => src/rewriter}/rewriter.cpp | 0 {lib => src/rewriter}/rewriter.h | 0 {lib => src/rewriter}/rewriter_def.h | 0 {lib => src/rewriter}/rewriter_types.h | 0 {lib => src/rewriter}/th_rewriter.cpp | 0 {lib => src/rewriter}/th_rewriter.h | 0 {lib => src/rewriter}/var_subst.cpp | 0 {lib => src/rewriter}/var_subst.h | 0 {lib => src/subpaving}/subpaving.cpp | 0 {lib => src/subpaving}/subpaving.h | 0 {lib => src/subpaving}/subpaving_hwf.cpp | 0 {lib => src/subpaving}/subpaving_hwf.h | 0 {lib => src/subpaving}/subpaving_mpf.cpp | 0 {lib => src/subpaving}/subpaving_mpf.h | 0 {lib => src/subpaving}/subpaving_mpff.cpp | 0 {lib => src/subpaving}/subpaving_mpff.h | 0 {lib => src/subpaving}/subpaving_mpfx.cpp | 0 {lib => src/subpaving}/subpaving_mpfx.h | 0 {lib => src/subpaving}/subpaving_mpq.cpp | 0 {lib => src/subpaving}/subpaving_mpq.h | 0 {lib => src/subpaving}/subpaving_t.h | 0 {lib => src/subpaving}/subpaving_t_def.h | 0 {lib => src/subpaving}/subpaving_types.h | 0 {lib => src/tactic}/goal.cpp | 0 {lib => src/tactic}/goal.h | 0 62 files changed, 4 insertions(+), 115 deletions(-) delete mode 100644 lib/lockless_queue.h rename {lib => src/ast}/act_cache.cpp (100%) rename {lib => src/ast}/act_cache.h (100%) rename {lib => src/ast}/ast_dag_pp.cpp (100%) rename {lib => src/ast}/ast_dag_pp.h (100%) rename {lib => src/ast}/ast_lt.cpp (100%) rename {lib => src/ast}/ast_lt.h (100%) rename {lib => src/ast}/ast_smt_pp.cpp (100%) rename {lib => src/ast}/ast_smt_pp.h (100%) rename {lib => src/ast}/ast_translation.cpp (100%) rename {lib => src/ast}/ast_translation.h (100%) rename {lib => src/ast}/decl_collector.cpp (100%) rename {lib => src/ast}/decl_collector.h (100%) rename {lib => src/ast}/expr_delta_pair.h (100%) rename {lib => src/ast}/expr_substitution.cpp (100%) rename {lib => src/ast}/expr_substitution.h (100%) rename {lib => src/ast}/used_vars.cpp (100%) rename {lib => src/ast}/used_vars.h (100%) rename {lib => src/polynomial}/rpolynomial.cpp (100%) rename {lib => src/polynomial}/rpolynomial.h (100%) rename {lib => src/rewriter}/arith_rewriter.cpp (100%) rename {lib => src/rewriter}/arith_rewriter.h (100%) rename {lib => src/rewriter}/array_rewriter.cpp (100%) rename {lib => src/rewriter}/array_rewriter.h (100%) rename {lib => src/rewriter}/bool_rewriter.cpp (100%) rename {lib => src/rewriter}/bool_rewriter.h (100%) rename {lib => src/rewriter}/bv_rewriter.cpp (100%) rename {lib => src/rewriter}/bv_rewriter.h (100%) rename {lib => src/rewriter}/datatype_rewriter.cpp (100%) rename {lib => src/rewriter}/datatype_rewriter.h (100%) rename {lib => src/rewriter}/dl_rewriter.cpp (100%) rename {lib => src/rewriter}/dl_rewriter.h (100%) rename {lib => src/rewriter}/float_rewriter.cpp (100%) rename {lib => src/rewriter}/float_rewriter.h (100%) rename {lib => src/rewriter}/poly_rewriter.h (100%) rename {lib => src/rewriter}/poly_rewriter_def.h (100%) rename {lib => src/rewriter}/rewriter.cpp (100%) rename {lib => src/rewriter}/rewriter.h (100%) rename {lib => src/rewriter}/rewriter_def.h (100%) rename {lib => src/rewriter}/rewriter_types.h (100%) rename {lib => src/rewriter}/th_rewriter.cpp (100%) rename {lib => src/rewriter}/th_rewriter.h (100%) rename {lib => src/rewriter}/var_subst.cpp (100%) rename {lib => src/rewriter}/var_subst.h (100%) rename {lib => src/subpaving}/subpaving.cpp (100%) rename {lib => src/subpaving}/subpaving.h (100%) rename {lib => src/subpaving}/subpaving_hwf.cpp (100%) rename {lib => src/subpaving}/subpaving_hwf.h (100%) rename {lib => src/subpaving}/subpaving_mpf.cpp (100%) rename {lib => src/subpaving}/subpaving_mpf.h (100%) rename {lib => src/subpaving}/subpaving_mpff.cpp (100%) rename {lib => src/subpaving}/subpaving_mpff.h (100%) rename {lib => src/subpaving}/subpaving_mpfx.cpp (100%) rename {lib => src/subpaving}/subpaving_mpfx.h (100%) rename {lib => src/subpaving}/subpaving_mpq.cpp (100%) rename {lib => src/subpaving}/subpaving_mpq.h (100%) rename {lib => src/subpaving}/subpaving_t.h (100%) rename {lib => src/subpaving}/subpaving_t_def.h (100%) rename {lib => src/subpaving}/subpaving_types.h (100%) rename {lib => src/tactic}/goal.cpp (100%) rename {lib => src/tactic}/goal.h (100%) diff --git a/lib/lockless_queue.h b/lib/lockless_queue.h deleted file mode 100644 index 83d9226c4..000000000 --- a/lib/lockless_queue.h +++ /dev/null @@ -1,115 +0,0 @@ -/*++ -Copyright (c) 2008 Microsoft Corporation - -Module Name: - - lockless_queue.h - -Abstract: - - A queue that doesn't require locking, as long as only - one thread pushes and another thread pops. - -Author: - - Christoph Wintersteiger (t-cwinte) 2008-12-26 - -Revision History: - ---*/ - -#ifndef _LOCKLESS_QUEUE_H_ -#define _LOCKLESS_QUEUE_H_ - -#include -#include "debug.h" - -template -class lockless_queue { -protected: - unsigned m_head; - unsigned m_tail; - unsigned m_size; - T *m_items; -public: - typedef T value_type; - - lockless_queue(unsigned size=4096) : - m_head(0), - m_tail(0), - m_size(size), - m_items(0) { - if(m_size>0) { - m_items = alloc_vect(m_size); - SASSERT(m_items!=0); - } - } - - lockless_queue(const lockless_queue &other) { - m_items = 0; - m_size = m_head = m_tail = 0; - this->operator=(other); - } - - ~lockless_queue() { - if(m_items) { - dealloc_vect(m_items, m_size); - m_items=0; - } - } - - inline bool push(const T& elem) { - volatile unsigned head = m_head; - - if(((head+1)%m_size) == m_tail) - return false; // queue is full. - - m_items[head++] = elem; - head %= m_size; - m_head = head; - return true; - } - - inline bool pop() { - volatile unsigned tail = m_tail; - - if(tail == m_head) - return false; // queue is empty. - - tail = (tail+1) % m_size; - m_tail = tail; - return true; - } - - inline T& back() const { - SASSERT(!empty()); - return m_items[m_tail]; - } - - inline bool empty() const { - return (m_tail == m_head); - } - - inline bool full() const { - return (m_tail == ((m_head+1)%m_size)); - } - - lockless_queue& operator=(const lockless_queue &other) { - if(m_size!=other.m_size) { - if(m_items) dealloc_vect(m_items, m_size); - m_items = alloc_vect(other.m_size); - m_size = other.m_size; - } - - for(size_t cur = other.m_tail; cur!=other.m_head; cur = (cur+1)%m_size) - m_items[cur] = other.m_items[cur]; - - m_tail = other.m_tail; - m_head = other.m_head; - - return *this; - } - -}; - -#endif diff --git a/mk_make.py b/mk_make.py index 0bf3ecb80..de60d621f 100644 --- a/mk_make.py +++ b/mk_make.py @@ -160,4 +160,8 @@ add_lib('util', []) add_lib('polynomial', ['util']) add_lib('sat', ['util', 'sat_core']) add_lib('nlsat', ['util', 'sat_core', 'polynomial']) +add_lib('subpaving', ['util']) add_lib('ast', ['util', 'polynomial']) +add_lib('rewriter', ['util', 'ast', 'polynomial']) +add_lib('tactic', ['util', 'ast']) + diff --git a/lib/act_cache.cpp b/src/ast/act_cache.cpp similarity index 100% rename from lib/act_cache.cpp rename to src/ast/act_cache.cpp diff --git a/lib/act_cache.h b/src/ast/act_cache.h similarity index 100% rename from lib/act_cache.h rename to src/ast/act_cache.h diff --git a/lib/ast_dag_pp.cpp b/src/ast/ast_dag_pp.cpp similarity index 100% rename from lib/ast_dag_pp.cpp rename to src/ast/ast_dag_pp.cpp diff --git a/lib/ast_dag_pp.h b/src/ast/ast_dag_pp.h similarity index 100% rename from lib/ast_dag_pp.h rename to src/ast/ast_dag_pp.h diff --git a/lib/ast_lt.cpp b/src/ast/ast_lt.cpp similarity index 100% rename from lib/ast_lt.cpp rename to src/ast/ast_lt.cpp diff --git a/lib/ast_lt.h b/src/ast/ast_lt.h similarity index 100% rename from lib/ast_lt.h rename to src/ast/ast_lt.h diff --git a/lib/ast_smt_pp.cpp b/src/ast/ast_smt_pp.cpp similarity index 100% rename from lib/ast_smt_pp.cpp rename to src/ast/ast_smt_pp.cpp diff --git a/lib/ast_smt_pp.h b/src/ast/ast_smt_pp.h similarity index 100% rename from lib/ast_smt_pp.h rename to src/ast/ast_smt_pp.h diff --git a/lib/ast_translation.cpp b/src/ast/ast_translation.cpp similarity index 100% rename from lib/ast_translation.cpp rename to src/ast/ast_translation.cpp diff --git a/lib/ast_translation.h b/src/ast/ast_translation.h similarity index 100% rename from lib/ast_translation.h rename to src/ast/ast_translation.h diff --git a/lib/decl_collector.cpp b/src/ast/decl_collector.cpp similarity index 100% rename from lib/decl_collector.cpp rename to src/ast/decl_collector.cpp diff --git a/lib/decl_collector.h b/src/ast/decl_collector.h similarity index 100% rename from lib/decl_collector.h rename to src/ast/decl_collector.h diff --git a/lib/expr_delta_pair.h b/src/ast/expr_delta_pair.h similarity index 100% rename from lib/expr_delta_pair.h rename to src/ast/expr_delta_pair.h diff --git a/lib/expr_substitution.cpp b/src/ast/expr_substitution.cpp similarity index 100% rename from lib/expr_substitution.cpp rename to src/ast/expr_substitution.cpp diff --git a/lib/expr_substitution.h b/src/ast/expr_substitution.h similarity index 100% rename from lib/expr_substitution.h rename to src/ast/expr_substitution.h diff --git a/lib/used_vars.cpp b/src/ast/used_vars.cpp similarity index 100% rename from lib/used_vars.cpp rename to src/ast/used_vars.cpp diff --git a/lib/used_vars.h b/src/ast/used_vars.h similarity index 100% rename from lib/used_vars.h rename to src/ast/used_vars.h diff --git a/lib/rpolynomial.cpp b/src/polynomial/rpolynomial.cpp similarity index 100% rename from lib/rpolynomial.cpp rename to src/polynomial/rpolynomial.cpp diff --git a/lib/rpolynomial.h b/src/polynomial/rpolynomial.h similarity index 100% rename from lib/rpolynomial.h rename to src/polynomial/rpolynomial.h diff --git a/lib/arith_rewriter.cpp b/src/rewriter/arith_rewriter.cpp similarity index 100% rename from lib/arith_rewriter.cpp rename to src/rewriter/arith_rewriter.cpp diff --git a/lib/arith_rewriter.h b/src/rewriter/arith_rewriter.h similarity index 100% rename from lib/arith_rewriter.h rename to src/rewriter/arith_rewriter.h diff --git a/lib/array_rewriter.cpp b/src/rewriter/array_rewriter.cpp similarity index 100% rename from lib/array_rewriter.cpp rename to src/rewriter/array_rewriter.cpp diff --git a/lib/array_rewriter.h b/src/rewriter/array_rewriter.h similarity index 100% rename from lib/array_rewriter.h rename to src/rewriter/array_rewriter.h diff --git a/lib/bool_rewriter.cpp b/src/rewriter/bool_rewriter.cpp similarity index 100% rename from lib/bool_rewriter.cpp rename to src/rewriter/bool_rewriter.cpp diff --git a/lib/bool_rewriter.h b/src/rewriter/bool_rewriter.h similarity index 100% rename from lib/bool_rewriter.h rename to src/rewriter/bool_rewriter.h diff --git a/lib/bv_rewriter.cpp b/src/rewriter/bv_rewriter.cpp similarity index 100% rename from lib/bv_rewriter.cpp rename to src/rewriter/bv_rewriter.cpp diff --git a/lib/bv_rewriter.h b/src/rewriter/bv_rewriter.h similarity index 100% rename from lib/bv_rewriter.h rename to src/rewriter/bv_rewriter.h diff --git a/lib/datatype_rewriter.cpp b/src/rewriter/datatype_rewriter.cpp similarity index 100% rename from lib/datatype_rewriter.cpp rename to src/rewriter/datatype_rewriter.cpp diff --git a/lib/datatype_rewriter.h b/src/rewriter/datatype_rewriter.h similarity index 100% rename from lib/datatype_rewriter.h rename to src/rewriter/datatype_rewriter.h diff --git a/lib/dl_rewriter.cpp b/src/rewriter/dl_rewriter.cpp similarity index 100% rename from lib/dl_rewriter.cpp rename to src/rewriter/dl_rewriter.cpp diff --git a/lib/dl_rewriter.h b/src/rewriter/dl_rewriter.h similarity index 100% rename from lib/dl_rewriter.h rename to src/rewriter/dl_rewriter.h diff --git a/lib/float_rewriter.cpp b/src/rewriter/float_rewriter.cpp similarity index 100% rename from lib/float_rewriter.cpp rename to src/rewriter/float_rewriter.cpp diff --git a/lib/float_rewriter.h b/src/rewriter/float_rewriter.h similarity index 100% rename from lib/float_rewriter.h rename to src/rewriter/float_rewriter.h diff --git a/lib/poly_rewriter.h b/src/rewriter/poly_rewriter.h similarity index 100% rename from lib/poly_rewriter.h rename to src/rewriter/poly_rewriter.h diff --git a/lib/poly_rewriter_def.h b/src/rewriter/poly_rewriter_def.h similarity index 100% rename from lib/poly_rewriter_def.h rename to src/rewriter/poly_rewriter_def.h diff --git a/lib/rewriter.cpp b/src/rewriter/rewriter.cpp similarity index 100% rename from lib/rewriter.cpp rename to src/rewriter/rewriter.cpp diff --git a/lib/rewriter.h b/src/rewriter/rewriter.h similarity index 100% rename from lib/rewriter.h rename to src/rewriter/rewriter.h diff --git a/lib/rewriter_def.h b/src/rewriter/rewriter_def.h similarity index 100% rename from lib/rewriter_def.h rename to src/rewriter/rewriter_def.h diff --git a/lib/rewriter_types.h b/src/rewriter/rewriter_types.h similarity index 100% rename from lib/rewriter_types.h rename to src/rewriter/rewriter_types.h diff --git a/lib/th_rewriter.cpp b/src/rewriter/th_rewriter.cpp similarity index 100% rename from lib/th_rewriter.cpp rename to src/rewriter/th_rewriter.cpp diff --git a/lib/th_rewriter.h b/src/rewriter/th_rewriter.h similarity index 100% rename from lib/th_rewriter.h rename to src/rewriter/th_rewriter.h diff --git a/lib/var_subst.cpp b/src/rewriter/var_subst.cpp similarity index 100% rename from lib/var_subst.cpp rename to src/rewriter/var_subst.cpp diff --git a/lib/var_subst.h b/src/rewriter/var_subst.h similarity index 100% rename from lib/var_subst.h rename to src/rewriter/var_subst.h diff --git a/lib/subpaving.cpp b/src/subpaving/subpaving.cpp similarity index 100% rename from lib/subpaving.cpp rename to src/subpaving/subpaving.cpp diff --git a/lib/subpaving.h b/src/subpaving/subpaving.h similarity index 100% rename from lib/subpaving.h rename to src/subpaving/subpaving.h diff --git a/lib/subpaving_hwf.cpp b/src/subpaving/subpaving_hwf.cpp similarity index 100% rename from lib/subpaving_hwf.cpp rename to src/subpaving/subpaving_hwf.cpp diff --git a/lib/subpaving_hwf.h b/src/subpaving/subpaving_hwf.h similarity index 100% rename from lib/subpaving_hwf.h rename to src/subpaving/subpaving_hwf.h diff --git a/lib/subpaving_mpf.cpp b/src/subpaving/subpaving_mpf.cpp similarity index 100% rename from lib/subpaving_mpf.cpp rename to src/subpaving/subpaving_mpf.cpp diff --git a/lib/subpaving_mpf.h b/src/subpaving/subpaving_mpf.h similarity index 100% rename from lib/subpaving_mpf.h rename to src/subpaving/subpaving_mpf.h diff --git a/lib/subpaving_mpff.cpp b/src/subpaving/subpaving_mpff.cpp similarity index 100% rename from lib/subpaving_mpff.cpp rename to src/subpaving/subpaving_mpff.cpp diff --git a/lib/subpaving_mpff.h b/src/subpaving/subpaving_mpff.h similarity index 100% rename from lib/subpaving_mpff.h rename to src/subpaving/subpaving_mpff.h diff --git a/lib/subpaving_mpfx.cpp b/src/subpaving/subpaving_mpfx.cpp similarity index 100% rename from lib/subpaving_mpfx.cpp rename to src/subpaving/subpaving_mpfx.cpp diff --git a/lib/subpaving_mpfx.h b/src/subpaving/subpaving_mpfx.h similarity index 100% rename from lib/subpaving_mpfx.h rename to src/subpaving/subpaving_mpfx.h diff --git a/lib/subpaving_mpq.cpp b/src/subpaving/subpaving_mpq.cpp similarity index 100% rename from lib/subpaving_mpq.cpp rename to src/subpaving/subpaving_mpq.cpp diff --git a/lib/subpaving_mpq.h b/src/subpaving/subpaving_mpq.h similarity index 100% rename from lib/subpaving_mpq.h rename to src/subpaving/subpaving_mpq.h diff --git a/lib/subpaving_t.h b/src/subpaving/subpaving_t.h similarity index 100% rename from lib/subpaving_t.h rename to src/subpaving/subpaving_t.h diff --git a/lib/subpaving_t_def.h b/src/subpaving/subpaving_t_def.h similarity index 100% rename from lib/subpaving_t_def.h rename to src/subpaving/subpaving_t_def.h diff --git a/lib/subpaving_types.h b/src/subpaving/subpaving_types.h similarity index 100% rename from lib/subpaving_types.h rename to src/subpaving/subpaving_types.h diff --git a/lib/goal.cpp b/src/tactic/goal.cpp similarity index 100% rename from lib/goal.cpp rename to src/tactic/goal.cpp diff --git a/lib/goal.h b/src/tactic/goal.h similarity index 100% rename from lib/goal.h rename to src/tactic/goal.h From 8b70f0b8335caa5fcbba1af63d0d491cd6ae97a5 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 19:30:14 -0700 Subject: [PATCH 06/54] Reorganizing the code Signed-off-by: Leonardo de Moura --- mk_make.py | 1 + {lib => src/model}/func_interp.cpp | 0 {lib => src/model}/func_interp.h | 0 {lib => src/model}/model.cpp | 0 {lib => src/model}/model.h | 0 {lib => src/model}/model_core.cpp | 0 {lib => src/model}/model_core.h | 0 {lib => src/model}/model_evaluator.cpp | 0 {lib => src/model}/model_evaluator.h | 0 {lib => src/model}/model_evaluator_params.cpp | 0 {lib => src/model}/model_params.cpp | 0 {lib => src/model}/model_params.h | 0 {lib => src/model}/model_pp.cpp | 0 {lib => src/model}/model_pp.h | 0 {lib => src/model}/model_smt2_pp.cpp | 0 {lib => src/model}/model_smt2_pp.h | 0 {lib => src/model}/model_v2_pp.cpp | 0 {lib => src/model}/model_v2_pp.h | 0 {lib => src/model}/proto_model.cpp | 0 {lib => src/model}/proto_model.h | 0 {lib => src/model}/value.cpp | 0 {lib => src/model}/value.h | 0 {lib => src/model}/value_factory.cpp | 0 {lib => src/model}/value_factory.h | 0 24 files changed, 1 insertion(+) rename {lib => src/model}/func_interp.cpp (100%) rename {lib => src/model}/func_interp.h (100%) rename {lib => src/model}/model.cpp (100%) rename {lib => src/model}/model.h (100%) rename {lib => src/model}/model_core.cpp (100%) rename {lib => src/model}/model_core.h (100%) rename {lib => src/model}/model_evaluator.cpp (100%) rename {lib => src/model}/model_evaluator.h (100%) rename {lib => src/model}/model_evaluator_params.cpp (100%) rename {lib => src/model}/model_params.cpp (100%) rename {lib => src/model}/model_params.h (100%) rename {lib => src/model}/model_pp.cpp (100%) rename {lib => src/model}/model_pp.h (100%) rename {lib => src/model}/model_smt2_pp.cpp (100%) rename {lib => src/model}/model_smt2_pp.h (100%) rename {lib => src/model}/model_v2_pp.cpp (100%) rename {lib => src/model}/model_v2_pp.h (100%) rename {lib => src/model}/proto_model.cpp (100%) rename {lib => src/model}/proto_model.h (100%) rename {lib => src/model}/value.cpp (100%) rename {lib => src/model}/value.h (100%) rename {lib => src/model}/value_factory.cpp (100%) rename {lib => src/model}/value_factory.h (100%) diff --git a/mk_make.py b/mk_make.py index de60d621f..7b75f7d98 100644 --- a/mk_make.py +++ b/mk_make.py @@ -163,5 +163,6 @@ add_lib('nlsat', ['util', 'sat_core', 'polynomial']) add_lib('subpaving', ['util']) add_lib('ast', ['util', 'polynomial']) add_lib('rewriter', ['util', 'ast', 'polynomial']) +add_lib('model', ['util', 'ast', 'rewriter']) add_lib('tactic', ['util', 'ast']) diff --git a/lib/func_interp.cpp b/src/model/func_interp.cpp similarity index 100% rename from lib/func_interp.cpp rename to src/model/func_interp.cpp diff --git a/lib/func_interp.h b/src/model/func_interp.h similarity index 100% rename from lib/func_interp.h rename to src/model/func_interp.h diff --git a/lib/model.cpp b/src/model/model.cpp similarity index 100% rename from lib/model.cpp rename to src/model/model.cpp diff --git a/lib/model.h b/src/model/model.h similarity index 100% rename from lib/model.h rename to src/model/model.h diff --git a/lib/model_core.cpp b/src/model/model_core.cpp similarity index 100% rename from lib/model_core.cpp rename to src/model/model_core.cpp diff --git a/lib/model_core.h b/src/model/model_core.h similarity index 100% rename from lib/model_core.h rename to src/model/model_core.h diff --git a/lib/model_evaluator.cpp b/src/model/model_evaluator.cpp similarity index 100% rename from lib/model_evaluator.cpp rename to src/model/model_evaluator.cpp diff --git a/lib/model_evaluator.h b/src/model/model_evaluator.h similarity index 100% rename from lib/model_evaluator.h rename to src/model/model_evaluator.h diff --git a/lib/model_evaluator_params.cpp b/src/model/model_evaluator_params.cpp similarity index 100% rename from lib/model_evaluator_params.cpp rename to src/model/model_evaluator_params.cpp diff --git a/lib/model_params.cpp b/src/model/model_params.cpp similarity index 100% rename from lib/model_params.cpp rename to src/model/model_params.cpp diff --git a/lib/model_params.h b/src/model/model_params.h similarity index 100% rename from lib/model_params.h rename to src/model/model_params.h diff --git a/lib/model_pp.cpp b/src/model/model_pp.cpp similarity index 100% rename from lib/model_pp.cpp rename to src/model/model_pp.cpp diff --git a/lib/model_pp.h b/src/model/model_pp.h similarity index 100% rename from lib/model_pp.h rename to src/model/model_pp.h diff --git a/lib/model_smt2_pp.cpp b/src/model/model_smt2_pp.cpp similarity index 100% rename from lib/model_smt2_pp.cpp rename to src/model/model_smt2_pp.cpp diff --git a/lib/model_smt2_pp.h b/src/model/model_smt2_pp.h similarity index 100% rename from lib/model_smt2_pp.h rename to src/model/model_smt2_pp.h diff --git a/lib/model_v2_pp.cpp b/src/model/model_v2_pp.cpp similarity index 100% rename from lib/model_v2_pp.cpp rename to src/model/model_v2_pp.cpp diff --git a/lib/model_v2_pp.h b/src/model/model_v2_pp.h similarity index 100% rename from lib/model_v2_pp.h rename to src/model/model_v2_pp.h diff --git a/lib/proto_model.cpp b/src/model/proto_model.cpp similarity index 100% rename from lib/proto_model.cpp rename to src/model/proto_model.cpp diff --git a/lib/proto_model.h b/src/model/proto_model.h similarity index 100% rename from lib/proto_model.h rename to src/model/proto_model.h diff --git a/lib/value.cpp b/src/model/value.cpp similarity index 100% rename from lib/value.cpp rename to src/model/value.cpp diff --git a/lib/value.h b/src/model/value.h similarity index 100% rename from lib/value.h rename to src/model/value.h diff --git a/lib/value_factory.cpp b/src/model/value_factory.cpp similarity index 100% rename from lib/value_factory.cpp rename to src/model/value_factory.cpp diff --git a/lib/value_factory.h b/src/model/value_factory.h similarity index 100% rename from lib/value_factory.h rename to src/model/value_factory.h From d8cd3fc3ab1855d74d613eed706dd5e478f358c2 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 19:54:08 -0700 Subject: [PATCH 07/54] Reorganizing the code Signed-off-by: Leonardo de Moura --- mk_make.py | 162 ++---------------- mk_util.py | 155 +++++++++++++++++ {lib => src/ast}/expr_map.cpp | 0 {lib => src/ast}/expr_map.h | 0 {lib => src/ast}/func_decl_dependencies.cpp | 0 {lib => src/ast}/func_decl_dependencies.h | 0 {lib => src/ast}/used_symbols.h | 0 src/{model => framework}/model_smt2_pp.cpp | 0 src/{model => framework}/model_smt2_pp.h | 0 src/model/model.cpp | 1 - src/model/model_evaluator_params.cpp | 76 -------- src/model/proto_model.cpp | 1 - src/model/value.cpp | 42 ----- src/model/value.h | 162 ------------------ {lib => src/muz}/dl_simplifier_plugin.cpp | 0 {lib => src/muz}/dl_simplifier_plugin.h | 0 .../simplifier}/arith_simplifier_params.h | 0 .../simplifier}/arith_simplifier_plugin.cpp | 0 .../simplifier}/arith_simplifier_plugin.h | 0 {lib => src/simplifier}/base_simplifier.h | 0 .../simplifier}/basic_simplifier_plugin.cpp | 0 .../simplifier}/basic_simplifier_plugin.h | 0 .../simplifier}/bv_simplifier_params.h | 0 .../simplifier}/bv_simplifier_plugin.cpp | 0 .../simplifier}/bv_simplifier_plugin.h | 0 .../datatype_simplifier_plugin.cpp | 0 .../simplifier}/datatype_simplifier_plugin.h | 0 .../simplifier}/poly_simplifier_plugin.cpp | 0 .../simplifier}/poly_simplifier_plugin.h | 0 {lib => src/simplifier}/simplifier.cpp | 0 {lib => src/simplifier}/simplifier.h | 0 {lib => src/simplifier}/simplifier_plugin.cpp | 0 {lib => src/simplifier}/simplifier_plugin.h | 0 {lib => src/util}/plugin_manager.h | 0 src/util/smt2_util.cpp | 62 +++++++ src/util/smt2_util.h | 29 ++++ 36 files changed, 261 insertions(+), 429 deletions(-) create mode 100644 mk_util.py rename {lib => src/ast}/expr_map.cpp (100%) rename {lib => src/ast}/expr_map.h (100%) rename {lib => src/ast}/func_decl_dependencies.cpp (100%) rename {lib => src/ast}/func_decl_dependencies.h (100%) rename {lib => src/ast}/used_symbols.h (100%) rename src/{model => framework}/model_smt2_pp.cpp (100%) rename src/{model => framework}/model_smt2_pp.h (100%) delete mode 100644 src/model/model_evaluator_params.cpp delete mode 100644 src/model/value.cpp delete mode 100644 src/model/value.h rename {lib => src/muz}/dl_simplifier_plugin.cpp (100%) rename {lib => src/muz}/dl_simplifier_plugin.h (100%) rename {lib => src/simplifier}/arith_simplifier_params.h (100%) rename {lib => src/simplifier}/arith_simplifier_plugin.cpp (100%) rename {lib => src/simplifier}/arith_simplifier_plugin.h (100%) rename {lib => src/simplifier}/base_simplifier.h (100%) rename {lib => src/simplifier}/basic_simplifier_plugin.cpp (100%) rename {lib => src/simplifier}/basic_simplifier_plugin.h (100%) rename {lib => src/simplifier}/bv_simplifier_params.h (100%) rename {lib => src/simplifier}/bv_simplifier_plugin.cpp (100%) rename {lib => src/simplifier}/bv_simplifier_plugin.h (100%) rename {lib => src/simplifier}/datatype_simplifier_plugin.cpp (100%) rename {lib => src/simplifier}/datatype_simplifier_plugin.h (100%) rename {lib => src/simplifier}/poly_simplifier_plugin.cpp (100%) rename {lib => src/simplifier}/poly_simplifier_plugin.h (100%) rename {lib => src/simplifier}/simplifier.cpp (100%) rename {lib => src/simplifier}/simplifier.h (100%) rename {lib => src/simplifier}/simplifier_plugin.cpp (100%) rename {lib => src/simplifier}/simplifier_plugin.h (100%) rename {lib => src/util}/plugin_manager.h (100%) create mode 100644 src/util/smt2_util.cpp create mode 100644 src/util/smt2_util.h diff --git a/mk_make.py b/mk_make.py index 7b75f7d98..1ae145066 100644 --- a/mk_make.py +++ b/mk_make.py @@ -1,5 +1,12 @@ -import os -import glob +############################################ +# Copyright (c) 2012 Microsoft Corporation +# +# Scripts for generate Makefiles and Visual +# Studio project files. +# +# Author: Leonardo de Moura (leonardo) +############################################ +from mk_util import * BUILD_DIR='build-test' SRC_DIR='src' @@ -9,153 +16,9 @@ VS_COMMON_OPTIONS='WIN32;_WINDOWS;ASYNC_COMMANDS' VS_DBG_OPTIONS='Z3DEBUG;_TRACE;_DEBUG' VS_RELEASE_OPTIONS='NDEBUG;_EXTERNAL_RELEASE' -def is_debug(mode): - return mode == 'Debug' - -def is_x64(platform): - return platform == 'x64' - -def mk_dir(d): - if not os.path.exists(d): - os.makedirs(d) - # Initialization mk_dir(BUILD_DIR) -def module_src_dir(name): - return '%s%s%s' % (SRC_DIR, os.sep, name) - -def module_build_dir(name): - return '%s%s%s' % (BUILD_DIR, os.sep, name) - -def vs_header(f): - f.write( -'\n' -'\n') - -GUI = 0 -Name2GUI = {} - -def vs_project_configurations(f, name): - global GUI, Name2GUI - f.write(' \n') - for mode in MODES: - for platform in PLATFORMS: - f.write(' \n' % (mode, platform)) - f.write(' %s\n' % mode) - f.write(' %s\n' % platform) - f.write(' \n') - f.write(' \n') - - f.write(' \n') - f.write(' {00000000-0000-0000-000--%s}\n' % GUI) - f.write(' %s\n' % name) - f.write(' Win32Proj\n') - f.write(' \n') - f.write(' \n') - Name2GUI[name] = GUI - GUI = GUI + 1 - -def vs_lib_configurations(f, name): - for mode in MODES: - for platform in PLATFORMS: - f.write(' \n' % (mode, platform)) - f.write(' StaticLibrary\n') - f.write(' Unicode\n') - f.write(' false\n') - f.write(' \n') - - f.write(' \n') - f.write(' \n') - f.write(' \n') - f.write(' \n') - f.write(' \n') - f.write(' \n') - - f.write(' \n') - for mode in MODES: - for platform in PLATFORMS: - if is_x64(platform): - f.write(' $(SolutionDir)$(Platform)\$(Configuration)\\n' % - (mode, platform)) - else: - f.write(' $(SolutionDir)$(Configuration)\\n' % (mode, platform)) - for mode in MODES: - for platform in PLATFORMS: - f.write(' %s\n' % (mode, platform, name)) - f.write(' .lib\n' % (mode, platform)) - f.write(' \n') - -def vs_compilation_options(f, name, deps): - for mode in MODES: - for platform in PLATFORMS: - f.write(' \n' % (mode, platform)) - if is_x64(platform): - f.write(' \n') - f.write(' X64\n') - f.write(' \n') - f.write(' \n') - if is_debug(mode): - f.write(' Disabled\n') - else: - f.write(' Full\n') - options = VS_COMMON_OPTIONS - if is_debug(mode): - options = "%s;%s" % (options, VS_DBG_OPTIONS) - else: - options = "%s;%s" % (options, VS_RELEASE_OPTIONS) - if is_x64(platform): - options = "%s;_AMD64_" % options - f.write(' %s;%%(PreprocessorDefinitions)\n' % options) - if is_debug(mode): - f.write(' true\n') - f.write(' EnableFastChecks\n') - f.write(' Level3\n') - f.write(' MultiThreadedDebugDLL\n') - f.write(' true\n') - f.write(' ProgramDatabase\n') - f.write(' ') - f.write('..\..\src\%s' % name) - for dep in deps: - f.write(';..\..\src\%s' % dep) - f.write('\n') - f.write(' \n') - f.write(' \n') - f.write(' $(OutDir)%s.lib\n' % name) - f.write(' %(AdditionalLibraryDirectories)\n') - if is_x64(platform): - f.write(' MachineX64\n') - else: - f.write(' MachineX86\n') - f.write(' \n') - f.write(' \n') - -def add_vs_cpps(f, name): - f.write(' \n') - srcs = module_src_dir(name) - for cppfile in glob.glob(os.path.join(srcs, '*.cpp')): - f.write(' \n' % (os.sep, os.sep, cppfile)) - f.write(' \n') - -def vs_footer(f): - f.write( -' \n' -' \n' -' \n' -'\n') - -def add_lib(name, deps): - module_dir = module_build_dir(name) - mk_dir(module_dir) - - vs_proj = open('%s%s%s.vcxproj' % (module_dir, os.sep, name), 'w') - vs_header(vs_proj) - vs_project_configurations(vs_proj, name) - vs_lib_configurations(vs_proj, name) - vs_compilation_options(vs_proj, name, deps) - add_vs_cpps(vs_proj, name) - vs_footer(vs_proj) - add_lib('util', []) add_lib('polynomial', ['util']) add_lib('sat', ['util', 'sat_core']) @@ -163,6 +26,11 @@ add_lib('nlsat', ['util', 'sat_core', 'polynomial']) add_lib('subpaving', ['util']) add_lib('ast', ['util', 'polynomial']) add_lib('rewriter', ['util', 'ast', 'polynomial']) -add_lib('model', ['util', 'ast', 'rewriter']) +# Simplifier module will be deleted in the future. +# It has been replaced with rewriter module. +add_lib('simplifier', ['util', 'ast', 'rewriter']) +# Model module should not depend on simplifier module. +# We must replace all occurrences of simplifier with rewriter. +add_lib('model', ['util', 'ast', 'rewriter', 'simplifier']) add_lib('tactic', ['util', 'ast']) diff --git a/mk_util.py b/mk_util.py new file mode 100644 index 000000000..5073504c6 --- /dev/null +++ b/mk_util.py @@ -0,0 +1,155 @@ +############################################ +# Copyright (c) 2012 Microsoft Corporation +# +# Auxiliary scripts for generate Makefiles and Visual +# Studio project files. +# +# Author: Leonardo de Moura (leonardo) +############################################ +import os +import glob + +def is_debug(mode): + return mode == 'Debug' + +def is_x64(platform): + return platform == 'x64' + +def mk_dir(d): + if not os.path.exists(d): + os.makedirs(d) + +def module_src_dir(name): + return '%s%s%s' % (SRC_DIR, os.sep, name) + +def module_build_dir(name): + return '%s%s%s' % (BUILD_DIR, os.sep, name) + +def vs_header(f): + f.write( +'\n' +'\n') + +GUI = 0 +Name2GUI = {} + +def vs_project_configurations(f, name): + global GUI, Name2GUI + f.write(' \n') + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + f.write(' %s\n' % mode) + f.write(' %s\n' % platform) + f.write(' \n') + f.write(' \n') + + f.write(' \n') + f.write(' {00000000-0000-0000-000--%s}\n' % GUI) + f.write(' %s\n' % name) + f.write(' Win32Proj\n') + f.write(' \n') + f.write(' \n') + Name2GUI[name] = GUI + GUI = GUI + 1 + +def vs_lib_configurations(f, name): + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + f.write(' StaticLibrary\n') + f.write(' Unicode\n') + f.write(' false\n') + f.write(' \n') + + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + + f.write(' \n') + for mode in MODES: + for platform in PLATFORMS: + if is_x64(platform): + f.write(' $(SolutionDir)$(Platform)\$(Configuration)\\n' % + (mode, platform)) + else: + f.write(' $(SolutionDir)$(Configuration)\\n' % (mode, platform)) + for mode in MODES: + for platform in PLATFORMS: + f.write(' %s\n' % (mode, platform, name)) + f.write(' .lib\n' % (mode, platform)) + f.write(' \n') + +def vs_compilation_options(f, name, deps): + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + if is_x64(platform): + f.write(' \n') + f.write(' X64\n') + f.write(' \n') + f.write(' \n') + if is_debug(mode): + f.write(' Disabled\n') + else: + f.write(' Full\n') + options = VS_COMMON_OPTIONS + if is_debug(mode): + options = "%s;%s" % (options, VS_DBG_OPTIONS) + else: + options = "%s;%s" % (options, VS_RELEASE_OPTIONS) + if is_x64(platform): + options = "%s;_AMD64_" % options + f.write(' %s;%%(PreprocessorDefinitions)\n' % options) + if is_debug(mode): + f.write(' true\n') + f.write(' EnableFastChecks\n') + f.write(' Level3\n') + f.write(' MultiThreadedDebugDLL\n') + f.write(' true\n') + f.write(' ProgramDatabase\n') + f.write(' ') + f.write('..\..\src\%s' % name) + for dep in deps: + f.write(';..\..\src\%s' % dep) + f.write('\n') + f.write(' \n') + f.write(' \n') + f.write(' $(OutDir)%s.lib\n' % name) + f.write(' %(AdditionalLibraryDirectories)\n') + if is_x64(platform): + f.write(' MachineX64\n') + else: + f.write(' MachineX86\n') + f.write(' \n') + f.write(' \n') + +def add_vs_cpps(f, name): + f.write(' \n') + srcs = module_src_dir(name) + for cppfile in glob.glob(os.path.join(srcs, '*.cpp')): + f.write(' \n' % (os.sep, os.sep, cppfile)) + f.write(' \n') + +def vs_footer(f): + f.write( +' \n' +' \n' +' \n' +'\n') + +def add_lib(name, deps): + module_dir = module_build_dir(name) + mk_dir(module_dir) + + vs_proj = open('%s%s%s.vcxproj' % (module_dir, os.sep, name), 'w') + vs_header(vs_proj) + vs_project_configurations(vs_proj, name) + vs_lib_configurations(vs_proj, name) + vs_compilation_options(vs_proj, name, deps) + add_vs_cpps(vs_proj, name) + vs_footer(vs_proj) + diff --git a/lib/expr_map.cpp b/src/ast/expr_map.cpp similarity index 100% rename from lib/expr_map.cpp rename to src/ast/expr_map.cpp diff --git a/lib/expr_map.h b/src/ast/expr_map.h similarity index 100% rename from lib/expr_map.h rename to src/ast/expr_map.h diff --git a/lib/func_decl_dependencies.cpp b/src/ast/func_decl_dependencies.cpp similarity index 100% rename from lib/func_decl_dependencies.cpp rename to src/ast/func_decl_dependencies.cpp diff --git a/lib/func_decl_dependencies.h b/src/ast/func_decl_dependencies.h similarity index 100% rename from lib/func_decl_dependencies.h rename to src/ast/func_decl_dependencies.h diff --git a/lib/used_symbols.h b/src/ast/used_symbols.h similarity index 100% rename from lib/used_symbols.h rename to src/ast/used_symbols.h diff --git a/src/model/model_smt2_pp.cpp b/src/framework/model_smt2_pp.cpp similarity index 100% rename from src/model/model_smt2_pp.cpp rename to src/framework/model_smt2_pp.cpp diff --git a/src/model/model_smt2_pp.h b/src/framework/model_smt2_pp.h similarity index 100% rename from src/model/model_smt2_pp.h rename to src/framework/model_smt2_pp.h diff --git a/src/model/model.cpp b/src/model/model.cpp index 9f2569ce5..4a9767cb0 100644 --- a/src/model/model.cpp +++ b/src/model/model.cpp @@ -20,7 +20,6 @@ Revision History: #include"ast_pp.h" #include"ast_ll_pp.h" #include"var_subst.h" -#include"front_end_params.h" #include"array_decl_plugin.h" #include"well_sorted.h" #include"used_symbols.h" diff --git a/src/model/model_evaluator_params.cpp b/src/model/model_evaluator_params.cpp deleted file mode 100644 index bfb4e2ee5..000000000 --- a/src/model/model_evaluator_params.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/*++ -Copyright (c) 2011 Microsoft Corporation - -Module Name: - - model_evaluator_params.cpp - -Abstract: - - New parameter setting support for rewriter. - -Author: - - Leonardo (leonardo) 2011-04-22 - -Notes: - ---*/ -#include"model_evaluator_params.h" - -model_evaluator_params::model_evaluator_params() { - reset(); -} - -void model_evaluator_params::reset() { - m_model_completion = false; - m_cache = true; - m_max_steps = UINT_MAX; - m_max_memory = UINT_MAX; -} - -#define PARAM(name) param_names.push_back(name) - -void model_evaluator_params::get_params(svector & param_names) const { - PARAM(":model-completion"); - PARAM(":cache"); - PARAM(":max-steps"); - PARAM(":max-memory"); -} - -#define DESCR(NAME, DR) if (strcmp(name, NAME) == 0) return DR - -char const * model_evaluator_params::get_param_descr(char const * name) const { - DESCR(":model-completion", "(default: false) assigns an interpretation to symbols that are not intepreted by the model."); - DESCR(":cache", "(default: true) cache intermediate results."); - DESCR(":max-steps", "(default: infty) maximum number of steps."); - DESCR(":max-memory", "(default: infty) maximum amount of memory in megabytes."); - return 0; -} - -#define RBOOL(NAME) if (strcmp(name, NAME) == 0) return CPK_BOOL -#define RUINT(NAME) if (strcmp(name, NAME) == 0) return CPK_UINT - -param_kind model_evaluator_params::get_param_kind(char const * name) const { - RBOOL(":model-completion"); - RBOOL(":cache"); - RUINT(":max-steps"); - RUINT(":max-memory"); - return CPK_INVALID; -} - -#define SET(NAME, FIELD) if (strcmp(name, NAME) == 0) { FIELD = value; return true; } - -bool model_evaluator_params::set_bool_param(char const * name, bool value) { - SET(":model-completion", m_model_completion); - SET(":cache", m_cache); - return false; -} - -bool model_evaluator_params::set_uint_param(char const * name, unsigned value) { - SET(":max-steps", m_max_steps); - SET(":max-memory", m_max_memory); - return false; -} - - diff --git a/src/model/proto_model.cpp b/src/model/proto_model.cpp index 34f017eb8..4b5d201b9 100644 --- a/src/model/proto_model.cpp +++ b/src/model/proto_model.cpp @@ -20,7 +20,6 @@ Revision History: #include"ast_pp.h" #include"ast_ll_pp.h" #include"var_subst.h" -#include"front_end_params.h" #include"array_decl_plugin.h" #include"well_sorted.h" #include"used_symbols.h" diff --git a/src/model/value.cpp b/src/model/value.cpp deleted file mode 100644 index b81bbbb0b..000000000 --- a/src/model/value.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/*++ -Copyright (c) 2006 Microsoft Corporation - -Module Name: - - value.cpp - -Abstract: - - - -Author: - - Leonardo de Moura (leonardo) 2007-08-17. - -Revision History: - ---*/ -#include"value.h" - -void bool_value::display(std::ostream & out) const { - out << (m_value ? "true" : "false"); -} - -unsigned bool_value::hash() const { - return m_value ? 1 : 0; -} - -bool bool_value::operator==(const value & other) const { - const bool_value * o = dynamic_cast(&other); - return o && m_value == o->m_value; -} - -basic_factory::basic_factory(ast_manager & m): - value_factory(symbol("basic"), m), - m_bool(m) { - m_bool = m.mk_type(m.get_basic_family_id(), BOOL_SORT); - m_true = alloc(bool_value, true, m_bool.get()); - m_false = alloc(bool_value, false, m_bool.get()); -} - - diff --git a/src/model/value.h b/src/model/value.h deleted file mode 100644 index 2055449b8..000000000 --- a/src/model/value.h +++ /dev/null @@ -1,162 +0,0 @@ -/*++ -Copyright (c) 2006 Microsoft Corporation - -Module Name: - - value.h - -Abstract: - - Abstract class used to represent values in a model. - -Author: - - Leonardo de Moura (leonardo) 2007-08-14. - -Revision History: - ---*/ -#ifndef _VALUE_H_ -#define _VALUE_H_ - -#include"core_model.h" -#include"ast.h" -#include"ref.h" - -class model; - -class value { - partition_id m_partition_id; - unsigned m_ref_count; - type_ast * m_type; - - friend class model; - - void set_partition_id(partition_id id) { - m_partition_id = id; - } - -public: - value(type_ast * ty): - m_partition_id(null_partition_id), - m_ref_count(0), - m_type(ty) { - } - - virtual ~value() {} - - void inc_ref() { m_ref_count ++; } - - void dec_ref() { - SASSERT(m_ref_count > 0); - m_ref_count--; - if (m_ref_count == 0) { - dealloc(this); - } - } - - partition_id get_partition_id() { return m_partition_id; } - - type_ast * get_type() const { return m_type; } - - virtual void display(std::ostream & out) const = 0; - - virtual unsigned hash() const = 0; - - virtual bool operator==(const value & other) const = 0; - - virtual void infer_types(ast_vector & result) { /* default: do nothing */ } - - virtual void collect_used_partitions(svector & result) { /* default: do nothing */ } -}; - -inline std::ostream & operator<<(std::ostream & target, const value & v) { - v.display(target); - return target; -} - -class value_factory { - family_id m_fid; -public: - value_factory(symbol fname, ast_manager & m): - m_fid(m.get_family_id(fname)) { - } - - virtual ~value_factory() {} - - // Return some value of the given type - virtual value * get_some_value(type_ast * ty) = 0; - - // Return two distinct values of the given type - virtual bool get_some_values(type_ast * ty, ref & v1, ref & v2) = 0; - - // Return a fresh value of the given type - virtual value * get_fresh_value(type_ast * ty) = 0; - - virtual value * update_value(value * source, const svector & pid2pid) { - return source; - } - - family_id get_family_id() const { return m_fid; } -}; - -class bool_value : public value { - friend class basic_factory; - bool m_value; - - bool_value(bool v, type_ast * ty): - value(ty), - m_value(v) { - } - -public: - - bool get_value() const { - return m_value; - } - - virtual void display(std::ostream & out) const; - - virtual unsigned hash() const; - - virtual bool operator==(const value & other) const; -}; - -class basic_factory : public value_factory { - ast_ref m_bool; - ref m_true; - ref m_false; -public: - basic_factory(ast_manager & m); - - virtual ~basic_factory() {} - - bool_value * get_true() const { - return m_true.get(); - } - - bool_value * get_false() const { - return m_false.get(); - } - - // Return some value of the given type - virtual value * get_some_value(type_ast * ty) { - return get_false(); - } - - // Return two distinct values of the given type - virtual bool get_some_values(type_ast * ty, ref & v1, ref & v2) { - v1 = get_false(); - v2 = get_true(); - return true; - } - - // Return a fresh value of the given type - virtual value * get_fresh_value(type_ast * ty) { - // it is not possible to create new fresh values... - return 0; - } -}; - -#endif /* _VALUE_H_ */ - diff --git a/lib/dl_simplifier_plugin.cpp b/src/muz/dl_simplifier_plugin.cpp similarity index 100% rename from lib/dl_simplifier_plugin.cpp rename to src/muz/dl_simplifier_plugin.cpp diff --git a/lib/dl_simplifier_plugin.h b/src/muz/dl_simplifier_plugin.h similarity index 100% rename from lib/dl_simplifier_plugin.h rename to src/muz/dl_simplifier_plugin.h diff --git a/lib/arith_simplifier_params.h b/src/simplifier/arith_simplifier_params.h similarity index 100% rename from lib/arith_simplifier_params.h rename to src/simplifier/arith_simplifier_params.h diff --git a/lib/arith_simplifier_plugin.cpp b/src/simplifier/arith_simplifier_plugin.cpp similarity index 100% rename from lib/arith_simplifier_plugin.cpp rename to src/simplifier/arith_simplifier_plugin.cpp diff --git a/lib/arith_simplifier_plugin.h b/src/simplifier/arith_simplifier_plugin.h similarity index 100% rename from lib/arith_simplifier_plugin.h rename to src/simplifier/arith_simplifier_plugin.h diff --git a/lib/base_simplifier.h b/src/simplifier/base_simplifier.h similarity index 100% rename from lib/base_simplifier.h rename to src/simplifier/base_simplifier.h diff --git a/lib/basic_simplifier_plugin.cpp b/src/simplifier/basic_simplifier_plugin.cpp similarity index 100% rename from lib/basic_simplifier_plugin.cpp rename to src/simplifier/basic_simplifier_plugin.cpp diff --git a/lib/basic_simplifier_plugin.h b/src/simplifier/basic_simplifier_plugin.h similarity index 100% rename from lib/basic_simplifier_plugin.h rename to src/simplifier/basic_simplifier_plugin.h diff --git a/lib/bv_simplifier_params.h b/src/simplifier/bv_simplifier_params.h similarity index 100% rename from lib/bv_simplifier_params.h rename to src/simplifier/bv_simplifier_params.h diff --git a/lib/bv_simplifier_plugin.cpp b/src/simplifier/bv_simplifier_plugin.cpp similarity index 100% rename from lib/bv_simplifier_plugin.cpp rename to src/simplifier/bv_simplifier_plugin.cpp diff --git a/lib/bv_simplifier_plugin.h b/src/simplifier/bv_simplifier_plugin.h similarity index 100% rename from lib/bv_simplifier_plugin.h rename to src/simplifier/bv_simplifier_plugin.h diff --git a/lib/datatype_simplifier_plugin.cpp b/src/simplifier/datatype_simplifier_plugin.cpp similarity index 100% rename from lib/datatype_simplifier_plugin.cpp rename to src/simplifier/datatype_simplifier_plugin.cpp diff --git a/lib/datatype_simplifier_plugin.h b/src/simplifier/datatype_simplifier_plugin.h similarity index 100% rename from lib/datatype_simplifier_plugin.h rename to src/simplifier/datatype_simplifier_plugin.h diff --git a/lib/poly_simplifier_plugin.cpp b/src/simplifier/poly_simplifier_plugin.cpp similarity index 100% rename from lib/poly_simplifier_plugin.cpp rename to src/simplifier/poly_simplifier_plugin.cpp diff --git a/lib/poly_simplifier_plugin.h b/src/simplifier/poly_simplifier_plugin.h similarity index 100% rename from lib/poly_simplifier_plugin.h rename to src/simplifier/poly_simplifier_plugin.h diff --git a/lib/simplifier.cpp b/src/simplifier/simplifier.cpp similarity index 100% rename from lib/simplifier.cpp rename to src/simplifier/simplifier.cpp diff --git a/lib/simplifier.h b/src/simplifier/simplifier.h similarity index 100% rename from lib/simplifier.h rename to src/simplifier/simplifier.h diff --git a/lib/simplifier_plugin.cpp b/src/simplifier/simplifier_plugin.cpp similarity index 100% rename from lib/simplifier_plugin.cpp rename to src/simplifier/simplifier_plugin.cpp diff --git a/lib/simplifier_plugin.h b/src/simplifier/simplifier_plugin.h similarity index 100% rename from lib/simplifier_plugin.h rename to src/simplifier/simplifier_plugin.h diff --git a/lib/plugin_manager.h b/src/util/plugin_manager.h similarity index 100% rename from lib/plugin_manager.h rename to src/util/plugin_manager.h diff --git a/src/util/smt2_util.cpp b/src/util/smt2_util.cpp new file mode 100644 index 000000000..70979cc01 --- /dev/null +++ b/src/util/smt2_util.cpp @@ -0,0 +1,62 @@ +/*++ +Copyright (c) 2011 Microsoft Corporation + +Module Name: + + smt2_util.cpp + +Abstract: + + Goodies for SMT2 standard + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#include"smt2_util.h" + +bool is_smt2_simple_symbol_char(char s) { + return + ('0' <= s && s <= '9') || + ('a' <= s && s <= 'z') || + ('A' <= s && s <= 'Z') || + s == '~' || s == '!' || s == '@' || s == '$' || s == '%' || s == '^' || s == '&' || + s == '*' || s == '_' || s == '-' || s == '+' || s == '=' || s == '<' || s == '>' || + s == '.' || s == '?' || s == '/'; +} + +bool is_smt2_quoted_symbol(char const * s) { + if (s == 0) + return false; + if ('0' <= s[0] && s[0] <= '9') + return true; + unsigned len = static_cast(strlen(s)); + for (unsigned i = 0; i < len; i++) + if (!is_smt2_simple_symbol_char(s[i])) + return true; + return false; +} + +bool is_smt2_quoted_symbol(symbol const & s) { + if (s.is_numerical()) + return false; + return is_smt2_quoted_symbol(s.bare_str()); +} + +std::string mk_smt2_quoted_symbol(symbol const & s) { + SASSERT(is_smt2_quoted_symbol(s)); + string_buffer<> buffer; + buffer.append('|'); + char const * str = s.bare_str(); + while (*str) { + if (*str == '|' || *str == '\\') + buffer.append('\\'); + buffer.append(*str); + str++; + } + buffer.append('|'); + return std::string(buffer.c_str()); +} diff --git a/src/util/smt2_util.h b/src/util/smt2_util.h new file mode 100644 index 000000000..c2ab4a727 --- /dev/null +++ b/src/util/smt2_util.h @@ -0,0 +1,29 @@ +/*++ +Copyright (c) 2011 Microsoft Corporation + +Module Name: + + smt2_util.h + +Abstract: + + Goodies for SMT2 standard + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#ifndef _SMT2_UTIL_H_ +#define _SMT2_UTIL_H_ + +#include"symbol.h" + +bool is_smt2_simple_symbol_char(char c); +bool is_smt2_quoted_symbol(char const * s); +bool is_smt2_quoted_symbol(symbol const & s); +std::string mk_smt2_quoted_symbol(symbol const & s); + +#endif From 6bdb009c3ec056a11d49dcbf14dc22d266bc07ed Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 20:42:28 -0700 Subject: [PATCH 08/54] Reorganizing the code Signed-off-by: Leonardo de Moura --- mk_make.py | 22 ++++++------- mk_util.py | 32 +++++++++++++++++++ src/framework/README | 1 + {lib => src/framework}/basic_cmds.cpp | 2 -- {lib => src/framework}/basic_cmds.h | 0 {lib => src/framework}/check_logic.cpp | 1 + {lib => src/framework}/check_logic.h | 2 +- {lib => src/framework}/check_sat_result.h | 0 {lib => src/framework}/cmd_context.cpp | 4 ++- {lib => src/framework}/cmd_context.h | 3 +- {lib => src/framework}/cmd_util.cpp | 0 {lib => src/framework}/cmd_util.h | 0 {lib => src/framework}/converter.h | 0 {lib => src/framework}/eval_cmd.cpp | 0 {lib => src/framework}/eval_cmd.h | 0 src/{tactic => framework}/goal.cpp | 0 src/{tactic => framework}/goal.h | 0 {lib => src/framework}/goal_util.cpp | 0 {lib => src/framework}/goal_util.h | 0 {lib => src/framework}/model_converter.cpp | 0 {lib => src/framework}/model_converter.h | 0 {lib => src/framework}/parametric_cmd.cpp | 0 {lib => src/framework}/parametric_cmd.h | 15 +++++---- {lib => src/framework}/pdecl.cpp | 0 {lib => src/framework}/pdecl.h | 0 {lib => src/framework}/probe.cpp | 0 {lib => src/framework}/probe.h | 0 {lib => src/framework}/progress_callback.h | 0 {lib => src/framework}/proof_converter.cpp | 0 {lib => src/framework}/proof_converter.h | 0 {lib => src/framework}/simplify_cmd.cpp | 0 {lib => src/framework}/simplify_cmd.h | 0 {lib => src/framework}/solver.cpp | 4 ++- {lib => src/framework}/solver.h | 0 {lib => src/framework}/tactic.cpp | 0 {lib => src/framework}/tactic.h | 0 {lib => src/framework}/tactic_cmds.cpp | 4 +-- {lib => src/framework}/tactic_cmds.h | 2 +- {lib => src/framework}/tactic_manager.cpp | 0 {lib => src/framework}/tactic_manager.h | 0 {lib => src/framework}/tactical.cpp | 0 {lib => src/framework}/tactical.h | 0 {lib => src/old_params}/bit_blaster_params.h | 0 {lib => src/old_params}/cnf_params.cpp | 0 {lib => src/old_params}/cnf_params.h | 0 {lib => src/old_params}/dyn_ack_params.cpp | 0 {lib => src/old_params}/dyn_ack_params.h | 0 {lib => src/old_params}/front_end_params.cpp | 0 {lib => src/old_params}/front_end_params.h | 0 {lib => src/old_params}/nnf_params.cpp | 0 {lib => src/old_params}/nnf_params.h | 0 {lib => src/old_params}/order_params.cpp | 0 {lib => src/old_params}/order_params.h | 0 .../old_params}/params2front_end_params.cpp | 0 .../old_params}/params2front_end_params.h | 0 {lib => src/old_params}/parser_params.cpp | 0 {lib => src/old_params}/parser_params.h | 0 .../old_params}/pattern_inference_params.h | 0 {lib => src/old_params}/preprocessor_params.h | 0 {lib => src/old_params}/qi_params.h | 0 {lib => src/old_params}/smt_params.cpp | 0 {lib => src/old_params}/smt_params.h | 0 {lib => src/old_params}/spc_params.cpp | 0 {lib => src/old_params}/spc_params.h | 0 .../old_params}/theory_arith_params.cpp | 0 {lib => src/old_params}/theory_arith_params.h | 0 {lib => src/old_params}/theory_array_params.h | 0 {lib => src/old_params}/theory_bv_params.h | 0 .../old_params}/theory_datatype_params.h | 0 {lib => src/old_params}/z3_solver_params.cpp | 0 {lib => src/old_params}/z3_solver_params.h | 0 src/simplifier/README | 2 ++ {lib => src/smt}/smt_solver.cpp | 0 {lib => src/smt}/smt_solver.h | 0 74 files changed, 67 insertions(+), 27 deletions(-) create mode 100644 src/framework/README rename {lib => src/framework}/basic_cmds.cpp (99%) rename {lib => src/framework}/basic_cmds.h (100%) rename {lib => src/framework}/check_logic.cpp (99%) rename {lib => src/framework}/check_logic.h (95%) rename {lib => src/framework}/check_sat_result.h (100%) rename {lib => src/framework}/cmd_context.cpp (99%) rename {lib => src/framework}/cmd_context.h (99%) rename {lib => src/framework}/cmd_util.cpp (100%) rename {lib => src/framework}/cmd_util.h (100%) rename {lib => src/framework}/converter.h (100%) rename {lib => src/framework}/eval_cmd.cpp (100%) rename {lib => src/framework}/eval_cmd.h (100%) rename src/{tactic => framework}/goal.cpp (100%) rename src/{tactic => framework}/goal.h (100%) rename {lib => src/framework}/goal_util.cpp (100%) rename {lib => src/framework}/goal_util.h (100%) rename {lib => src/framework}/model_converter.cpp (100%) rename {lib => src/framework}/model_converter.h (100%) rename {lib => src/framework}/parametric_cmd.cpp (100%) rename {lib => src/framework}/parametric_cmd.h (86%) rename {lib => src/framework}/pdecl.cpp (100%) rename {lib => src/framework}/pdecl.h (100%) rename {lib => src/framework}/probe.cpp (100%) rename {lib => src/framework}/probe.h (100%) rename {lib => src/framework}/progress_callback.h (100%) rename {lib => src/framework}/proof_converter.cpp (100%) rename {lib => src/framework}/proof_converter.h (100%) rename {lib => src/framework}/simplify_cmd.cpp (100%) rename {lib => src/framework}/simplify_cmd.h (100%) rename {lib => src/framework}/solver.cpp (99%) rename {lib => src/framework}/solver.h (100%) rename {lib => src/framework}/tactic.cpp (100%) rename {lib => src/framework}/tactic.h (100%) rename {lib => src/framework}/tactic_cmds.cpp (99%) rename {lib => src/framework}/tactic_cmds.h (96%) rename {lib => src/framework}/tactic_manager.cpp (100%) rename {lib => src/framework}/tactic_manager.h (100%) rename {lib => src/framework}/tactical.cpp (100%) rename {lib => src/framework}/tactical.h (100%) rename {lib => src/old_params}/bit_blaster_params.h (100%) rename {lib => src/old_params}/cnf_params.cpp (100%) rename {lib => src/old_params}/cnf_params.h (100%) rename {lib => src/old_params}/dyn_ack_params.cpp (100%) rename {lib => src/old_params}/dyn_ack_params.h (100%) rename {lib => src/old_params}/front_end_params.cpp (100%) rename {lib => src/old_params}/front_end_params.h (100%) rename {lib => src/old_params}/nnf_params.cpp (100%) rename {lib => src/old_params}/nnf_params.h (100%) rename {lib => src/old_params}/order_params.cpp (100%) rename {lib => src/old_params}/order_params.h (100%) rename {lib => src/old_params}/params2front_end_params.cpp (100%) rename {lib => src/old_params}/params2front_end_params.h (100%) rename {lib => src/old_params}/parser_params.cpp (100%) rename {lib => src/old_params}/parser_params.h (100%) rename {lib => src/old_params}/pattern_inference_params.h (100%) rename {lib => src/old_params}/preprocessor_params.h (100%) rename {lib => src/old_params}/qi_params.h (100%) rename {lib => src/old_params}/smt_params.cpp (100%) rename {lib => src/old_params}/smt_params.h (100%) rename {lib => src/old_params}/spc_params.cpp (100%) rename {lib => src/old_params}/spc_params.h (100%) rename {lib => src/old_params}/theory_arith_params.cpp (100%) rename {lib => src/old_params}/theory_arith_params.h (100%) rename {lib => src/old_params}/theory_array_params.h (100%) rename {lib => src/old_params}/theory_bv_params.h (100%) rename {lib => src/old_params}/theory_datatype_params.h (100%) rename {lib => src/old_params}/z3_solver_params.cpp (100%) rename {lib => src/old_params}/z3_solver_params.h (100%) create mode 100644 src/simplifier/README rename {lib => src/smt}/smt_solver.cpp (100%) rename {lib => src/smt}/smt_solver.h (100%) diff --git a/mk_make.py b/mk_make.py index 1ae145066..9481e10b9 100644 --- a/mk_make.py +++ b/mk_make.py @@ -8,16 +8,13 @@ ############################################ from mk_util import * -BUILD_DIR='build-test' -SRC_DIR='src' -MODES=['Debug', 'Release'] -PLATFORMS=['Win32', 'x64'] -VS_COMMON_OPTIONS='WIN32;_WINDOWS;ASYNC_COMMANDS' -VS_DBG_OPTIONS='Z3DEBUG;_TRACE;_DEBUG' -VS_RELEASE_OPTIONS='NDEBUG;_EXTERNAL_RELEASE' - -# Initialization -mk_dir(BUILD_DIR) +set_build_dir('build-test') +set_src_dir('src') +set_modes(['Debug', 'Release']) +set_platforms(['Win32', 'x64']) +set_vs_options('WIN32;_WINDOWS;ASYNC_COMMANDS', + 'Z3DEBUG;_TRACE;_DEBUG', + 'NDEBUG;_EXTERNAL_RELEASE') add_lib('util', []) add_lib('polynomial', ['util']) @@ -32,5 +29,8 @@ add_lib('simplifier', ['util', 'ast', 'rewriter']) # Model module should not depend on simplifier module. # We must replace all occurrences of simplifier with rewriter. add_lib('model', ['util', 'ast', 'rewriter', 'simplifier']) -add_lib('tactic', ['util', 'ast']) +# Old (non-modular) parameter framework. It has been subsumed by util\params.h. +# However, it is still used by many old components. +add_lib('old_params', ['util', 'ast', 'simplifier', 'model']) +add_lib('framework', ['util', 'ast', 'model', 'old_params', 'simplifier', 'rewriter']) diff --git a/mk_util.py b/mk_util.py index 5073504c6..191c9787f 100644 --- a/mk_util.py +++ b/mk_util.py @@ -9,6 +9,38 @@ import os import glob +BUILD_DIR='build' +SRC_DIR='src' +MODES=[] +PLATFORMS=[] + +def set_build_dir(d): + global BUILD_DIR + BUILD_DIR = d + mk_dir(BUILD_DIR) + +def set_src_dir(d): + global SRC_DIR + SRC_DIR = d + +def set_modes(l): + global MODES + MODES=l + +def set_platforms(l): + global PLATFORMS + PLATFORMS=l + +VS_COMMON_OPTIONS='WIN32' +VS_DBG_OPTIONS='_DEBUG' +VS_RELEASE_OPTIONS='NDEBUG' + +def set_vs_options(common, dbg, release): + global VS_COMMON_OPTIONS, VS_DBG_OPTIONS, VS_RELEASE_OPTIONS + VS_COMMON_OPTIONS = common + VS_DBG_OPTIONS = dbg + VS_RELEASE_OPTIONS = release + def is_debug(mode): return mode == 'Debug' diff --git a/src/framework/README b/src/framework/README new file mode 100644 index 000000000..695db970b --- /dev/null +++ b/src/framework/README @@ -0,0 +1 @@ +tactic and command context frameworks. \ No newline at end of file diff --git a/lib/basic_cmds.cpp b/src/framework/basic_cmds.cpp similarity index 99% rename from lib/basic_cmds.cpp rename to src/framework/basic_cmds.cpp index d05c69baa..879f8f4d3 100644 --- a/lib/basic_cmds.cpp +++ b/src/framework/basic_cmds.cpp @@ -27,7 +27,6 @@ Notes: #include"cmd_util.h" #include"simplify_cmd.h" #include"eval_cmd.h" -#include"qe_cmd.h" class help_cmd : public cmd { svector m_cmds; @@ -770,5 +769,4 @@ void install_ext_basic_cmds(cmd_context & ctx) { ctx.insert(alloc(builtin_cmd, "reset", 0, "reset the shell (all declarations and assertions will be erased)")); install_simplify_cmd(ctx); install_eval_cmd(ctx); - install_qe_cmd(ctx); } diff --git a/lib/basic_cmds.h b/src/framework/basic_cmds.h similarity index 100% rename from lib/basic_cmds.h rename to src/framework/basic_cmds.h diff --git a/lib/check_logic.cpp b/src/framework/check_logic.cpp similarity index 99% rename from lib/check_logic.cpp rename to src/framework/check_logic.cpp index 550240a71..820ef59a4 100644 --- a/lib/check_logic.cpp +++ b/src/framework/check_logic.cpp @@ -21,6 +21,7 @@ Revision History: #include"array_decl_plugin.h" #include"bv_decl_plugin.h" #include"ast_pp.h" +#include"for_each_expr.h" struct check_logic::imp { ast_manager & m; diff --git a/lib/check_logic.h b/src/framework/check_logic.h similarity index 95% rename from lib/check_logic.h rename to src/framework/check_logic.h index 8521ed57b..6fdfc5654 100644 --- a/lib/check_logic.h +++ b/src/framework/check_logic.h @@ -19,7 +19,7 @@ Revision History: #ifndef _CHECK_LOGIC_H_ #define _CHECK_LOGIC_H_ -#include"assertion_set.h" +#include"ast.h" class check_logic { struct imp; diff --git a/lib/check_sat_result.h b/src/framework/check_sat_result.h similarity index 100% rename from lib/check_sat_result.h rename to src/framework/check_sat_result.h diff --git a/lib/cmd_context.cpp b/src/framework/cmd_context.cpp similarity index 99% rename from lib/cmd_context.cpp rename to src/framework/cmd_context.cpp index 333e53b3a..1eb0f63e7 100644 --- a/lib/cmd_context.cpp +++ b/src/framework/cmd_context.cpp @@ -16,6 +16,7 @@ Notes: --*/ #include +#include"front_end_params.h" #include"tptr.h" #include"cmd_context.h" #include"func_decl_dependencies.h" @@ -36,6 +37,7 @@ Notes: #include"decl_collector.h" #include"well_sorted.h" #include"model_evaluator.h" +#include"for_each_expr.h" func_decls::func_decls(ast_manager & m, func_decl * f): m_decls(TAG(func_decl*, f, 0)) { @@ -321,7 +323,7 @@ cmd_context::cmd_context(front_end_params & params, bool main_ctx, ast_manager * SASSERT(m != 0 || !has_manager()); install_basic_cmds(*this); install_ext_basic_cmds(*this); - install_tactic_cmds(*this); + install_core_tactic_cmds(*this); SASSERT(m != 0 || !has_manager()); if (m) init_external_manager(); diff --git a/lib/cmd_context.h b/src/framework/cmd_context.h similarity index 99% rename from lib/cmd_context.h rename to src/framework/cmd_context.h index 381abce1c..017f26428 100644 --- a/lib/cmd_context.h +++ b/src/framework/cmd_context.h @@ -24,7 +24,6 @@ Notes: #include #include"ast.h" #include"pdecl.h" -#include"front_end_params.h" #include"dictionary.h" #include"solver.h" #include"datatype_decl_plugin.h" @@ -37,6 +36,8 @@ Notes: #include"progress_callback.h" #include"scoped_ptr_vector.h" +struct front_end_params; + class func_decls { func_decl * m_decls; public: diff --git a/lib/cmd_util.cpp b/src/framework/cmd_util.cpp similarity index 100% rename from lib/cmd_util.cpp rename to src/framework/cmd_util.cpp diff --git a/lib/cmd_util.h b/src/framework/cmd_util.h similarity index 100% rename from lib/cmd_util.h rename to src/framework/cmd_util.h diff --git a/lib/converter.h b/src/framework/converter.h similarity index 100% rename from lib/converter.h rename to src/framework/converter.h diff --git a/lib/eval_cmd.cpp b/src/framework/eval_cmd.cpp similarity index 100% rename from lib/eval_cmd.cpp rename to src/framework/eval_cmd.cpp diff --git a/lib/eval_cmd.h b/src/framework/eval_cmd.h similarity index 100% rename from lib/eval_cmd.h rename to src/framework/eval_cmd.h diff --git a/src/tactic/goal.cpp b/src/framework/goal.cpp similarity index 100% rename from src/tactic/goal.cpp rename to src/framework/goal.cpp diff --git a/src/tactic/goal.h b/src/framework/goal.h similarity index 100% rename from src/tactic/goal.h rename to src/framework/goal.h diff --git a/lib/goal_util.cpp b/src/framework/goal_util.cpp similarity index 100% rename from lib/goal_util.cpp rename to src/framework/goal_util.cpp diff --git a/lib/goal_util.h b/src/framework/goal_util.h similarity index 100% rename from lib/goal_util.h rename to src/framework/goal_util.h diff --git a/lib/model_converter.cpp b/src/framework/model_converter.cpp similarity index 100% rename from lib/model_converter.cpp rename to src/framework/model_converter.cpp diff --git a/lib/model_converter.h b/src/framework/model_converter.h similarity index 100% rename from lib/model_converter.h rename to src/framework/model_converter.h diff --git a/lib/parametric_cmd.cpp b/src/framework/parametric_cmd.cpp similarity index 100% rename from lib/parametric_cmd.cpp rename to src/framework/parametric_cmd.cpp diff --git a/lib/parametric_cmd.h b/src/framework/parametric_cmd.h similarity index 86% rename from lib/parametric_cmd.h rename to src/framework/parametric_cmd.h index 4acf41b9e..762d6bd72 100644 --- a/lib/parametric_cmd.h +++ b/src/framework/parametric_cmd.h @@ -58,16 +58,19 @@ public: m_last = symbol::null; } virtual void set_next_arg(cmd_context & ctx, sort * s) { - m_params.set_sort(m_last, s); - m_last = symbol::null; + NOT_IMPLEMENTED_YET(); + // m_params.set_sort(m_last, s); + // m_last = symbol::null; } virtual void set_next_arg(cmd_context & ctx, expr * t) { - m_params.set_expr(m_last, t); - m_last = symbol::null; + NOT_IMPLEMENTED_YET(); + // m_params.set_expr(m_last, t); + // m_last = symbol::null; } virtual void set_next_arg(cmd_context & ctx, func_decl * f) { - m_params.set_func_decl(m_last, f); - m_last = symbol::null; + NOT_IMPLEMENTED_YET(); + // m_params.set_func_decl(m_last, f); + // m_last = symbol::null; } }; diff --git a/lib/pdecl.cpp b/src/framework/pdecl.cpp similarity index 100% rename from lib/pdecl.cpp rename to src/framework/pdecl.cpp diff --git a/lib/pdecl.h b/src/framework/pdecl.h similarity index 100% rename from lib/pdecl.h rename to src/framework/pdecl.h diff --git a/lib/probe.cpp b/src/framework/probe.cpp similarity index 100% rename from lib/probe.cpp rename to src/framework/probe.cpp diff --git a/lib/probe.h b/src/framework/probe.h similarity index 100% rename from lib/probe.h rename to src/framework/probe.h diff --git a/lib/progress_callback.h b/src/framework/progress_callback.h similarity index 100% rename from lib/progress_callback.h rename to src/framework/progress_callback.h diff --git a/lib/proof_converter.cpp b/src/framework/proof_converter.cpp similarity index 100% rename from lib/proof_converter.cpp rename to src/framework/proof_converter.cpp diff --git a/lib/proof_converter.h b/src/framework/proof_converter.h similarity index 100% rename from lib/proof_converter.h rename to src/framework/proof_converter.h diff --git a/lib/simplify_cmd.cpp b/src/framework/simplify_cmd.cpp similarity index 100% rename from lib/simplify_cmd.cpp rename to src/framework/simplify_cmd.cpp diff --git a/lib/simplify_cmd.h b/src/framework/simplify_cmd.h similarity index 100% rename from lib/simplify_cmd.h rename to src/framework/simplify_cmd.h diff --git a/lib/solver.cpp b/src/framework/solver.cpp similarity index 99% rename from lib/solver.cpp rename to src/framework/solver.cpp index fd2be70d3..12f1b76f3 100644 --- a/lib/solver.cpp +++ b/src/framework/solver.cpp @@ -17,7 +17,7 @@ Notes: --*/ #include"solver.h" -#include"smt_solver.h" +// #include"smt_solver.h" unsigned solver::get_num_assertions() const { NOT_IMPLEMENTED_YET(); @@ -33,6 +33,7 @@ void solver::display(std::ostream & out) const { out << "(solver)"; } +#if 0 class default_solver : public solver { front_end_params * m_params; smt::solver * m_context; @@ -191,3 +192,4 @@ public: solver * mk_default_solver() { return alloc(default_solver); } +#endif diff --git a/lib/solver.h b/src/framework/solver.h similarity index 100% rename from lib/solver.h rename to src/framework/solver.h diff --git a/lib/tactic.cpp b/src/framework/tactic.cpp similarity index 100% rename from lib/tactic.cpp rename to src/framework/tactic.cpp diff --git a/lib/tactic.h b/src/framework/tactic.h similarity index 100% rename from lib/tactic.h rename to src/framework/tactic.h diff --git a/lib/tactic_cmds.cpp b/src/framework/tactic_cmds.cpp similarity index 99% rename from lib/tactic_cmds.cpp rename to src/framework/tactic_cmds.cpp index f0b255696..c7351d455 100644 --- a/lib/tactic_cmds.cpp +++ b/src/framework/tactic_cmds.cpp @@ -20,7 +20,6 @@ Notes: #include"cmd_context.h" #include"cmd_util.h" #include"parametric_cmd.h" -#include"install_tactics.h" #include"scoped_timer.h" #include"scoped_ctrl_c.h" #include"cancel_eh.h" @@ -390,13 +389,12 @@ public: }; -void install_tactic_cmds(cmd_context & ctx) { +void install_core_tactic_cmds(cmd_context & ctx) { ctx.insert(alloc(declare_tactic_cmd)); ctx.insert(alloc(get_user_tactics_cmd)); ctx.insert(alloc(help_tactic_cmd)); ctx.insert(alloc(check_sat_using_tactict_cmd)); ctx.insert(alloc(apply_tactic_cmd)); - install_tactics(ctx); } static tactic * mk_and_then(cmd_context & ctx, sexpr * n) { diff --git a/lib/tactic_cmds.h b/src/framework/tactic_cmds.h similarity index 96% rename from lib/tactic_cmds.h rename to src/framework/tactic_cmds.h index 10f1d6276..c44078a90 100644 --- a/lib/tactic_cmds.h +++ b/src/framework/tactic_cmds.h @@ -45,7 +45,7 @@ public: tactic * mk(ast_manager & m); }; -void install_tactic_cmds(cmd_context & ctx); +void install_core_tactic_cmds(cmd_context & ctx); tactic * sexpr2tactic(cmd_context & ctx, sexpr * n); class probe_info { diff --git a/lib/tactic_manager.cpp b/src/framework/tactic_manager.cpp similarity index 100% rename from lib/tactic_manager.cpp rename to src/framework/tactic_manager.cpp diff --git a/lib/tactic_manager.h b/src/framework/tactic_manager.h similarity index 100% rename from lib/tactic_manager.h rename to src/framework/tactic_manager.h diff --git a/lib/tactical.cpp b/src/framework/tactical.cpp similarity index 100% rename from lib/tactical.cpp rename to src/framework/tactical.cpp diff --git a/lib/tactical.h b/src/framework/tactical.h similarity index 100% rename from lib/tactical.h rename to src/framework/tactical.h diff --git a/lib/bit_blaster_params.h b/src/old_params/bit_blaster_params.h similarity index 100% rename from lib/bit_blaster_params.h rename to src/old_params/bit_blaster_params.h diff --git a/lib/cnf_params.cpp b/src/old_params/cnf_params.cpp similarity index 100% rename from lib/cnf_params.cpp rename to src/old_params/cnf_params.cpp diff --git a/lib/cnf_params.h b/src/old_params/cnf_params.h similarity index 100% rename from lib/cnf_params.h rename to src/old_params/cnf_params.h diff --git a/lib/dyn_ack_params.cpp b/src/old_params/dyn_ack_params.cpp similarity index 100% rename from lib/dyn_ack_params.cpp rename to src/old_params/dyn_ack_params.cpp diff --git a/lib/dyn_ack_params.h b/src/old_params/dyn_ack_params.h similarity index 100% rename from lib/dyn_ack_params.h rename to src/old_params/dyn_ack_params.h diff --git a/lib/front_end_params.cpp b/src/old_params/front_end_params.cpp similarity index 100% rename from lib/front_end_params.cpp rename to src/old_params/front_end_params.cpp diff --git a/lib/front_end_params.h b/src/old_params/front_end_params.h similarity index 100% rename from lib/front_end_params.h rename to src/old_params/front_end_params.h diff --git a/lib/nnf_params.cpp b/src/old_params/nnf_params.cpp similarity index 100% rename from lib/nnf_params.cpp rename to src/old_params/nnf_params.cpp diff --git a/lib/nnf_params.h b/src/old_params/nnf_params.h similarity index 100% rename from lib/nnf_params.h rename to src/old_params/nnf_params.h diff --git a/lib/order_params.cpp b/src/old_params/order_params.cpp similarity index 100% rename from lib/order_params.cpp rename to src/old_params/order_params.cpp diff --git a/lib/order_params.h b/src/old_params/order_params.h similarity index 100% rename from lib/order_params.h rename to src/old_params/order_params.h diff --git a/lib/params2front_end_params.cpp b/src/old_params/params2front_end_params.cpp similarity index 100% rename from lib/params2front_end_params.cpp rename to src/old_params/params2front_end_params.cpp diff --git a/lib/params2front_end_params.h b/src/old_params/params2front_end_params.h similarity index 100% rename from lib/params2front_end_params.h rename to src/old_params/params2front_end_params.h diff --git a/lib/parser_params.cpp b/src/old_params/parser_params.cpp similarity index 100% rename from lib/parser_params.cpp rename to src/old_params/parser_params.cpp diff --git a/lib/parser_params.h b/src/old_params/parser_params.h similarity index 100% rename from lib/parser_params.h rename to src/old_params/parser_params.h diff --git a/lib/pattern_inference_params.h b/src/old_params/pattern_inference_params.h similarity index 100% rename from lib/pattern_inference_params.h rename to src/old_params/pattern_inference_params.h diff --git a/lib/preprocessor_params.h b/src/old_params/preprocessor_params.h similarity index 100% rename from lib/preprocessor_params.h rename to src/old_params/preprocessor_params.h diff --git a/lib/qi_params.h b/src/old_params/qi_params.h similarity index 100% rename from lib/qi_params.h rename to src/old_params/qi_params.h diff --git a/lib/smt_params.cpp b/src/old_params/smt_params.cpp similarity index 100% rename from lib/smt_params.cpp rename to src/old_params/smt_params.cpp diff --git a/lib/smt_params.h b/src/old_params/smt_params.h similarity index 100% rename from lib/smt_params.h rename to src/old_params/smt_params.h diff --git a/lib/spc_params.cpp b/src/old_params/spc_params.cpp similarity index 100% rename from lib/spc_params.cpp rename to src/old_params/spc_params.cpp diff --git a/lib/spc_params.h b/src/old_params/spc_params.h similarity index 100% rename from lib/spc_params.h rename to src/old_params/spc_params.h diff --git a/lib/theory_arith_params.cpp b/src/old_params/theory_arith_params.cpp similarity index 100% rename from lib/theory_arith_params.cpp rename to src/old_params/theory_arith_params.cpp diff --git a/lib/theory_arith_params.h b/src/old_params/theory_arith_params.h similarity index 100% rename from lib/theory_arith_params.h rename to src/old_params/theory_arith_params.h diff --git a/lib/theory_array_params.h b/src/old_params/theory_array_params.h similarity index 100% rename from lib/theory_array_params.h rename to src/old_params/theory_array_params.h diff --git a/lib/theory_bv_params.h b/src/old_params/theory_bv_params.h similarity index 100% rename from lib/theory_bv_params.h rename to src/old_params/theory_bv_params.h diff --git a/lib/theory_datatype_params.h b/src/old_params/theory_datatype_params.h similarity index 100% rename from lib/theory_datatype_params.h rename to src/old_params/theory_datatype_params.h diff --git a/lib/z3_solver_params.cpp b/src/old_params/z3_solver_params.cpp similarity index 100% rename from lib/z3_solver_params.cpp rename to src/old_params/z3_solver_params.cpp diff --git a/lib/z3_solver_params.h b/src/old_params/z3_solver_params.h similarity index 100% rename from lib/z3_solver_params.h rename to src/old_params/z3_solver_params.h diff --git a/src/simplifier/README b/src/simplifier/README new file mode 100644 index 000000000..4725d9de9 --- /dev/null +++ b/src/simplifier/README @@ -0,0 +1,2 @@ +Simplifier module is now obsolete. +It is still being used in many places, but we will eventually replace all occurrences with the new rewriter module. diff --git a/lib/smt_solver.cpp b/src/smt/smt_solver.cpp similarity index 100% rename from lib/smt_solver.cpp rename to src/smt/smt_solver.cpp diff --git a/lib/smt_solver.h b/src/smt/smt_solver.h similarity index 100% rename from lib/smt_solver.h rename to src/smt/smt_solver.h From 2b8fb6c718d24138a48d319453667aeb602d4df8 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 20:53:33 -0700 Subject: [PATCH 09/54] Reorganizing the code Signed-off-by: Leonardo de Moura --- mk_make.py | 14 +++++++------- {lib => src/model}/array_factory.cpp | 0 {lib => src/model}/array_factory.h | 0 {lib => src/model}/datatype_factory.cpp | 0 {lib => src/model}/datatype_factory.h | 0 {lib => src/model}/numeral_factory.cpp | 0 {lib => src/model}/numeral_factory.h | 0 {lib => src/model}/struct_factory.cpp | 0 {lib => src/model}/struct_factory.h | 0 .../arith_simplifier_params.h | 0 .../bv_simplifier_params.h | 0 .../simplifier}/array_simplifier_plugin.cpp | 0 {lib => src/simplifier}/array_simplifier_plugin.h | 0 13 files changed, 7 insertions(+), 7 deletions(-) rename {lib => src/model}/array_factory.cpp (100%) rename {lib => src/model}/array_factory.h (100%) rename {lib => src/model}/datatype_factory.cpp (100%) rename {lib => src/model}/datatype_factory.h (100%) rename {lib => src/model}/numeral_factory.cpp (100%) rename {lib => src/model}/numeral_factory.h (100%) rename {lib => src/model}/struct_factory.cpp (100%) rename {lib => src/model}/struct_factory.h (100%) rename src/{simplifier => old_params}/arith_simplifier_params.h (100%) rename src/{simplifier => old_params}/bv_simplifier_params.h (100%) rename {lib => src/simplifier}/array_simplifier_plugin.cpp (100%) rename {lib => src/simplifier}/array_simplifier_plugin.h (100%) diff --git a/mk_make.py b/mk_make.py index 9481e10b9..f66dcd75f 100644 --- a/mk_make.py +++ b/mk_make.py @@ -23,14 +23,14 @@ add_lib('nlsat', ['util', 'sat_core', 'polynomial']) add_lib('subpaving', ['util']) add_lib('ast', ['util', 'polynomial']) add_lib('rewriter', ['util', 'ast', 'polynomial']) -# Simplifier module will be deleted in the future. -# It has been replaced with rewriter module. -add_lib('simplifier', ['util', 'ast', 'rewriter']) -# Model module should not depend on simplifier module. -# We must replace all occurrences of simplifier with rewriter. -add_lib('model', ['util', 'ast', 'rewriter', 'simplifier']) # Old (non-modular) parameter framework. It has been subsumed by util\params.h. # However, it is still used by many old components. -add_lib('old_params', ['util', 'ast', 'simplifier', 'model']) +add_lib('old_params', ['util', 'ast', 'model']) +# Simplifier module will be deleted in the future. +# It has been replaced with rewriter module. +add_lib('simplifier', ['util', 'ast', 'rewriter', 'old_params']) +# Model module should not depend on simplifier module. +# We must replace all occurrences of simplifier with rewriter. +add_lib('model', ['util', 'ast', 'rewriter', 'simplifier', 'old_params']) add_lib('framework', ['util', 'ast', 'model', 'old_params', 'simplifier', 'rewriter']) diff --git a/lib/array_factory.cpp b/src/model/array_factory.cpp similarity index 100% rename from lib/array_factory.cpp rename to src/model/array_factory.cpp diff --git a/lib/array_factory.h b/src/model/array_factory.h similarity index 100% rename from lib/array_factory.h rename to src/model/array_factory.h diff --git a/lib/datatype_factory.cpp b/src/model/datatype_factory.cpp similarity index 100% rename from lib/datatype_factory.cpp rename to src/model/datatype_factory.cpp diff --git a/lib/datatype_factory.h b/src/model/datatype_factory.h similarity index 100% rename from lib/datatype_factory.h rename to src/model/datatype_factory.h diff --git a/lib/numeral_factory.cpp b/src/model/numeral_factory.cpp similarity index 100% rename from lib/numeral_factory.cpp rename to src/model/numeral_factory.cpp diff --git a/lib/numeral_factory.h b/src/model/numeral_factory.h similarity index 100% rename from lib/numeral_factory.h rename to src/model/numeral_factory.h diff --git a/lib/struct_factory.cpp b/src/model/struct_factory.cpp similarity index 100% rename from lib/struct_factory.cpp rename to src/model/struct_factory.cpp diff --git a/lib/struct_factory.h b/src/model/struct_factory.h similarity index 100% rename from lib/struct_factory.h rename to src/model/struct_factory.h diff --git a/src/simplifier/arith_simplifier_params.h b/src/old_params/arith_simplifier_params.h similarity index 100% rename from src/simplifier/arith_simplifier_params.h rename to src/old_params/arith_simplifier_params.h diff --git a/src/simplifier/bv_simplifier_params.h b/src/old_params/bv_simplifier_params.h similarity index 100% rename from src/simplifier/bv_simplifier_params.h rename to src/old_params/bv_simplifier_params.h diff --git a/lib/array_simplifier_plugin.cpp b/src/simplifier/array_simplifier_plugin.cpp similarity index 100% rename from lib/array_simplifier_plugin.cpp rename to src/simplifier/array_simplifier_plugin.cpp diff --git a/lib/array_simplifier_plugin.h b/src/simplifier/array_simplifier_plugin.h similarity index 100% rename from lib/array_simplifier_plugin.h rename to src/simplifier/array_simplifier_plugin.h From 492484c5aa8b1d8c2d5771795d2cb88c17c959f1 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 22:03:58 -0700 Subject: [PATCH 10/54] Reorganizing the code Signed-off-by: Leonardo de Moura --- lib/symmetry_reduce_tactic.cpp | 3 +- mk_make.py | 8 +- src/assertion_set/README | 1 + {lib => src/assertion_set}/assertion_set.cpp | 0 {lib => src/assertion_set}/assertion_set.h | 0 .../assertion_set}/assertion_set_rewriter.cpp | 0 .../assertion_set}/assertion_set_rewriter.h | 0 .../assertion_set}/assertion_set_strategy.cpp | 159 ---------------- .../assertion_set}/assertion_set_strategy.h | 5 - .../assertion_set}/assertion_set_util.cpp | 0 .../assertion_set}/assertion_set_util.h | 0 src/assertion_set/der_strategy.cpp | 94 +++++++++ src/assertion_set/der_strategy.h | 47 +++++ .../elim_var_model_converter.cpp | 0 .../assertion_set}/elim_var_model_converter.h | 0 {lib => src/assertion_set}/gaussian_elim.cpp | 0 {lib => src/assertion_set}/gaussian_elim.h | 0 .../num_occurs_assertion_set.cpp | 29 +++ src/assertion_set/num_occurs_assertion_set.h | 38 ++++ .../assertion_set}/strategy_exception.cpp | 0 .../assertion_set}/strategy_exception.h | 0 {lib => src/ast}/num_occurs.cpp | 18 -- {lib => src/ast}/num_occurs.h | 6 +- {lib => src/ast}/occurs.cpp | 0 {lib => src/ast}/occurs.h | 0 src/framework/der_tactic.cpp | 114 +++++++++++ src/framework/der_tactic.h | 25 +++ src/framework/num_occurs_goal.cpp | 27 +++ src/framework/num_occurs_goal.h | 35 ++++ {lib => src/normal_forms}/cnf.cpp | 0 {lib => src/normal_forms}/cnf.h | 0 {lib => src/normal_forms}/defined_names.cpp | 0 {lib => src/normal_forms}/defined_names.h | 0 {lib => src/normal_forms}/name_exprs.cpp | 0 {lib => src/normal_forms}/name_exprs.h | 0 {lib => src/normal_forms}/nnf.cpp | 0 {lib => src/normal_forms}/nnf.h | 0 {lib => src/normal_forms}/pull_quant.cpp | 0 {lib => src/normal_forms}/pull_quant.h | 0 {lib => src/pattern}/database.h | 0 {lib => src/pattern}/database.smt | 0 {lib => src/pattern}/expr_pattern_match.cpp | 0 {lib => src/pattern}/expr_pattern_match.h | 0 {lib => src/pattern}/pattern_inference.cpp | 0 {lib => src/pattern}/pattern_inference.h | 0 {lib => src/pattern}/pattern_validation.cpp | 0 {lib => src/pattern}/pattern_validation.h | 0 {lib => src/rewriter}/der.cpp | 172 ----------------- {lib => src/rewriter}/der.h | 28 --- {lib => src/rewriter}/expr_replacer.cpp | 0 {lib => src/rewriter}/expr_replacer.h | 0 {lib => src/simplifier}/push_app_ite.cpp | 0 {lib => src/simplifier}/push_app_ite.h | 0 src/smt/smt_solver_strategy.cpp | 180 ++++++++++++++++++ src/smt/smt_solver_strategy.h | 31 +++ src/spc/README | 2 + {lib => src/spc}/expr_offset.h | 0 {lib => src/spc}/expr_offset_map.h | 0 {lib => src/spc}/expr_stat.cpp | 0 {lib => src/spc}/expr_stat.h | 0 {lib => src/spc}/kbo.cpp | 0 {lib => src/spc}/kbo.h | 0 {lib => src/spc}/lpo.cpp | 0 {lib => src/spc}/lpo.h | 0 {lib => src/spc}/marker.h | 0 {lib => src/spc}/matcher.cpp | 0 {lib => src/spc}/matcher.h | 0 {lib => src/spc}/normalize_vars.cpp | 0 {lib => src/spc}/normalize_vars.h | 0 {lib => src/spc}/order.cpp | 0 {lib => src/spc}/order.h | 0 {lib => src/spc}/precedence.cpp | 0 {lib => src/spc}/precedence.h | 0 {lib => src/spc}/preprocessor.cpp | 0 {lib => src/spc}/preprocessor.h | 0 {lib => src/spc}/sparse_use_list.h | 0 {lib => src/spc}/spc_asserted_literals.cpp | 0 {lib => src/spc}/spc_asserted_literals.h | 0 {lib => src/spc}/spc_clause.cpp | 0 {lib => src/spc}/spc_clause.h | 0 {lib => src/spc}/spc_clause_pos_set.h | 0 {lib => src/spc}/spc_clause_selection.cpp | 0 {lib => src/spc}/spc_clause_selection.h | 0 {lib => src/spc}/spc_context.cpp | 0 {lib => src/spc}/spc_context.h | 0 {lib => src/spc}/spc_decl_plugin.cpp | 0 {lib => src/spc}/spc_decl_plugin.h | 0 {lib => src/spc}/spc_der.cpp | 0 {lib => src/spc}/spc_der.h | 0 {lib => src/spc}/spc_eq_resolution.cpp | 0 {lib => src/spc}/spc_eq_resolution.h | 0 {lib => src/spc}/spc_factoring.cpp | 0 {lib => src/spc}/spc_factoring.h | 0 {lib => src/spc}/spc_justification.cpp | 0 {lib => src/spc}/spc_justification.h | 0 {lib => src/spc}/spc_literal.cpp | 0 {lib => src/spc}/spc_literal.h | 0 {lib => src/spc}/spc_literal_selection.cpp | 0 {lib => src/spc}/spc_literal_selection.h | 0 {lib => src/spc}/spc_prover.cpp | 0 {lib => src/spc}/spc_prover.h | 0 {lib => src/spc}/spc_rewriter.cpp | 0 {lib => src/spc}/spc_rewriter.h | 0 {lib => src/spc}/spc_semantic_tautology.cpp | 0 {lib => src/spc}/spc_semantic_tautology.h | 0 {lib => src/spc}/spc_statistics.cpp | 0 {lib => src/spc}/spc_statistics.h | 0 {lib => src/spc}/spc_subsumption.cpp | 0 {lib => src/spc}/spc_subsumption.h | 0 {lib => src/spc}/spc_superposition.cpp | 0 {lib => src/spc}/spc_superposition.h | 0 {lib => src/spc}/spc_unary_inference.cpp | 0 {lib => src/spc}/spc_unary_inference.h | 0 {lib => src/spc}/splay_tree.h | 0 {lib => src/spc}/splay_tree_def.h | 0 {lib => src/spc}/splay_tree_map.h | 0 {lib => src/spc}/substitution.cpp | 0 {lib => src/spc}/substitution.h | 0 {lib => src/spc}/substitution_tree.cpp | 0 {lib => src/spc}/substitution_tree.h | 0 {lib => src/spc}/unifier.cpp | 0 {lib => src/spc}/unifier.h | 0 {lib => src/spc}/use_list.cpp | 0 {lib => src/spc}/use_list.h | 0 {lib => src/spc}/var_offset_map.h | 0 125 files changed, 632 insertions(+), 390 deletions(-) create mode 100644 src/assertion_set/README rename {lib => src/assertion_set}/assertion_set.cpp (100%) rename {lib => src/assertion_set}/assertion_set.h (100%) rename {lib => src/assertion_set}/assertion_set_rewriter.cpp (100%) rename {lib => src/assertion_set}/assertion_set_rewriter.h (100%) rename {lib => src/assertion_set}/assertion_set_strategy.cpp (87%) rename {lib => src/assertion_set}/assertion_set_strategy.h (97%) rename {lib => src/assertion_set}/assertion_set_util.cpp (100%) rename {lib => src/assertion_set}/assertion_set_util.h (100%) create mode 100644 src/assertion_set/der_strategy.cpp create mode 100644 src/assertion_set/der_strategy.h rename {lib => src/assertion_set}/elim_var_model_converter.cpp (100%) rename {lib => src/assertion_set}/elim_var_model_converter.h (100%) rename {lib => src/assertion_set}/gaussian_elim.cpp (100%) rename {lib => src/assertion_set}/gaussian_elim.h (100%) create mode 100644 src/assertion_set/num_occurs_assertion_set.cpp create mode 100644 src/assertion_set/num_occurs_assertion_set.h rename {lib => src/assertion_set}/strategy_exception.cpp (100%) rename {lib => src/assertion_set}/strategy_exception.h (100%) rename {lib => src/ast}/num_occurs.cpp (82%) rename {lib => src/ast}/num_occurs.h (88%) rename {lib => src/ast}/occurs.cpp (100%) rename {lib => src/ast}/occurs.h (100%) create mode 100644 src/framework/der_tactic.cpp create mode 100644 src/framework/der_tactic.h create mode 100644 src/framework/num_occurs_goal.cpp create mode 100644 src/framework/num_occurs_goal.h rename {lib => src/normal_forms}/cnf.cpp (100%) rename {lib => src/normal_forms}/cnf.h (100%) rename {lib => src/normal_forms}/defined_names.cpp (100%) rename {lib => src/normal_forms}/defined_names.h (100%) rename {lib => src/normal_forms}/name_exprs.cpp (100%) rename {lib => src/normal_forms}/name_exprs.h (100%) rename {lib => src/normal_forms}/nnf.cpp (100%) rename {lib => src/normal_forms}/nnf.h (100%) rename {lib => src/normal_forms}/pull_quant.cpp (100%) rename {lib => src/normal_forms}/pull_quant.h (100%) rename {lib => src/pattern}/database.h (100%) rename {lib => src/pattern}/database.smt (100%) rename {lib => src/pattern}/expr_pattern_match.cpp (100%) rename {lib => src/pattern}/expr_pattern_match.h (100%) rename {lib => src/pattern}/pattern_inference.cpp (100%) rename {lib => src/pattern}/pattern_inference.h (100%) rename {lib => src/pattern}/pattern_validation.cpp (100%) rename {lib => src/pattern}/pattern_validation.h (100%) rename {lib => src/rewriter}/der.cpp (77%) rename {lib => src/rewriter}/der.h (91%) rename {lib => src/rewriter}/expr_replacer.cpp (100%) rename {lib => src/rewriter}/expr_replacer.h (100%) rename {lib => src/simplifier}/push_app_ite.cpp (100%) rename {lib => src/simplifier}/push_app_ite.h (100%) create mode 100644 src/smt/smt_solver_strategy.cpp create mode 100644 src/smt/smt_solver_strategy.h create mode 100644 src/spc/README rename {lib => src/spc}/expr_offset.h (100%) rename {lib => src/spc}/expr_offset_map.h (100%) rename {lib => src/spc}/expr_stat.cpp (100%) rename {lib => src/spc}/expr_stat.h (100%) rename {lib => src/spc}/kbo.cpp (100%) rename {lib => src/spc}/kbo.h (100%) rename {lib => src/spc}/lpo.cpp (100%) rename {lib => src/spc}/lpo.h (100%) rename {lib => src/spc}/marker.h (100%) rename {lib => src/spc}/matcher.cpp (100%) rename {lib => src/spc}/matcher.h (100%) rename {lib => src/spc}/normalize_vars.cpp (100%) rename {lib => src/spc}/normalize_vars.h (100%) rename {lib => src/spc}/order.cpp (100%) rename {lib => src/spc}/order.h (100%) rename {lib => src/spc}/precedence.cpp (100%) rename {lib => src/spc}/precedence.h (100%) rename {lib => src/spc}/preprocessor.cpp (100%) rename {lib => src/spc}/preprocessor.h (100%) rename {lib => src/spc}/sparse_use_list.h (100%) rename {lib => src/spc}/spc_asserted_literals.cpp (100%) rename {lib => src/spc}/spc_asserted_literals.h (100%) rename {lib => src/spc}/spc_clause.cpp (100%) rename {lib => src/spc}/spc_clause.h (100%) rename {lib => src/spc}/spc_clause_pos_set.h (100%) rename {lib => src/spc}/spc_clause_selection.cpp (100%) rename {lib => src/spc}/spc_clause_selection.h (100%) rename {lib => src/spc}/spc_context.cpp (100%) rename {lib => src/spc}/spc_context.h (100%) rename {lib => src/spc}/spc_decl_plugin.cpp (100%) rename {lib => src/spc}/spc_decl_plugin.h (100%) rename {lib => src/spc}/spc_der.cpp (100%) rename {lib => src/spc}/spc_der.h (100%) rename {lib => src/spc}/spc_eq_resolution.cpp (100%) rename {lib => src/spc}/spc_eq_resolution.h (100%) rename {lib => src/spc}/spc_factoring.cpp (100%) rename {lib => src/spc}/spc_factoring.h (100%) rename {lib => src/spc}/spc_justification.cpp (100%) rename {lib => src/spc}/spc_justification.h (100%) rename {lib => src/spc}/spc_literal.cpp (100%) rename {lib => src/spc}/spc_literal.h (100%) rename {lib => src/spc}/spc_literal_selection.cpp (100%) rename {lib => src/spc}/spc_literal_selection.h (100%) rename {lib => src/spc}/spc_prover.cpp (100%) rename {lib => src/spc}/spc_prover.h (100%) rename {lib => src/spc}/spc_rewriter.cpp (100%) rename {lib => src/spc}/spc_rewriter.h (100%) rename {lib => src/spc}/spc_semantic_tautology.cpp (100%) rename {lib => src/spc}/spc_semantic_tautology.h (100%) rename {lib => src/spc}/spc_statistics.cpp (100%) rename {lib => src/spc}/spc_statistics.h (100%) rename {lib => src/spc}/spc_subsumption.cpp (100%) rename {lib => src/spc}/spc_subsumption.h (100%) rename {lib => src/spc}/spc_superposition.cpp (100%) rename {lib => src/spc}/spc_superposition.h (100%) rename {lib => src/spc}/spc_unary_inference.cpp (100%) rename {lib => src/spc}/spc_unary_inference.h (100%) rename {lib => src/spc}/splay_tree.h (100%) rename {lib => src/spc}/splay_tree_def.h (100%) rename {lib => src/spc}/splay_tree_map.h (100%) rename {lib => src/spc}/substitution.cpp (100%) rename {lib => src/spc}/substitution.h (100%) rename {lib => src/spc}/substitution_tree.cpp (100%) rename {lib => src/spc}/substitution_tree.h (100%) rename {lib => src/spc}/unifier.cpp (100%) rename {lib => src/spc}/unifier.h (100%) rename {lib => src/spc}/use_list.cpp (100%) rename {lib => src/spc}/use_list.h (100%) rename {lib => src/spc}/var_offset_map.h (100%) diff --git a/lib/symmetry_reduce_tactic.cpp b/lib/symmetry_reduce_tactic.cpp index 5ca1dbcbf..0ee606da9 100644 --- a/lib/symmetry_reduce_tactic.cpp +++ b/lib/symmetry_reduce_tactic.cpp @@ -7,7 +7,7 @@ Module Name: Abstract: - Add symmetry breaking predicates to assertion sets. + Add symmetry breaking predicates to goals. Author: @@ -20,7 +20,6 @@ Notes: --*/ #include"tactical.h" -#include"assertion_set.h" #include"for_each_expr.h" #include"map.h" #include"expr_replacer.h" diff --git a/mk_make.py b/mk_make.py index f66dcd75f..3500fac03 100644 --- a/mk_make.py +++ b/mk_make.py @@ -33,4 +33,10 @@ add_lib('simplifier', ['util', 'ast', 'rewriter', 'old_params']) # We must replace all occurrences of simplifier with rewriter. add_lib('model', ['util', 'ast', 'rewriter', 'simplifier', 'old_params']) add_lib('framework', ['util', 'ast', 'model', 'old_params', 'simplifier', 'rewriter']) - +# Assertion set is the old tactic framework used in Z3 3.x. It will be deleted as soon as we finish the porting old +# code to the new tactic framework. +add_lib('assertion_set', ['util', 'ast', 'framework', 'model', 'rewriter', 'old_params']) +add_lib('normal_forms', ['util', 'ast', 'old_params', 'simplifier', 'rewriter', 'assertion_set', 'framework', 'model']) +add_lib('smt', ['util', 'ast', 'assertion_set']) +add_lib('pattern', ['util', 'ast']) +add_lib('spc', ['util', 'ast', 'simplifier', 'pattern', 'model', 'old_params', 'normal_forms', 'rewriter']) diff --git a/src/assertion_set/README b/src/assertion_set/README new file mode 100644 index 000000000..ed699ed82 --- /dev/null +++ b/src/assertion_set/README @@ -0,0 +1 @@ +This module is obsolete. It is subsumed by the tactic module. \ No newline at end of file diff --git a/lib/assertion_set.cpp b/src/assertion_set/assertion_set.cpp similarity index 100% rename from lib/assertion_set.cpp rename to src/assertion_set/assertion_set.cpp diff --git a/lib/assertion_set.h b/src/assertion_set/assertion_set.h similarity index 100% rename from lib/assertion_set.h rename to src/assertion_set/assertion_set.h diff --git a/lib/assertion_set_rewriter.cpp b/src/assertion_set/assertion_set_rewriter.cpp similarity index 100% rename from lib/assertion_set_rewriter.cpp rename to src/assertion_set/assertion_set_rewriter.cpp diff --git a/lib/assertion_set_rewriter.h b/src/assertion_set/assertion_set_rewriter.h similarity index 100% rename from lib/assertion_set_rewriter.h rename to src/assertion_set/assertion_set_rewriter.h diff --git a/lib/assertion_set_strategy.cpp b/src/assertion_set/assertion_set_strategy.cpp similarity index 87% rename from lib/assertion_set_strategy.cpp rename to src/assertion_set/assertion_set_strategy.cpp index 3ba1fd9c9..209f20351 100644 --- a/lib/assertion_set_strategy.cpp +++ b/src/assertion_set/assertion_set_strategy.cpp @@ -21,7 +21,6 @@ Notes: #include"cooperate.h" #include"scoped_timer.h" #include"cancel_eh.h" -#include"smt_solver.h" #include"front_end_params.h" #include"progress_callback.h" #include"params2front_end_params.h" @@ -1201,164 +1200,6 @@ struct check_decided_test : public as_test { as_test * check_decided() { return alloc(check_decided_test); } -class as_st_solver : public assertion_set_strategy { - scoped_ptr m_params; - params_ref m_params_ref; - statistics m_stats; - std::string m_failure; - smt::solver * m_ctx; - bool m_candidate_models; - symbol m_logic; - progress_callback * m_callback; -public: - as_st_solver(bool candidate_models):m_ctx(0), m_candidate_models(candidate_models), m_callback(0) {} - - front_end_params & fparams() { - if (!m_params) - m_params = alloc(front_end_params); - return *m_params; - } - - struct scoped_init_ctx { - as_st_solver & m_owner; - - scoped_init_ctx(as_st_solver & o, ast_manager & m):m_owner(o) { - smt::solver * new_ctx = alloc(smt::solver, m, o.fparams()); - TRACE("as_solver", tout << "logic: " << o.m_logic << "\n";); - new_ctx->set_logic(o.m_logic); - if (o.m_callback) { - new_ctx->set_progress_callback(o.m_callback); - } - #pragma omp critical (as_st_solver) - { - o.m_ctx = new_ctx; - } - } - - ~scoped_init_ctx() { - smt::solver * d = m_owner.m_ctx; - #pragma omp critical (as_st_cancel) - { - m_owner.m_ctx = 0; - } - if (d) - dealloc(d); - } - }; - - virtual ~as_st_solver() { - SASSERT(m_ctx == 0); - } - - virtual void updt_params(params_ref const & p) { - TRACE("as_solver", tout << "updt_params: " << p << "\n";); - m_params_ref = p; - params2front_end_params(m_params_ref, fparams()); - } - - virtual void collect_param_descrs(param_descrs & r) { - } - - virtual void set_cancel(bool f) { - if (m_ctx) - m_ctx->set_cancel(f); - } - - virtual void operator()(assertion_set & s, model_converter_ref & mc) { - SASSERT(is_well_sorted(s)); - IF_VERBOSE(ST_VERBOSITY_LVL, verbose_stream() << "(smt-solver)" << std::endl;); - TRACE("as_solver", tout << "AUTO_CONFIG: " << fparams().m_auto_config << " HIDIV0: " << fparams().m_hi_div0 << " " - << " PREPROCESS: " << fparams().m_preprocess << ", SOLVER:" << fparams().m_solver << "\n";); - TRACE("as_solver_detail", s.display(tout);); - ast_manager & m = s.m(); - TRACE("as_solver_memory", tout << "wasted_size: " << m.get_allocator().get_wasted_size() << "\n";); - // verbose_stream() << "wasted_size: " << m.get_allocator().get_wasted_size() << ", free_objs: " << m.get_allocator().get_num_free_objs() << "\n"; - // m.get_allocator().consolidate(); - scoped_init_ctx init(*this, m); - SASSERT(m_ctx != 0); - unsigned sz = s.size(); - for (unsigned i = 0; i < sz; i++) { - expr * f = s.form(i); - m_ctx->assert_expr(f); - } - lbool r = m_ctx->setup_and_check(); - m_ctx->collect_statistics(m_stats); - switch (r) { - case l_true: { - // the empty assertion set is trivially satifiable. - s.reset(); - // store the model in a do nothin model converter. - model_ref md; - m_ctx->get_model(md); - mc = model2model_converter(md.get()); - return; - } - case l_false: - // formula is unsat, reset the assertion set, and store false there. - s.reset(); - s.assert_expr(m.mk_false(), m_ctx->get_proof()); - return; - case l_undef: - if (m_candidate_models) { - switch (m_ctx->last_failure()) { - case smt::NUM_CONFLICTS: - case smt::THEORY: - case smt::QUANTIFIERS: { - model_ref md; - m_ctx->get_model(md); - mc = model2model_converter(md.get()); - return; - } - default: - break; - } - } - m_failure = m_ctx->last_failure_as_string(); - throw strategy_exception(m_failure.c_str()); - } - } - - virtual void collect_statistics(statistics & st) const { - if (m_ctx) - m_ctx->collect_statistics(st); // ctx is still running... - else - st.copy(m_stats); - } - - virtual void cleanup() { - } - - virtual void reset_statistics() { - m_stats.reset(); - } - - // for backward compatibility - virtual void set_front_end_params(front_end_params & p) { - m_params = alloc(front_end_params, p); - // must propagate the params_ref to fparams - params2front_end_params(m_params_ref, fparams()); - } - - virtual void set_logic(symbol const & l) { - m_logic = l; - } - - virtual void set_progress_callback(progress_callback * callback) { - m_callback = callback; - } -}; - -as_st * mk_smt_solver_core(bool candidate_models) { - return alloc(as_st_solver, candidate_models); -} - -as_st * mk_smt_solver(bool auto_config, bool candidate_models) { - as_st * solver = mk_smt_solver_core(candidate_models); - params_ref solver_p; - solver_p.set_bool(":auto-config", auto_config); - return using_params(solver, solver_p); -}; - /** \brief Execute strategy st on the given assertion set. */ diff --git a/lib/assertion_set_strategy.h b/src/assertion_set/assertion_set_strategy.h similarity index 97% rename from lib/assertion_set_strategy.h rename to src/assertion_set/assertion_set_strategy.h index c1209f6ae..0b02fad49 100644 --- a/lib/assertion_set_strategy.h +++ b/src/assertion_set/assertion_set_strategy.h @@ -167,9 +167,6 @@ as_test * check_as_size(unsigned l); as_test * check_decided(); as_st * cond(as_test * c, as_st * t, as_st * e); -as_st * mk_smt_solver_core(bool candidate_models = false); -as_st * mk_smt_solver(bool auto_config = true, bool candidate_models = false); - void exec(as_st * st, assertion_set & s, model_converter_ref & mc); lbool check_sat(as_st * st, assertion_set & s, model_ref & md, proof_ref & pr, std::string & reason_unknown); @@ -207,8 +204,6 @@ public: #define MK_SIMPLE_ST_FACTORY(NAME, ST) MK_ST_FACTORY(NAME, return ST;) -MK_SIMPLE_ST_FACTORY(smt_solver_stf, mk_smt_solver()); - struct is_qfbv_test : public as_test { virtual bool operator()(assertion_set const & s) const { return is_qfbv(s); } }; diff --git a/lib/assertion_set_util.cpp b/src/assertion_set/assertion_set_util.cpp similarity index 100% rename from lib/assertion_set_util.cpp rename to src/assertion_set/assertion_set_util.cpp diff --git a/lib/assertion_set_util.h b/src/assertion_set/assertion_set_util.h similarity index 100% rename from lib/assertion_set_util.h rename to src/assertion_set/assertion_set_util.h diff --git a/src/assertion_set/der_strategy.cpp b/src/assertion_set/der_strategy.cpp new file mode 100644 index 000000000..ba294f2ee --- /dev/null +++ b/src/assertion_set/der_strategy.cpp @@ -0,0 +1,94 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + der_strategy.cpp + +Abstract: + + DER strategy + +Author: + + Leonardo de Moura (leonardo) 2012-10-20 + +--*/ +#include"der_strategy.h" + +struct der_strategy::imp { + ast_manager & m_manager; + der_rewriter m_r; + + imp(ast_manager & m): + m_manager(m), + m_r(m) { + } + + ast_manager & m() const { return m_manager; } + + void set_cancel(bool f) { + m_r.set_cancel(f); + } + + void reset() { + m_r.reset(); + } + + void operator()(assertion_set & s) { + SASSERT(is_well_sorted(s)); + as_st_report report("der", s); + TRACE("before_der", s.display(tout);); + if (s.inconsistent()) + return; + expr_ref new_curr(m()); + proof_ref new_pr(m()); + unsigned size = s.size(); + for (unsigned idx = 0; idx < size; idx++) { + if (s.inconsistent()) + break; + expr * curr = s.form(idx); + m_r(curr, new_curr, new_pr); + if (m().proofs_enabled()) { + proof * pr = s.pr(idx); + new_pr = m().mk_modus_ponens(pr, new_pr); + } + s.update(idx, new_curr, new_pr); + } + s.elim_redundancies(); + TRACE("after_der", s.display(tout);); + SASSERT(is_well_sorted(s)); + } +}; + +der_strategy::der_strategy(ast_manager & m) { + m_imp = alloc(imp, m); +} + +der_strategy::~der_strategy() { + dealloc(m_imp); +} + +void der_strategy::operator()(assertion_set & s) { + m_imp->operator()(s); +} + +void der_strategy::set_cancel(bool f) { + if (m_imp) + m_imp->set_cancel(f); +} + +void der_strategy::cleanup() { + ast_manager & m = m_imp->m(); + imp * d = m_imp; + #pragma omp critical (as_st_cancel) + { + m_imp = 0; + } + dealloc(d); + d = alloc(imp, m); + #pragma omp critical (as_st_cancel) + { + m_imp = d; + } +} diff --git a/src/assertion_set/der_strategy.h b/src/assertion_set/der_strategy.h new file mode 100644 index 000000000..ace90eb3c --- /dev/null +++ b/src/assertion_set/der_strategy.h @@ -0,0 +1,47 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + der_strategy.h + +Abstract: + + DER strategy + +Author: + + Leonardo de Moura (leonardo) 2012-10-20 + +--*/ +#ifndef _DER_STRATEGY_H_ +#define _DER_STRATEGY_H_ + +#include"der.h" +#include"assertion_set_strategy.h" + +// TODO: delete obsolete class +class der_strategy : public assertion_set_strategy { + struct imp; + imp * m_imp; +public: + der_strategy(ast_manager & m); + virtual ~der_strategy(); + + void operator()(assertion_set & s); + + virtual void operator()(assertion_set & s, model_converter_ref & mc) { + operator()(s); + mc = 0; + } + + virtual void cleanup(); + virtual void set_cancel(bool f); +}; + +inline as_st * mk_der(ast_manager & m) { + return alloc(der_strategy, m); +} + + +#endif diff --git a/lib/elim_var_model_converter.cpp b/src/assertion_set/elim_var_model_converter.cpp similarity index 100% rename from lib/elim_var_model_converter.cpp rename to src/assertion_set/elim_var_model_converter.cpp diff --git a/lib/elim_var_model_converter.h b/src/assertion_set/elim_var_model_converter.h similarity index 100% rename from lib/elim_var_model_converter.h rename to src/assertion_set/elim_var_model_converter.h diff --git a/lib/gaussian_elim.cpp b/src/assertion_set/gaussian_elim.cpp similarity index 100% rename from lib/gaussian_elim.cpp rename to src/assertion_set/gaussian_elim.cpp diff --git a/lib/gaussian_elim.h b/src/assertion_set/gaussian_elim.h similarity index 100% rename from lib/gaussian_elim.h rename to src/assertion_set/gaussian_elim.h diff --git a/src/assertion_set/num_occurs_assertion_set.cpp b/src/assertion_set/num_occurs_assertion_set.cpp new file mode 100644 index 000000000..2f35d4b5c --- /dev/null +++ b/src/assertion_set/num_occurs_assertion_set.cpp @@ -0,0 +1,29 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + num_occurs_assertion_set.cpp + +Abstract: + + TODO: delete + +Author: + + Leonardo de Moura (leonardo) 2012-10-20. + +Revision History: + +--*/ +#include"num_occurs_assertion_set.h" +#include"assertion_set.h" + +// TODO delete +void num_occurs_as::operator()(assertion_set const & s) { + expr_fast_mark1 visited; + unsigned sz = s.size(); + for (unsigned i = 0; i < sz; i++) { + process(s.form(i), visited); + } +} diff --git a/src/assertion_set/num_occurs_assertion_set.h b/src/assertion_set/num_occurs_assertion_set.h new file mode 100644 index 000000000..50e8ac4e8 --- /dev/null +++ b/src/assertion_set/num_occurs_assertion_set.h @@ -0,0 +1,38 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + num_occurs_assertion_set.h + +Abstract: + + TODO: delete + +Author: + + Leonardo de Moura (leonardo) 2012-10-20. + +Revision History: + +--*/ +#ifndef _NUM_OCCURS_AS_H_ +#define _NUM_OCCURS_AS_H_ + +#include"num_occurs.h" + +class assertion_set; + +/** + \brief Functor for computing the number of occurrences of each sub-expression in a expression F. +*/ +class num_occurs_as : public num_occurs { +public: + num_occurs_as(bool ignore_ref_count1 = false, bool ignore_quantifiers = false): + num_occurs(ignore_ref_count1, ignore_quantifiers) { + } + + void operator()(assertion_set const & s); // TODO delete +}; + +#endif diff --git a/lib/strategy_exception.cpp b/src/assertion_set/strategy_exception.cpp similarity index 100% rename from lib/strategy_exception.cpp rename to src/assertion_set/strategy_exception.cpp diff --git a/lib/strategy_exception.h b/src/assertion_set/strategy_exception.h similarity index 100% rename from lib/strategy_exception.h rename to src/assertion_set/strategy_exception.h diff --git a/lib/num_occurs.cpp b/src/ast/num_occurs.cpp similarity index 82% rename from lib/num_occurs.cpp rename to src/ast/num_occurs.cpp index ee4b76258..c5d50475e 100644 --- a/lib/num_occurs.cpp +++ b/src/ast/num_occurs.cpp @@ -18,8 +18,6 @@ Revision History: --*/ #include"num_occurs.h" -#include"assertion_set.h" -#include"goal.h" void num_occurs::process(expr * t, expr_fast_mark1 & visited) { ptr_buffer stack; @@ -74,19 +72,3 @@ void num_occurs::operator()(unsigned num, expr * const * ts) { } } -// TODO delete -void num_occurs::operator()(assertion_set const & s) { - expr_fast_mark1 visited; - unsigned sz = s.size(); - for (unsigned i = 0; i < sz; i++) { - process(s.form(i), visited); - } -} - -void num_occurs::operator()(goal const & g) { - expr_fast_mark1 visited; - unsigned sz = g.size(); - for (unsigned i = 0; i < sz; i++) { - process(g.form(i), visited); - } -} diff --git a/lib/num_occurs.h b/src/ast/num_occurs.h similarity index 88% rename from lib/num_occurs.h rename to src/ast/num_occurs.h index 01d160ac5..ecd77e356 100644 --- a/lib/num_occurs.h +++ b/src/ast/num_occurs.h @@ -22,13 +22,11 @@ Revision History: #include"ast.h" #include"obj_hashtable.h" -class assertion_set; // TODO delete -class goal; - /** \brief Functor for computing the number of occurrences of each sub-expression in a expression F. */ class num_occurs { +protected: bool m_ignore_ref_count1; bool m_ignore_quantifiers; obj_map m_num_occurs; @@ -44,8 +42,6 @@ public: void operator()(expr * t); void operator()(unsigned num, expr * const * ts); - void operator()(assertion_set const & s); // TODO delete - void operator()(goal const & s); unsigned get_num_occs(expr * n) const { unsigned val; diff --git a/lib/occurs.cpp b/src/ast/occurs.cpp similarity index 100% rename from lib/occurs.cpp rename to src/ast/occurs.cpp diff --git a/lib/occurs.h b/src/ast/occurs.h similarity index 100% rename from lib/occurs.h rename to src/ast/occurs.h diff --git a/src/framework/der_tactic.cpp b/src/framework/der_tactic.cpp new file mode 100644 index 000000000..c2245b409 --- /dev/null +++ b/src/framework/der_tactic.cpp @@ -0,0 +1,114 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + der_tactic.cpp + +Abstract: + + DER tactic + +Author: + + Leonardo de Moura (leonardo) 2012-10-20 + +--*/ +#include"der.h" +#include"tactical.h" + +class der_tactic : public tactic { + struct imp { + ast_manager & m_manager; + der_rewriter m_r; + + imp(ast_manager & m): + m_manager(m), + m_r(m) { + } + + ast_manager & m() const { return m_manager; } + + void set_cancel(bool f) { + m_r.set_cancel(f); + } + + void reset() { + m_r.reset(); + } + + void operator()(goal & g) { + SASSERT(g.is_well_sorted()); + bool proofs_enabled = g.proofs_enabled(); + tactic_report report("der", g); + TRACE("before_der", g.display(tout);); + expr_ref new_curr(m()); + proof_ref new_pr(m()); + unsigned size = g.size(); + for (unsigned idx = 0; idx < size; idx++) { + if (g.inconsistent()) + break; + expr * curr = g.form(idx); + m_r(curr, new_curr, new_pr); + if (proofs_enabled) { + proof * pr = g.pr(idx); + new_pr = m().mk_modus_ponens(pr, new_pr); + } + g.update(idx, new_curr, new_pr, g.dep(idx)); + } + g.elim_redundancies(); + TRACE("after_der", g.display(tout);); + SASSERT(g.is_well_sorted()); + } + }; + + imp * m_imp; + +public: + der_tactic(ast_manager & m) { + m_imp = alloc(imp, m); + } + + virtual tactic * translate(ast_manager & m) { + return alloc(der_tactic, m); + } + + virtual ~der_tactic() { + dealloc(m_imp); + } + + virtual void operator()(goal_ref const & in, + goal_ref_buffer & result, + model_converter_ref & mc, + proof_converter_ref & pc, + expr_dependency_ref & core) { + mc = 0; pc = 0; core = 0; + (*m_imp)(*(in.get())); + in->inc_depth(); + result.push_back(in.get()); + } + + virtual void cleanup() { + ast_manager & m = m_imp->m(); + imp * d = m_imp; + #pragma omp critical (tactic_cancel) + { + m_imp = 0; + } + dealloc(d); + d = alloc(imp, m); + #pragma omp critical (tactic_cancel) + { + m_imp = d; + } + } + + virtual void set_cancel(bool f) { + if (m_imp) + m_imp->set_cancel(f); + } +}; + +tactic * mk_der_tactic(ast_manager & m) { + return alloc(der_tactic, m); +} diff --git a/src/framework/der_tactic.h b/src/framework/der_tactic.h new file mode 100644 index 000000000..8e7d1453f --- /dev/null +++ b/src/framework/der_tactic.h @@ -0,0 +1,25 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + der_tactic.h + +Abstract: + + DER tactic + +Author: + + Leonardo de Moura (leonardo) 2012-10-20 + +--*/ +#ifndef _DER_TACTIC_H_ +#define _DER_TACTIC_H_ + +class ast_manager; +class tactic; + +tactic * mk_der_tactic(ast_manager & m); + +#endif /* _DER_TACTIC_H_ */ diff --git a/src/framework/num_occurs_goal.cpp b/src/framework/num_occurs_goal.cpp new file mode 100644 index 000000000..adc412434 --- /dev/null +++ b/src/framework/num_occurs_goal.cpp @@ -0,0 +1,27 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + num_occurs_goal.cpp + +Abstract: + + +Author: + + Leonardo de Moura (leonardo) 2012-10-20. + +Revision History: + +--*/ +#include"num_occurs_goal.h" +#include"goal.h" + +void num_occurs_goal::operator()(goal const & g) { + expr_fast_mark1 visited; + unsigned sz = g.size(); + for (unsigned i = 0; i < sz; i++) { + process(g.form(i), visited); + } +} diff --git a/src/framework/num_occurs_goal.h b/src/framework/num_occurs_goal.h new file mode 100644 index 000000000..5e6e0cc94 --- /dev/null +++ b/src/framework/num_occurs_goal.h @@ -0,0 +1,35 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + num_occurs_goal.h + +Abstract: + + +Author: + + Leonardo de Moura (leonardo) 2012-10-20. + +Revision History: + +--*/ +#ifndef _NUM_OCCURS_GOAL_H_ +#define _NUM_OCCURS_GOAL_H_ + +#include"num_occurs.h" + +class goal; + +class num_occurs_goal : public num_occurs { +public: + num_occurs_goal(bool ignore_ref_count1 = false, bool ignore_quantifiers = false): + num_occurs(ignore_ref_count1, ignore_quantifiers) { + } + + void operator()(goal const & s); +}; + + +#endif diff --git a/lib/cnf.cpp b/src/normal_forms/cnf.cpp similarity index 100% rename from lib/cnf.cpp rename to src/normal_forms/cnf.cpp diff --git a/lib/cnf.h b/src/normal_forms/cnf.h similarity index 100% rename from lib/cnf.h rename to src/normal_forms/cnf.h diff --git a/lib/defined_names.cpp b/src/normal_forms/defined_names.cpp similarity index 100% rename from lib/defined_names.cpp rename to src/normal_forms/defined_names.cpp diff --git a/lib/defined_names.h b/src/normal_forms/defined_names.h similarity index 100% rename from lib/defined_names.h rename to src/normal_forms/defined_names.h diff --git a/lib/name_exprs.cpp b/src/normal_forms/name_exprs.cpp similarity index 100% rename from lib/name_exprs.cpp rename to src/normal_forms/name_exprs.cpp diff --git a/lib/name_exprs.h b/src/normal_forms/name_exprs.h similarity index 100% rename from lib/name_exprs.h rename to src/normal_forms/name_exprs.h diff --git a/lib/nnf.cpp b/src/normal_forms/nnf.cpp similarity index 100% rename from lib/nnf.cpp rename to src/normal_forms/nnf.cpp diff --git a/lib/nnf.h b/src/normal_forms/nnf.h similarity index 100% rename from lib/nnf.h rename to src/normal_forms/nnf.h diff --git a/lib/pull_quant.cpp b/src/normal_forms/pull_quant.cpp similarity index 100% rename from lib/pull_quant.cpp rename to src/normal_forms/pull_quant.cpp diff --git a/lib/pull_quant.h b/src/normal_forms/pull_quant.h similarity index 100% rename from lib/pull_quant.h rename to src/normal_forms/pull_quant.h diff --git a/lib/database.h b/src/pattern/database.h similarity index 100% rename from lib/database.h rename to src/pattern/database.h diff --git a/lib/database.smt b/src/pattern/database.smt similarity index 100% rename from lib/database.smt rename to src/pattern/database.smt diff --git a/lib/expr_pattern_match.cpp b/src/pattern/expr_pattern_match.cpp similarity index 100% rename from lib/expr_pattern_match.cpp rename to src/pattern/expr_pattern_match.cpp diff --git a/lib/expr_pattern_match.h b/src/pattern/expr_pattern_match.h similarity index 100% rename from lib/expr_pattern_match.h rename to src/pattern/expr_pattern_match.h diff --git a/lib/pattern_inference.cpp b/src/pattern/pattern_inference.cpp similarity index 100% rename from lib/pattern_inference.cpp rename to src/pattern/pattern_inference.cpp diff --git a/lib/pattern_inference.h b/src/pattern/pattern_inference.h similarity index 100% rename from lib/pattern_inference.h rename to src/pattern/pattern_inference.h diff --git a/lib/pattern_validation.cpp b/src/pattern/pattern_validation.cpp similarity index 100% rename from lib/pattern_validation.cpp rename to src/pattern/pattern_validation.cpp diff --git a/lib/pattern_validation.h b/src/pattern/pattern_validation.h similarity index 100% rename from lib/pattern_validation.h rename to src/pattern/pattern_validation.h diff --git a/lib/der.cpp b/src/rewriter/der.cpp similarity index 77% rename from lib/der.cpp rename to src/rewriter/der.cpp index 6df1a0105..4a4f438a7 100644 --- a/lib/der.cpp +++ b/src/rewriter/der.cpp @@ -25,7 +25,6 @@ Revision History: #include"ast_pp.h" #include"ast_ll_pp.h" #include"ast_smt2_pp.h" -#include"tactical.h" static bool is_var(expr * e, unsigned num_decls) { return is_var(e) && to_var(e)->get_idx() < num_decls; @@ -465,175 +464,4 @@ void der_rewriter::reset() { m_imp->reset(); } -struct der_strategy::imp { - ast_manager & m_manager; - der_rewriter m_r; - imp(ast_manager & m): - m_manager(m), - m_r(m) { - } - - ast_manager & m() const { return m_manager; } - - void set_cancel(bool f) { - m_r.set_cancel(f); - } - - void reset() { - m_r.reset(); - } - - void operator()(assertion_set & s) { - SASSERT(is_well_sorted(s)); - as_st_report report("der", s); - TRACE("before_der", s.display(tout);); - if (s.inconsistent()) - return; - expr_ref new_curr(m()); - proof_ref new_pr(m()); - unsigned size = s.size(); - for (unsigned idx = 0; idx < size; idx++) { - if (s.inconsistent()) - break; - expr * curr = s.form(idx); - m_r(curr, new_curr, new_pr); - if (m().proofs_enabled()) { - proof * pr = s.pr(idx); - new_pr = m().mk_modus_ponens(pr, new_pr); - } - s.update(idx, new_curr, new_pr); - } - s.elim_redundancies(); - TRACE("after_der", s.display(tout);); - SASSERT(is_well_sorted(s)); - } -}; - -der_strategy::der_strategy(ast_manager & m) { - m_imp = alloc(imp, m); -} - -der_strategy::~der_strategy() { - dealloc(m_imp); -} - -void der_strategy::operator()(assertion_set & s) { - m_imp->operator()(s); -} - -void der_strategy::set_cancel(bool f) { - if (m_imp) - m_imp->set_cancel(f); -} - -void der_strategy::cleanup() { - ast_manager & m = m_imp->m(); - imp * d = m_imp; - #pragma omp critical (as_st_cancel) - { - m_imp = 0; - } - dealloc(d); - d = alloc(imp, m); - #pragma omp critical (as_st_cancel) - { - m_imp = d; - } -} - -class der_tactic : public tactic { - struct imp { - ast_manager & m_manager; - der_rewriter m_r; - - imp(ast_manager & m): - m_manager(m), - m_r(m) { - } - - ast_manager & m() const { return m_manager; } - - void set_cancel(bool f) { - m_r.set_cancel(f); - } - - void reset() { - m_r.reset(); - } - - void operator()(goal & g) { - SASSERT(g.is_well_sorted()); - bool proofs_enabled = g.proofs_enabled(); - tactic_report report("der", g); - TRACE("before_der", g.display(tout);); - expr_ref new_curr(m()); - proof_ref new_pr(m()); - unsigned size = g.size(); - for (unsigned idx = 0; idx < size; idx++) { - if (g.inconsistent()) - break; - expr * curr = g.form(idx); - m_r(curr, new_curr, new_pr); - if (proofs_enabled) { - proof * pr = g.pr(idx); - new_pr = m().mk_modus_ponens(pr, new_pr); - } - g.update(idx, new_curr, new_pr, g.dep(idx)); - } - g.elim_redundancies(); - TRACE("after_der", g.display(tout);); - SASSERT(g.is_well_sorted()); - } - }; - - imp * m_imp; - -public: - der_tactic(ast_manager & m) { - m_imp = alloc(imp, m); - } - - virtual tactic * translate(ast_manager & m) { - return alloc(der_tactic, m); - } - - virtual ~der_tactic() { - dealloc(m_imp); - } - - virtual void operator()(goal_ref const & in, - goal_ref_buffer & result, - model_converter_ref & mc, - proof_converter_ref & pc, - expr_dependency_ref & core) { - mc = 0; pc = 0; core = 0; - (*m_imp)(*(in.get())); - in->inc_depth(); - result.push_back(in.get()); - } - - virtual void cleanup() { - ast_manager & m = m_imp->m(); - imp * d = m_imp; - #pragma omp critical (tactic_cancel) - { - m_imp = 0; - } - dealloc(d); - d = alloc(imp, m); - #pragma omp critical (tactic_cancel) - { - m_imp = d; - } - } - - virtual void set_cancel(bool f) { - if (m_imp) - m_imp->set_cancel(f); - } -}; - -tactic * mk_der_tactic(ast_manager & m) { - return alloc(der_tactic, m); -} diff --git a/lib/der.h b/src/rewriter/der.h similarity index 91% rename from lib/der.h rename to src/rewriter/der.h index 69f294fd4..a0be33c5c 100644 --- a/lib/der.h +++ b/src/rewriter/der.h @@ -23,7 +23,6 @@ Revision History: #include"ast.h" #include"var_subst.h" -#include"assertion_set_strategy.h" /* New DER: the class DER (above) eliminates variables one by one. @@ -184,32 +183,5 @@ public: typedef der_rewriter der_star; -// TODO: delete obsolete class -class der_strategy : public assertion_set_strategy { - struct imp; - imp * m_imp; -public: - der_strategy(ast_manager & m); - virtual ~der_strategy(); - - void operator()(assertion_set & s); - - virtual void operator()(assertion_set & s, model_converter_ref & mc) { - operator()(s); - mc = 0; - } - - virtual void cleanup(); - virtual void set_cancel(bool f); -}; - -inline as_st * mk_der(ast_manager & m) { - return alloc(der_strategy, m); -} - -class tactic; - -tactic * mk_der_tactic(ast_manager & m); - #endif /* _DER_H_ */ diff --git a/lib/expr_replacer.cpp b/src/rewriter/expr_replacer.cpp similarity index 100% rename from lib/expr_replacer.cpp rename to src/rewriter/expr_replacer.cpp diff --git a/lib/expr_replacer.h b/src/rewriter/expr_replacer.h similarity index 100% rename from lib/expr_replacer.h rename to src/rewriter/expr_replacer.h diff --git a/lib/push_app_ite.cpp b/src/simplifier/push_app_ite.cpp similarity index 100% rename from lib/push_app_ite.cpp rename to src/simplifier/push_app_ite.cpp diff --git a/lib/push_app_ite.h b/src/simplifier/push_app_ite.h similarity index 100% rename from lib/push_app_ite.h rename to src/simplifier/push_app_ite.h diff --git a/src/smt/smt_solver_strategy.cpp b/src/smt/smt_solver_strategy.cpp new file mode 100644 index 000000000..65dde6361 --- /dev/null +++ b/src/smt/smt_solver_strategy.cpp @@ -0,0 +1,180 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + smt_solver_strategy.cpp + +Abstract: + + Wraps a solver as an assertion_set strategy. + **Temporary code** + It should be deleted when we finish porting the assertion_set code to the tactic framework. + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#include"smt_solver_strategy.h" +#include"smt_solver.h" + +class as_st_solver : public assertion_set_strategy { + scoped_ptr m_params; + params_ref m_params_ref; + statistics m_stats; + std::string m_failure; + smt::solver * m_ctx; + bool m_candidate_models; + symbol m_logic; + progress_callback * m_callback; +public: + as_st_solver(bool candidate_models):m_ctx(0), m_candidate_models(candidate_models), m_callback(0) {} + + front_end_params & fparams() { + if (!m_params) + m_params = alloc(front_end_params); + return *m_params; + } + + struct scoped_init_ctx { + as_st_solver & m_owner; + + scoped_init_ctx(as_st_solver & o, ast_manager & m):m_owner(o) { + smt::solver * new_ctx = alloc(smt::solver, m, o.fparams()); + TRACE("as_solver", tout << "logic: " << o.m_logic << "\n";); + new_ctx->set_logic(o.m_logic); + if (o.m_callback) { + new_ctx->set_progress_callback(o.m_callback); + } + #pragma omp critical (as_st_solver) + { + o.m_ctx = new_ctx; + } + } + + ~scoped_init_ctx() { + smt::solver * d = m_owner.m_ctx; + #pragma omp critical (as_st_cancel) + { + m_owner.m_ctx = 0; + } + if (d) + dealloc(d); + } + }; + + virtual ~as_st_solver() { + SASSERT(m_ctx == 0); + } + + virtual void updt_params(params_ref const & p) { + TRACE("as_solver", tout << "updt_params: " << p << "\n";); + m_params_ref = p; + params2front_end_params(m_params_ref, fparams()); + } + + virtual void collect_param_descrs(param_descrs & r) { + } + + virtual void set_cancel(bool f) { + if (m_ctx) + m_ctx->set_cancel(f); + } + + virtual void operator()(assertion_set & s, model_converter_ref & mc) { + SASSERT(is_well_sorted(s)); + IF_VERBOSE(ST_VERBOSITY_LVL, verbose_stream() << "(smt-solver)" << std::endl;); + TRACE("as_solver", tout << "AUTO_CONFIG: " << fparams().m_auto_config << " HIDIV0: " << fparams().m_hi_div0 << " " + << " PREPROCESS: " << fparams().m_preprocess << ", SOLVER:" << fparams().m_solver << "\n";); + TRACE("as_solver_detail", s.display(tout);); + ast_manager & m = s.m(); + TRACE("as_solver_memory", tout << "wasted_size: " << m.get_allocator().get_wasted_size() << "\n";); + // verbose_stream() << "wasted_size: " << m.get_allocator().get_wasted_size() << ", free_objs: " << m.get_allocator().get_num_free_objs() << "\n"; + // m.get_allocator().consolidate(); + scoped_init_ctx init(*this, m); + SASSERT(m_ctx != 0); + unsigned sz = s.size(); + for (unsigned i = 0; i < sz; i++) { + expr * f = s.form(i); + m_ctx->assert_expr(f); + } + lbool r = m_ctx->setup_and_check(); + m_ctx->collect_statistics(m_stats); + switch (r) { + case l_true: { + // the empty assertion set is trivially satifiable. + s.reset(); + // store the model in a do nothin model converter. + model_ref md; + m_ctx->get_model(md); + mc = model2model_converter(md.get()); + return; + } + case l_false: + // formula is unsat, reset the assertion set, and store false there. + s.reset(); + s.assert_expr(m.mk_false(), m_ctx->get_proof()); + return; + case l_undef: + if (m_candidate_models) { + switch (m_ctx->last_failure()) { + case smt::NUM_CONFLICTS: + case smt::THEORY: + case smt::QUANTIFIERS: { + model_ref md; + m_ctx->get_model(md); + mc = model2model_converter(md.get()); + return; + } + default: + break; + } + } + m_failure = m_ctx->last_failure_as_string(); + throw strategy_exception(m_failure.c_str()); + } + } + + virtual void collect_statistics(statistics & st) const { + if (m_ctx) + m_ctx->collect_statistics(st); // ctx is still running... + else + st.copy(m_stats); + } + + virtual void cleanup() { + } + + virtual void reset_statistics() { + m_stats.reset(); + } + + // for backward compatibility + virtual void set_front_end_params(front_end_params & p) { + m_params = alloc(front_end_params, p); + // must propagate the params_ref to fparams + params2front_end_params(m_params_ref, fparams()); + } + + virtual void set_logic(symbol const & l) { + m_logic = l; + } + + virtual void set_progress_callback(progress_callback * callback) { + m_callback = callback; + } +}; + +as_st * mk_smt_solver_core(bool candidate_models) { + return alloc(as_st_solver, candidate_models); +} + +as_st * mk_smt_solver(bool auto_config, bool candidate_models) { + as_st * solver = mk_smt_solver_core(candidate_models); + params_ref solver_p; + solver_p.set_bool(":auto-config", auto_config); + return using_params(solver, solver_p); +}; diff --git a/src/smt/smt_solver_strategy.h b/src/smt/smt_solver_strategy.h new file mode 100644 index 000000000..eb74dc530 --- /dev/null +++ b/src/smt/smt_solver_strategy.h @@ -0,0 +1,31 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + smt_solver_strategy.h + +Abstract: + + Wraps a solver as an assertion_set strategy. + **Temporary code** + It should be deleted when we finish porting the assertion_set code to the tactic framework. + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#ifndef _SMT_SOLVER_STRATEGY_H_ +#define _SMT_SOLVER_STRATEGY_H_ + +#include"assertion_set_strategy.h" + +as_st * mk_smt_solver_core(bool candidate_models = false); +as_st * mk_smt_solver(bool auto_config = true, bool candidate_models = false); + +MK_SIMPLE_ST_FACTORY(smt_solver_stf, mk_smt_solver()); + +#endif diff --git a/src/spc/README b/src/spc/README new file mode 100644 index 000000000..67ccf0e3c --- /dev/null +++ b/src/spc/README @@ -0,0 +1,2 @@ +Superposition Calculus. +This module is currently disabled. \ No newline at end of file diff --git a/lib/expr_offset.h b/src/spc/expr_offset.h similarity index 100% rename from lib/expr_offset.h rename to src/spc/expr_offset.h diff --git a/lib/expr_offset_map.h b/src/spc/expr_offset_map.h similarity index 100% rename from lib/expr_offset_map.h rename to src/spc/expr_offset_map.h diff --git a/lib/expr_stat.cpp b/src/spc/expr_stat.cpp similarity index 100% rename from lib/expr_stat.cpp rename to src/spc/expr_stat.cpp diff --git a/lib/expr_stat.h b/src/spc/expr_stat.h similarity index 100% rename from lib/expr_stat.h rename to src/spc/expr_stat.h diff --git a/lib/kbo.cpp b/src/spc/kbo.cpp similarity index 100% rename from lib/kbo.cpp rename to src/spc/kbo.cpp diff --git a/lib/kbo.h b/src/spc/kbo.h similarity index 100% rename from lib/kbo.h rename to src/spc/kbo.h diff --git a/lib/lpo.cpp b/src/spc/lpo.cpp similarity index 100% rename from lib/lpo.cpp rename to src/spc/lpo.cpp diff --git a/lib/lpo.h b/src/spc/lpo.h similarity index 100% rename from lib/lpo.h rename to src/spc/lpo.h diff --git a/lib/marker.h b/src/spc/marker.h similarity index 100% rename from lib/marker.h rename to src/spc/marker.h diff --git a/lib/matcher.cpp b/src/spc/matcher.cpp similarity index 100% rename from lib/matcher.cpp rename to src/spc/matcher.cpp diff --git a/lib/matcher.h b/src/spc/matcher.h similarity index 100% rename from lib/matcher.h rename to src/spc/matcher.h diff --git a/lib/normalize_vars.cpp b/src/spc/normalize_vars.cpp similarity index 100% rename from lib/normalize_vars.cpp rename to src/spc/normalize_vars.cpp diff --git a/lib/normalize_vars.h b/src/spc/normalize_vars.h similarity index 100% rename from lib/normalize_vars.h rename to src/spc/normalize_vars.h diff --git a/lib/order.cpp b/src/spc/order.cpp similarity index 100% rename from lib/order.cpp rename to src/spc/order.cpp diff --git a/lib/order.h b/src/spc/order.h similarity index 100% rename from lib/order.h rename to src/spc/order.h diff --git a/lib/precedence.cpp b/src/spc/precedence.cpp similarity index 100% rename from lib/precedence.cpp rename to src/spc/precedence.cpp diff --git a/lib/precedence.h b/src/spc/precedence.h similarity index 100% rename from lib/precedence.h rename to src/spc/precedence.h diff --git a/lib/preprocessor.cpp b/src/spc/preprocessor.cpp similarity index 100% rename from lib/preprocessor.cpp rename to src/spc/preprocessor.cpp diff --git a/lib/preprocessor.h b/src/spc/preprocessor.h similarity index 100% rename from lib/preprocessor.h rename to src/spc/preprocessor.h diff --git a/lib/sparse_use_list.h b/src/spc/sparse_use_list.h similarity index 100% rename from lib/sparse_use_list.h rename to src/spc/sparse_use_list.h diff --git a/lib/spc_asserted_literals.cpp b/src/spc/spc_asserted_literals.cpp similarity index 100% rename from lib/spc_asserted_literals.cpp rename to src/spc/spc_asserted_literals.cpp diff --git a/lib/spc_asserted_literals.h b/src/spc/spc_asserted_literals.h similarity index 100% rename from lib/spc_asserted_literals.h rename to src/spc/spc_asserted_literals.h diff --git a/lib/spc_clause.cpp b/src/spc/spc_clause.cpp similarity index 100% rename from lib/spc_clause.cpp rename to src/spc/spc_clause.cpp diff --git a/lib/spc_clause.h b/src/spc/spc_clause.h similarity index 100% rename from lib/spc_clause.h rename to src/spc/spc_clause.h diff --git a/lib/spc_clause_pos_set.h b/src/spc/spc_clause_pos_set.h similarity index 100% rename from lib/spc_clause_pos_set.h rename to src/spc/spc_clause_pos_set.h diff --git a/lib/spc_clause_selection.cpp b/src/spc/spc_clause_selection.cpp similarity index 100% rename from lib/spc_clause_selection.cpp rename to src/spc/spc_clause_selection.cpp diff --git a/lib/spc_clause_selection.h b/src/spc/spc_clause_selection.h similarity index 100% rename from lib/spc_clause_selection.h rename to src/spc/spc_clause_selection.h diff --git a/lib/spc_context.cpp b/src/spc/spc_context.cpp similarity index 100% rename from lib/spc_context.cpp rename to src/spc/spc_context.cpp diff --git a/lib/spc_context.h b/src/spc/spc_context.h similarity index 100% rename from lib/spc_context.h rename to src/spc/spc_context.h diff --git a/lib/spc_decl_plugin.cpp b/src/spc/spc_decl_plugin.cpp similarity index 100% rename from lib/spc_decl_plugin.cpp rename to src/spc/spc_decl_plugin.cpp diff --git a/lib/spc_decl_plugin.h b/src/spc/spc_decl_plugin.h similarity index 100% rename from lib/spc_decl_plugin.h rename to src/spc/spc_decl_plugin.h diff --git a/lib/spc_der.cpp b/src/spc/spc_der.cpp similarity index 100% rename from lib/spc_der.cpp rename to src/spc/spc_der.cpp diff --git a/lib/spc_der.h b/src/spc/spc_der.h similarity index 100% rename from lib/spc_der.h rename to src/spc/spc_der.h diff --git a/lib/spc_eq_resolution.cpp b/src/spc/spc_eq_resolution.cpp similarity index 100% rename from lib/spc_eq_resolution.cpp rename to src/spc/spc_eq_resolution.cpp diff --git a/lib/spc_eq_resolution.h b/src/spc/spc_eq_resolution.h similarity index 100% rename from lib/spc_eq_resolution.h rename to src/spc/spc_eq_resolution.h diff --git a/lib/spc_factoring.cpp b/src/spc/spc_factoring.cpp similarity index 100% rename from lib/spc_factoring.cpp rename to src/spc/spc_factoring.cpp diff --git a/lib/spc_factoring.h b/src/spc/spc_factoring.h similarity index 100% rename from lib/spc_factoring.h rename to src/spc/spc_factoring.h diff --git a/lib/spc_justification.cpp b/src/spc/spc_justification.cpp similarity index 100% rename from lib/spc_justification.cpp rename to src/spc/spc_justification.cpp diff --git a/lib/spc_justification.h b/src/spc/spc_justification.h similarity index 100% rename from lib/spc_justification.h rename to src/spc/spc_justification.h diff --git a/lib/spc_literal.cpp b/src/spc/spc_literal.cpp similarity index 100% rename from lib/spc_literal.cpp rename to src/spc/spc_literal.cpp diff --git a/lib/spc_literal.h b/src/spc/spc_literal.h similarity index 100% rename from lib/spc_literal.h rename to src/spc/spc_literal.h diff --git a/lib/spc_literal_selection.cpp b/src/spc/spc_literal_selection.cpp similarity index 100% rename from lib/spc_literal_selection.cpp rename to src/spc/spc_literal_selection.cpp diff --git a/lib/spc_literal_selection.h b/src/spc/spc_literal_selection.h similarity index 100% rename from lib/spc_literal_selection.h rename to src/spc/spc_literal_selection.h diff --git a/lib/spc_prover.cpp b/src/spc/spc_prover.cpp similarity index 100% rename from lib/spc_prover.cpp rename to src/spc/spc_prover.cpp diff --git a/lib/spc_prover.h b/src/spc/spc_prover.h similarity index 100% rename from lib/spc_prover.h rename to src/spc/spc_prover.h diff --git a/lib/spc_rewriter.cpp b/src/spc/spc_rewriter.cpp similarity index 100% rename from lib/spc_rewriter.cpp rename to src/spc/spc_rewriter.cpp diff --git a/lib/spc_rewriter.h b/src/spc/spc_rewriter.h similarity index 100% rename from lib/spc_rewriter.h rename to src/spc/spc_rewriter.h diff --git a/lib/spc_semantic_tautology.cpp b/src/spc/spc_semantic_tautology.cpp similarity index 100% rename from lib/spc_semantic_tautology.cpp rename to src/spc/spc_semantic_tautology.cpp diff --git a/lib/spc_semantic_tautology.h b/src/spc/spc_semantic_tautology.h similarity index 100% rename from lib/spc_semantic_tautology.h rename to src/spc/spc_semantic_tautology.h diff --git a/lib/spc_statistics.cpp b/src/spc/spc_statistics.cpp similarity index 100% rename from lib/spc_statistics.cpp rename to src/spc/spc_statistics.cpp diff --git a/lib/spc_statistics.h b/src/spc/spc_statistics.h similarity index 100% rename from lib/spc_statistics.h rename to src/spc/spc_statistics.h diff --git a/lib/spc_subsumption.cpp b/src/spc/spc_subsumption.cpp similarity index 100% rename from lib/spc_subsumption.cpp rename to src/spc/spc_subsumption.cpp diff --git a/lib/spc_subsumption.h b/src/spc/spc_subsumption.h similarity index 100% rename from lib/spc_subsumption.h rename to src/spc/spc_subsumption.h diff --git a/lib/spc_superposition.cpp b/src/spc/spc_superposition.cpp similarity index 100% rename from lib/spc_superposition.cpp rename to src/spc/spc_superposition.cpp diff --git a/lib/spc_superposition.h b/src/spc/spc_superposition.h similarity index 100% rename from lib/spc_superposition.h rename to src/spc/spc_superposition.h diff --git a/lib/spc_unary_inference.cpp b/src/spc/spc_unary_inference.cpp similarity index 100% rename from lib/spc_unary_inference.cpp rename to src/spc/spc_unary_inference.cpp diff --git a/lib/spc_unary_inference.h b/src/spc/spc_unary_inference.h similarity index 100% rename from lib/spc_unary_inference.h rename to src/spc/spc_unary_inference.h diff --git a/lib/splay_tree.h b/src/spc/splay_tree.h similarity index 100% rename from lib/splay_tree.h rename to src/spc/splay_tree.h diff --git a/lib/splay_tree_def.h b/src/spc/splay_tree_def.h similarity index 100% rename from lib/splay_tree_def.h rename to src/spc/splay_tree_def.h diff --git a/lib/splay_tree_map.h b/src/spc/splay_tree_map.h similarity index 100% rename from lib/splay_tree_map.h rename to src/spc/splay_tree_map.h diff --git a/lib/substitution.cpp b/src/spc/substitution.cpp similarity index 100% rename from lib/substitution.cpp rename to src/spc/substitution.cpp diff --git a/lib/substitution.h b/src/spc/substitution.h similarity index 100% rename from lib/substitution.h rename to src/spc/substitution.h diff --git a/lib/substitution_tree.cpp b/src/spc/substitution_tree.cpp similarity index 100% rename from lib/substitution_tree.cpp rename to src/spc/substitution_tree.cpp diff --git a/lib/substitution_tree.h b/src/spc/substitution_tree.h similarity index 100% rename from lib/substitution_tree.h rename to src/spc/substitution_tree.h diff --git a/lib/unifier.cpp b/src/spc/unifier.cpp similarity index 100% rename from lib/unifier.cpp rename to src/spc/unifier.cpp diff --git a/lib/unifier.h b/src/spc/unifier.h similarity index 100% rename from lib/unifier.h rename to src/spc/unifier.h diff --git a/lib/use_list.cpp b/src/spc/use_list.cpp similarity index 100% rename from lib/use_list.cpp rename to src/spc/use_list.cpp diff --git a/lib/use_list.h b/src/spc/use_list.h similarity index 100% rename from lib/use_list.h rename to src/spc/use_list.h diff --git a/lib/var_offset_map.h b/src/spc/var_offset_map.h similarity index 100% rename from lib/var_offset_map.h rename to src/spc/var_offset_map.h From aa949693d4e09567010f9b703e13aa9839b6da8e Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 22:28:22 -0700 Subject: [PATCH 11/54] Reorganizing the code Signed-off-by: Leonardo de Moura --- lib/assertion_set.txt | 78 ------------------- {lib => src/dead}/array_property_expander.cpp | 0 {lib => src/dead}/array_property_expander.h | 0 .../dead}/array_property_recognizer.cpp | 0 {lib => src/dead}/array_property_recognizer.h | 0 {lib => src/dead}/big_rational.h | 0 {lib => src/dead}/dummy_big_rational.h | 0 {lib => src/dead}/gl_tactic.cpp | 0 {lib => src/dead}/gl_tactic.h | 0 {lib => src/dead}/gmp_big_rational.cpp | 0 {lib => src/dead}/gmp_big_rational.h | 0 .../old_params}/arith_simplifier_params.cpp | 0 {lib => src/rewriter}/rewriter.txt | 0 13 files changed, 78 deletions(-) delete mode 100644 lib/assertion_set.txt rename {lib => src/dead}/array_property_expander.cpp (100%) rename {lib => src/dead}/array_property_expander.h (100%) rename {lib => src/dead}/array_property_recognizer.cpp (100%) rename {lib => src/dead}/array_property_recognizer.h (100%) rename {lib => src/dead}/big_rational.h (100%) rename {lib => src/dead}/dummy_big_rational.h (100%) rename {lib => src/dead}/gl_tactic.cpp (100%) rename {lib => src/dead}/gl_tactic.h (100%) rename {lib => src/dead}/gmp_big_rational.cpp (100%) rename {lib => src/dead}/gmp_big_rational.h (100%) rename {lib => src/old_params}/arith_simplifier_params.cpp (100%) rename {lib => src/rewriter}/rewriter.txt (100%) diff --git a/lib/assertion_set.txt b/lib/assertion_set.txt deleted file mode 100644 index b8d49f7e6..000000000 --- a/lib/assertion_set.txt +++ /dev/null @@ -1,78 +0,0 @@ - -The assertion_set class is essentially a set of formulas. -The assertion_set copy() method is constant time. They use persistent -arrays for "sharing" common parts. -The goal is to provide functors (strategies) that apply transformations to these sets. -Examples of transformations are: - - simplification - - gaussian elimination - - CNF, NNF, OCNF transformation - - bit-blasting - - abstraction - - grobner basis computation - - completion - - term rewriting - - bound propagation - - contextal simplification - - if-then-else lifting - - quantifier elimination - - etc - -A functor/strategy is essentially updating an assertion set. It may -also provide a model_converter to convert a model for the resultant -assertion_set into a model for the original assertion_set. See -gaussian_elim.cpp for an example of model_converter. A functor may -return a vector of assertion sets. It may also return a -proof_converter for converting proofs for the resultant assertion -set(s) into a proof for the original assertion_set. The -functor/strategy user is responsible for "plumbing" the -model_converter(s) and proof_converter(s). In the future we may have -tacticals for combining these functors/strategies. This is not needed -now. - -The idea is to provide assertion_set_solvers. They are essentially end-game -strategies. The abstract API for them is defined at assertion_set_solver.h. -Currently, the only assertion_set_solver is based on smt_context.h. -The next one will be based on a pure SAT solver. I also have plans for -one based on linear programming. - -The main goals of the new design are: - - increase modularity. - - expose assertion_set abstraction to external users. - - expose these functor/strategies to external users. - - allow us to combine problem specific solvers in a modular way. - - everything can be interrupted. - - some actions may be resumed. - - clean parallel_z3 implementation. - - support non-satisfiability preserving transformations. - the basic idea is: - * if the transformation is an over-approximation, - then the model_converter must throw an exception if it - can't convert the model into a model for the original assertion_set. - * if the transformation is an under-approximation, - then the proof_converter must throw an exception if it - can't convert the proof(s) into a proof for the original assertion_set. - I don't expect us to provide extensive support for proofs. - So, under-approximations will never really be used to show that - an assertion_set is unsatisfiable. - -Another goal is to a solver object that is essentially invoking an -external solver (process). I expect the external solver (in most cases) to be -Z3 itself. The main advantages are: the main process is safe from crashes, -and we can even invoke solvers in remote machines. - -The new functor/strategy design is not meant for incremental solving. -We may still have solvers that are incremental such as smt_context.h. - -Additional remarks: - -Failures and interruptions are reported using exceptions. -Each functor must provide a cancel() method that can be invoked to -interrupt it. A resume() method is optional. It is a must have if the -functor/strategy may be too time consuming. Each functor may have its -own set of parameters. See rewriter_params.h for an example. The -parameters may have options such as m_max_memory for blocking the -executiong of the functor. Each functor should have a cleanup() -method that must reclaim (almost) all memory consumed by the functor. - - diff --git a/lib/array_property_expander.cpp b/src/dead/array_property_expander.cpp similarity index 100% rename from lib/array_property_expander.cpp rename to src/dead/array_property_expander.cpp diff --git a/lib/array_property_expander.h b/src/dead/array_property_expander.h similarity index 100% rename from lib/array_property_expander.h rename to src/dead/array_property_expander.h diff --git a/lib/array_property_recognizer.cpp b/src/dead/array_property_recognizer.cpp similarity index 100% rename from lib/array_property_recognizer.cpp rename to src/dead/array_property_recognizer.cpp diff --git a/lib/array_property_recognizer.h b/src/dead/array_property_recognizer.h similarity index 100% rename from lib/array_property_recognizer.h rename to src/dead/array_property_recognizer.h diff --git a/lib/big_rational.h b/src/dead/big_rational.h similarity index 100% rename from lib/big_rational.h rename to src/dead/big_rational.h diff --git a/lib/dummy_big_rational.h b/src/dead/dummy_big_rational.h similarity index 100% rename from lib/dummy_big_rational.h rename to src/dead/dummy_big_rational.h diff --git a/lib/gl_tactic.cpp b/src/dead/gl_tactic.cpp similarity index 100% rename from lib/gl_tactic.cpp rename to src/dead/gl_tactic.cpp diff --git a/lib/gl_tactic.h b/src/dead/gl_tactic.h similarity index 100% rename from lib/gl_tactic.h rename to src/dead/gl_tactic.h diff --git a/lib/gmp_big_rational.cpp b/src/dead/gmp_big_rational.cpp similarity index 100% rename from lib/gmp_big_rational.cpp rename to src/dead/gmp_big_rational.cpp diff --git a/lib/gmp_big_rational.h b/src/dead/gmp_big_rational.h similarity index 100% rename from lib/gmp_big_rational.h rename to src/dead/gmp_big_rational.h diff --git a/lib/arith_simplifier_params.cpp b/src/old_params/arith_simplifier_params.cpp similarity index 100% rename from lib/arith_simplifier_params.cpp rename to src/old_params/arith_simplifier_params.cpp diff --git a/lib/rewriter.txt b/src/rewriter/rewriter.txt similarity index 100% rename from lib/rewriter.txt rename to src/rewriter/rewriter.txt From 6bc591c67e7bb1809248aac6d98be76854b25108 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Oct 2012 22:44:27 -0700 Subject: [PATCH 12/54] Reorganizing the code Signed-off-by: Leonardo de Moura --- mk_make.py | 6 ++++-- {lib => src/ast}/has_free_vars.cpp | 0 {lib => src/ast}/has_free_vars.h | 0 {lib => src/framework}/extension_model_converter.cpp | 0 {lib => src/framework}/extension_model_converter.h | 0 {lib => src/framework}/filter_model_converter.cpp | 0 {lib => src/framework}/filter_model_converter.h | 0 src/{model => old_params}/model_params.cpp | 0 src/{model => old_params}/model_params.h | 0 src/{pattern => parser_util}/pattern_validation.cpp | 0 src/{pattern => parser_util}/pattern_validation.h | 0 {lib => src/smt2parser}/smt2parser.cpp | 0 {lib => src/smt2parser}/smt2parser.h | 0 {lib => src/smt2parser}/smt2scanner.cpp | 0 {lib => src/smt2parser}/smt2scanner.h | 0 15 files changed, 4 insertions(+), 2 deletions(-) rename {lib => src/ast}/has_free_vars.cpp (100%) rename {lib => src/ast}/has_free_vars.h (100%) rename {lib => src/framework}/extension_model_converter.cpp (100%) rename {lib => src/framework}/extension_model_converter.h (100%) rename {lib => src/framework}/filter_model_converter.cpp (100%) rename {lib => src/framework}/filter_model_converter.h (100%) rename src/{model => old_params}/model_params.cpp (100%) rename src/{model => old_params}/model_params.h (100%) rename src/{pattern => parser_util}/pattern_validation.cpp (100%) rename src/{pattern => parser_util}/pattern_validation.h (100%) rename {lib => src/smt2parser}/smt2parser.cpp (100%) rename {lib => src/smt2parser}/smt2parser.h (100%) rename {lib => src/smt2parser}/smt2scanner.cpp (100%) rename {lib => src/smt2parser}/smt2scanner.h (100%) diff --git a/mk_make.py b/mk_make.py index 3500fac03..d52d423d8 100644 --- a/mk_make.py +++ b/mk_make.py @@ -37,6 +37,8 @@ add_lib('framework', ['util', 'ast', 'model', 'old_params', 'simplifier', 'rewri # code to the new tactic framework. add_lib('assertion_set', ['util', 'ast', 'framework', 'model', 'rewriter', 'old_params']) add_lib('normal_forms', ['util', 'ast', 'old_params', 'simplifier', 'rewriter', 'assertion_set', 'framework', 'model']) -add_lib('smt', ['util', 'ast', 'assertion_set']) -add_lib('pattern', ['util', 'ast']) add_lib('spc', ['util', 'ast', 'simplifier', 'pattern', 'model', 'old_params', 'normal_forms', 'rewriter']) +add_lib('parser_util', ['util', 'ast']) +add_lib('smt2parser', ['util', 'ast', 'framework', 'model', 'old_params', 'rewriter', 'parser_util']) +add_lib('pattern', ['util', 'ast', 'simplifier', 'old_params']) +add_lib('smt', ['util', 'ast', 'assertion_set']) diff --git a/lib/has_free_vars.cpp b/src/ast/has_free_vars.cpp similarity index 100% rename from lib/has_free_vars.cpp rename to src/ast/has_free_vars.cpp diff --git a/lib/has_free_vars.h b/src/ast/has_free_vars.h similarity index 100% rename from lib/has_free_vars.h rename to src/ast/has_free_vars.h diff --git a/lib/extension_model_converter.cpp b/src/framework/extension_model_converter.cpp similarity index 100% rename from lib/extension_model_converter.cpp rename to src/framework/extension_model_converter.cpp diff --git a/lib/extension_model_converter.h b/src/framework/extension_model_converter.h similarity index 100% rename from lib/extension_model_converter.h rename to src/framework/extension_model_converter.h diff --git a/lib/filter_model_converter.cpp b/src/framework/filter_model_converter.cpp similarity index 100% rename from lib/filter_model_converter.cpp rename to src/framework/filter_model_converter.cpp diff --git a/lib/filter_model_converter.h b/src/framework/filter_model_converter.h similarity index 100% rename from lib/filter_model_converter.h rename to src/framework/filter_model_converter.h diff --git a/src/model/model_params.cpp b/src/old_params/model_params.cpp similarity index 100% rename from src/model/model_params.cpp rename to src/old_params/model_params.cpp diff --git a/src/model/model_params.h b/src/old_params/model_params.h similarity index 100% rename from src/model/model_params.h rename to src/old_params/model_params.h diff --git a/src/pattern/pattern_validation.cpp b/src/parser_util/pattern_validation.cpp similarity index 100% rename from src/pattern/pattern_validation.cpp rename to src/parser_util/pattern_validation.cpp diff --git a/src/pattern/pattern_validation.h b/src/parser_util/pattern_validation.h similarity index 100% rename from src/pattern/pattern_validation.h rename to src/parser_util/pattern_validation.h diff --git a/lib/smt2parser.cpp b/src/smt2parser/smt2parser.cpp similarity index 100% rename from lib/smt2parser.cpp rename to src/smt2parser/smt2parser.cpp diff --git a/lib/smt2parser.h b/src/smt2parser/smt2parser.h similarity index 100% rename from lib/smt2parser.h rename to src/smt2parser/smt2parser.h diff --git a/lib/smt2scanner.cpp b/src/smt2parser/smt2scanner.cpp similarity index 100% rename from lib/smt2scanner.cpp rename to src/smt2parser/smt2scanner.cpp diff --git a/lib/smt2scanner.h b/src/smt2parser/smt2scanner.h similarity index 100% rename from lib/smt2scanner.h rename to src/smt2parser/smt2scanner.h From 4722fdfca56a66302a8e638e6a496e991ffdd90f Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 08:12:38 -0700 Subject: [PATCH 13/54] Reorganizing the code Signed-off-by: Leonardo de Moura --- {lib => src/assertion_set}/st2tactic.cpp | 0 {lib => src/assertion_set}/st2tactic.h | 0 {lib => src/parser_util}/cost_parser.cpp | 0 {lib => src/parser_util}/cost_parser.h | 0 {lib => src/parser_util}/scanner.cpp | 0 {lib => src/parser_util}/scanner.h | 0 {lib => src/parser_util}/simple_parser.cpp | 0 {lib => src/parser_util}/simple_parser.h | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename {lib => src/assertion_set}/st2tactic.cpp (100%) rename {lib => src/assertion_set}/st2tactic.h (100%) rename {lib => src/parser_util}/cost_parser.cpp (100%) rename {lib => src/parser_util}/cost_parser.h (100%) rename {lib => src/parser_util}/scanner.cpp (100%) rename {lib => src/parser_util}/scanner.h (100%) rename {lib => src/parser_util}/simple_parser.cpp (100%) rename {lib => src/parser_util}/simple_parser.h (100%) diff --git a/lib/st2tactic.cpp b/src/assertion_set/st2tactic.cpp similarity index 100% rename from lib/st2tactic.cpp rename to src/assertion_set/st2tactic.cpp diff --git a/lib/st2tactic.h b/src/assertion_set/st2tactic.h similarity index 100% rename from lib/st2tactic.h rename to src/assertion_set/st2tactic.h diff --git a/lib/cost_parser.cpp b/src/parser_util/cost_parser.cpp similarity index 100% rename from lib/cost_parser.cpp rename to src/parser_util/cost_parser.cpp diff --git a/lib/cost_parser.h b/src/parser_util/cost_parser.h similarity index 100% rename from lib/cost_parser.h rename to src/parser_util/cost_parser.h diff --git a/lib/scanner.cpp b/src/parser_util/scanner.cpp similarity index 100% rename from lib/scanner.cpp rename to src/parser_util/scanner.cpp diff --git a/lib/scanner.h b/src/parser_util/scanner.h similarity index 100% rename from lib/scanner.h rename to src/parser_util/scanner.h diff --git a/lib/simple_parser.cpp b/src/parser_util/simple_parser.cpp similarity index 100% rename from lib/simple_parser.cpp rename to src/parser_util/simple_parser.cpp diff --git a/lib/simple_parser.h b/src/parser_util/simple_parser.h similarity index 100% rename from lib/simple_parser.h rename to src/parser_util/simple_parser.h From add684d8e91702daf342b4325eff6bd6d63a3eea Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 13:32:12 -0700 Subject: [PATCH 14/54] checkpoint Signed-off-by: Leonardo de Moura --- mk_make.py | 47 ++++++++---- mk_util.py | 43 ++++++++++- {lib => src/api_headers}/z3.h | 0 {lib => src/api_headers}/z3_api.h | 0 {lib => src/api_headers}/z3_internal_types.h | 0 {lib => src/api_headers}/z3_macros.h | 0 {lib => src/api_headers}/z3_v1.h | 0 {lib => src/ast}/expr2var.cpp | 0 {lib => src/ast}/expr2var.h | 0 {lib => src/ast}/expr_abstract.cpp | 0 {lib => src/ast}/expr_abstract.h | 0 {lib => src/ast}/expr_functors.cpp | 0 {lib => src/ast}/expr_functors.h | 0 src/{spc => ast}/expr_stat.cpp | 0 src/{spc => ast}/expr_stat.h | 0 {lib => src/ast}/static_features.cpp | 0 {lib => src/ast}/static_features.h | 0 {lib => src/ast}/trail.h | 0 {lib => src/bit_blaster}/bit_blaster.cpp | 0 {lib => src/bit_blaster}/bit_blaster.h | 0 .../bit_blaster_model_converter.cpp | 0 .../bit_blaster_model_converter.h | 0 .../bit_blaster}/bit_blaster_rewriter.cpp | 0 .../bit_blaster}/bit_blaster_rewriter.h | 0 .../bit_blaster}/bit_blaster_tactic.cpp | 0 {lib => src/bit_blaster}/bit_blaster_tactic.h | 0 {lib => src/bit_blaster}/bit_blaster_tpl.h | 0 .../bit_blaster}/bit_blaster_tpl_def.h | 0 .../bit_blaster}/bv1_blaster_tactic.cpp | 0 {lib => src/bit_blaster}/bv1_blaster_tactic.h | 0 .../bit_blaster}/eager_bit_blaster.cpp | 0 {lib => src/bit_blaster}/eager_bit_blaster.h | 0 {lib => src/dead}/expr_weight.cpp | 0 {lib => src/dead}/expr_weight.h | 0 {lib => src/dead}/smt_euf.cpp | 0 {lib => src/dead}/smt_euf.h | 0 {lib => src/euclid}/euclidean_solver.cpp | 0 {lib => src/euclid}/euclidean_solver.h | 0 {lib => src/framework}/goal_shared_occs.cpp | 0 {lib => src/framework}/goal_shared_occs.h | 0 {lib => src/framework}/strategic_solver.cpp | 0 {lib => src/framework}/strategic_solver.h | 0 {lib => src/grobner}/grobner.cpp | 0 {lib => src/grobner}/grobner.h | 0 {lib => src/macros}/macro_finder.cpp | 0 {lib => src/macros}/macro_finder.h | 0 {lib => src/macros}/macro_manager.cpp | 0 {lib => src/macros}/macro_manager.h | 0 {lib => src/macros}/macro_substitution.cpp | 0 {lib => src/macros}/macro_substitution.h | 0 {lib => src/macros}/macro_util.cpp | 0 {lib => src/macros}/macro_util.h | 0 {lib => src/macros}/quasi_macros.cpp | 0 {lib => src/macros}/quasi_macros.h | 0 src/{old_params => model}/model_params.cpp | 0 src/{old_params => model}/model_params.h | 0 src/muz_qe/README | 1 + {lib => src/muz_qe}/arith_bounds_tactic.cpp | 0 {lib => src/muz_qe}/arith_bounds_tactic.h | 0 {lib => src/muz_qe}/dl_base.cpp | 0 {lib => src/muz_qe}/dl_base.h | 0 {lib => src/muz_qe}/dl_bmc_engine.cpp | 0 {lib => src/muz_qe}/dl_bmc_engine.h | 0 {lib => src/muz_qe}/dl_bound_relation.cpp | 0 {lib => src/muz_qe}/dl_bound_relation.h | 0 {lib => src/muz_qe}/dl_check_table.cpp | 0 {lib => src/muz_qe}/dl_check_table.h | 0 {lib => src/muz_qe}/dl_cmds.cpp | 0 {lib => src/muz_qe}/dl_cmds.h | 0 {lib => src/muz_qe}/dl_compiler.cpp | 0 {lib => src/muz_qe}/dl_compiler.h | 0 {lib => src/muz_qe}/dl_context.cpp | 0 {lib => src/muz_qe}/dl_context.h | 0 {lib => src/muz_qe}/dl_costs.cpp | 0 {lib => src/muz_qe}/dl_costs.h | 0 {lib => src/muz_qe}/dl_external_relation.cpp | 0 {lib => src/muz_qe}/dl_external_relation.h | 0 .../muz_qe}/dl_finite_product_relation.cpp | 0 .../muz_qe}/dl_finite_product_relation.h | 0 {lib => src/muz_qe}/dl_instruction.cpp | 0 {lib => src/muz_qe}/dl_instruction.h | 0 {lib => src/muz_qe}/dl_interval_relation.cpp | 0 {lib => src/muz_qe}/dl_interval_relation.h | 0 {lib => src/muz_qe}/dl_mk_bit_blast.cpp | 0 {lib => src/muz_qe}/dl_mk_bit_blast.h | 0 {lib => src/muz_qe}/dl_mk_coalesce.cpp | 0 {lib => src/muz_qe}/dl_mk_coalesce.h | 0 {lib => src/muz_qe}/dl_mk_coi_filter.cpp | 0 {lib => src/muz_qe}/dl_mk_coi_filter.h | 0 {lib => src/muz_qe}/dl_mk_explanations.cpp | 0 {lib => src/muz_qe}/dl_mk_explanations.h | 0 {lib => src/muz_qe}/dl_mk_filter_rules.cpp | 0 {lib => src/muz_qe}/dl_mk_filter_rules.h | 0 .../muz_qe}/dl_mk_interp_tail_simplifier.cpp | 0 .../muz_qe}/dl_mk_interp_tail_simplifier.h | 0 {lib => src/muz_qe}/dl_mk_magic_sets.cpp | 0 {lib => src/muz_qe}/dl_mk_magic_sets.h | 0 {lib => src/muz_qe}/dl_mk_partial_equiv.cpp | 0 {lib => src/muz_qe}/dl_mk_partial_equiv.h | 0 {lib => src/muz_qe}/dl_mk_rule_inliner.cpp | 0 {lib => src/muz_qe}/dl_mk_rule_inliner.h | 0 .../muz_qe}/dl_mk_similarity_compressor.cpp | 0 .../muz_qe}/dl_mk_similarity_compressor.h | 0 {lib => src/muz_qe}/dl_mk_simple_joins.cpp | 0 {lib => src/muz_qe}/dl_mk_simple_joins.h | 0 {lib => src/muz_qe}/dl_mk_slice.cpp | 0 {lib => src/muz_qe}/dl_mk_slice.h | 0 .../muz_qe}/dl_mk_subsumption_checker.cpp | 0 .../muz_qe}/dl_mk_subsumption_checker.h | 0 .../muz_qe}/dl_mk_unbound_compressor.cpp | 0 .../muz_qe}/dl_mk_unbound_compressor.h | 0 {lib => src/muz_qe}/dl_mk_unfold.cpp | 0 {lib => src/muz_qe}/dl_mk_unfold.h | 0 {lib => src/muz_qe}/dl_product_relation.cpp | 0 {lib => src/muz_qe}/dl_product_relation.h | 0 {lib => src/muz_qe}/dl_relation_manager.cpp | 0 {lib => src/muz_qe}/dl_relation_manager.h | 0 {lib => src/muz_qe}/dl_rule.cpp | 0 {lib => src/muz_qe}/dl_rule.h | 0 {lib => src/muz_qe}/dl_rule_set.cpp | 0 {lib => src/muz_qe}/dl_rule_set.h | 0 .../muz_qe}/dl_rule_subsumption_index.cpp | 0 .../muz_qe}/dl_rule_subsumption_index.h | 0 {lib => src/muz_qe}/dl_rule_transformer.cpp | 0 {lib => src/muz_qe}/dl_rule_transformer.h | 0 {lib => src/muz_qe}/dl_sieve_relation.cpp | 0 {lib => src/muz_qe}/dl_sieve_relation.h | 0 src/{muz => muz_qe}/dl_simplifier_plugin.cpp | 0 src/{muz => muz_qe}/dl_simplifier_plugin.h | 0 {lib => src/muz_qe}/dl_skip_table.cpp | 0 {lib => src/muz_qe}/dl_skip_table.h | 0 {lib => src/muz_qe}/dl_smt_relation.cpp | 0 {lib => src/muz_qe}/dl_smt_relation.h | 0 {lib => src/muz_qe}/dl_sparse_table.cpp | 0 {lib => src/muz_qe}/dl_sparse_table.h | 0 {lib => src/muz_qe}/dl_table.cpp | 0 {lib => src/muz_qe}/dl_table.h | 0 {lib => src/muz_qe}/dl_table_plugin.h | 0 {lib => src/muz_qe}/dl_table_relation.cpp | 0 {lib => src/muz_qe}/dl_table_relation.h | 0 {lib => src/muz_qe}/dl_util.cpp | 0 {lib => src/muz_qe}/dl_util.h | 0 {lib => src/muz_qe}/dl_vector_relation.h | 0 .../muz_qe}/horn_subsume_model_converter.cpp | 1 + .../muz_qe}/horn_subsume_model_converter.h | 0 {lib => src/muz_qe}/model2expr.cpp | 0 {lib => src/muz_qe}/model2expr.h | 0 {lib => src/muz_qe}/nlarith_util.cpp | 0 {lib => src/muz_qe}/nlarith_util.h | 0 {lib => src/muz_qe}/pdr_context.cpp | 0 {lib => src/muz_qe}/pdr_context.h | 0 {lib => src/muz_qe}/pdr_dl_interface.cpp | 0 {lib => src/muz_qe}/pdr_dl_interface.h | 0 {lib => src/muz_qe}/pdr_farkas_learner.cpp | 3 +- {lib => src/muz_qe}/pdr_farkas_learner.h | 0 {lib => src/muz_qe}/pdr_generalizers.cpp | 0 {lib => src/muz_qe}/pdr_generalizers.h | 0 .../muz_qe}/pdr_interpolant_provider.cpp | 0 .../muz_qe}/pdr_interpolant_provider.h | 0 {lib => src/muz_qe}/pdr_manager.cpp | 0 {lib => src/muz_qe}/pdr_manager.h | 0 {lib => src/muz_qe}/pdr_prop_solver.cpp | 0 {lib => src/muz_qe}/pdr_prop_solver.h | 0 {lib => src/muz_qe}/pdr_quantifiers.cpp | 0 {lib => src/muz_qe}/pdr_quantifiers.h | 0 {lib => src/muz_qe}/pdr_reachable_cache.cpp | 0 {lib => src/muz_qe}/pdr_reachable_cache.h | 0 .../muz_qe}/pdr_smt_context_manager.cpp | 0 {lib => src/muz_qe}/pdr_smt_context_manager.h | 0 {lib => src/muz_qe}/pdr_sym_mux.cpp | 0 {lib => src/muz_qe}/pdr_sym_mux.h | 0 {lib => src/muz_qe}/pdr_util.cpp | 0 {lib => src/muz_qe}/pdr_util.h | 0 {lib => src/muz_qe}/proof_utils.cpp | 0 {lib => src/muz_qe}/proof_utils.h | 0 {lib => src/muz_qe}/qe.cpp | 0 {lib => src/muz_qe}/qe.h | 0 {lib => src/muz_qe}/qe_arith_plugin.cpp | 0 {lib => src/muz_qe}/qe_array_plugin.cpp | 0 {lib => src/muz_qe}/qe_bool_plugin.cpp | 0 {lib => src/muz_qe}/qe_bv_plugin.cpp | 0 {lib => src/muz_qe}/qe_cmd.cpp | 0 {lib => src/muz_qe}/qe_cmd.h | 0 {lib => src/muz_qe}/qe_datatype_plugin.cpp | 0 {lib => src/muz_qe}/qe_dl_plugin.cpp | 0 {lib => src/muz_qe}/qe_lite.cpp | 0 {lib => src/muz_qe}/qe_lite.h | 0 {lib => src/muz_qe}/qe_sat_tactic.cpp | 0 {lib => src/muz_qe}/qe_sat_tactic.h | 0 {lib => src/muz_qe}/qe_tactic.cpp | 0 {lib => src/muz_qe}/qe_tactic.h | 0 .../muz_qe}/replace_proof_converter.cpp | 0 {lib => src/muz_qe}/replace_proof_converter.h | 0 .../muz_qe}/unit_subsumption_tactic.cpp | 0 {lib => src/muz_qe}/unit_subsumption_tactic.h | 0 {lib => src/normal_forms}/elim_term_ite.cpp | 0 {lib => src/normal_forms}/elim_term_ite.h | 0 src/pattern/pattern_inference.cpp | 11 +-- src/pattern/pattern_inference.h | 14 +++- {lib => src/proof_checker}/proof_checker.cpp | 0 {lib => src/proof_checker}/proof_checker.h | 0 {lib => src/rewriter}/factor_rewriter.cpp | 0 {lib => src/rewriter}/factor_rewriter.h | 0 {lib => src/rewriter}/quant_hoist.cpp | 0 {lib => src/rewriter}/quant_hoist.h | 0 src/{sat_core => sat}/sat_types.h | 0 .../sat_strategy}/assertion_set2sat.cpp | 74 +++++++++++++++++++ {lib => src/sat_strategy}/assertion_set2sat.h | 3 + .../sat_strategy}/sat_solver_strategy.cpp | 0 .../sat_strategy}/sat_solver_strategy.h | 0 {lib => src/sat_tactic}/atom2bool_var.cpp | 5 -- {lib => src/sat_tactic}/atom2bool_var.h | 2 - {lib => src/sat_tactic}/goal2sat.cpp | 0 {lib => src/sat_tactic}/goal2sat.h | 0 {lib => src/sat_tactic}/sat_tactic.cpp | 0 {lib => src/sat_tactic}/sat_tactic.h | 0 .../arith_simplifier_params.cpp | 0 .../arith_simplifier_params.h | 0 {lib => src/simplifier}/bit2int.cpp | 0 {lib => src/simplifier}/bit2int.h | 0 {lib => src/simplifier}/bv_elim.cpp | 0 {lib => src/simplifier}/bv_elim.h | 0 .../bv_simplifier_params.h | 0 {lib => src/simplifier}/distribute_forall.cpp | 0 {lib => src/simplifier}/distribute_forall.h | 0 {lib => src/simplifier}/elim_bounds.cpp | 0 {lib => src/simplifier}/elim_bounds.h | 0 {lib => src/simplifier}/inj_axiom.cpp | 0 {lib => src/simplifier}/inj_axiom.h | 0 .../simplifier}/maximise_ac_sharing.cpp | 0 {lib => src/simplifier}/maximise_ac_sharing.h | 0 {lib => src/simplifier}/pull_ite_tree.cpp | 0 {lib => src/simplifier}/pull_ite_tree.h | 0 .../theory_array_params.h | 0 {lib => src/smt}/arith_eq_adapter.cpp | 0 {lib => src/smt}/arith_eq_adapter.h | 0 {lib => src/smt}/arith_eq_solver.cpp | 0 {lib => src/smt}/arith_eq_solver.h | 0 {lib => src/smt}/arith_solver_plugin.cpp | 0 {lib => src/smt}/arith_solver_plugin.h | 0 {lib => src/smt}/asserted_formulas.cpp | 17 +++-- {lib => src/smt}/asserted_formulas.h | 30 ++++---- {lib => src/smt}/cached_var_subst.cpp | 0 {lib => src/smt}/cached_var_subst.h | 0 {lib => src/smt}/cost_evaluator.cpp | 0 {lib => src/smt}/cost_evaluator.h | 0 src/{pattern => smt}/database.h | 0 src/{pattern => smt}/database.smt | 0 {lib => src/smt}/demodulator.cpp | 0 {lib => src/smt}/demodulator.h | 0 {lib => src/smt}/dyn_ack.cpp | 0 {lib => src/smt}/dyn_ack.h | 0 {lib => src/smt}/expr_context_simplifier.cpp | 0 {lib => src/smt}/expr_context_simplifier.h | 0 {lib => src/smt}/fingerprints.cpp | 0 {lib => src/smt}/fingerprints.h | 0 {lib => src/smt}/mam.cpp | 0 {lib => src/smt}/mam.h | 0 {lib => src/smt}/qi_queue.cpp | 0 {lib => src/smt}/qi_queue.h | 0 {lib => src/smt}/smt_almost_cg_table.cpp | 0 {lib => src/smt}/smt_almost_cg_table.h | 0 {lib => src/smt}/smt_b_justification.h | 0 {lib => src/smt}/smt_bool_var_data.h | 0 {lib => src/smt}/smt_case_split_queue.cpp | 0 {lib => src/smt}/smt_case_split_queue.h | 0 {lib => src/smt}/smt_cg_table.cpp | 0 {lib => src/smt}/smt_cg_table.h | 0 {lib => src/smt}/smt_checker.cpp | 0 {lib => src/smt}/smt_checker.h | 0 {lib => src/smt}/smt_clause.cpp | 0 {lib => src/smt}/smt_clause.h | 0 {lib => src/smt}/smt_conflict_resolution.cpp | 0 {lib => src/smt}/smt_conflict_resolution.h | 0 {lib => src/smt}/smt_context.cpp | 0 {lib => src/smt}/smt_context.h | 0 {lib => src/smt}/smt_context_inv.cpp | 0 {lib => src/smt}/smt_context_pp.cpp | 0 {lib => src/smt}/smt_context_stat.cpp | 0 {lib => src/smt}/smt_enode.cpp | 0 {lib => src/smt}/smt_enode.h | 0 {lib => src/smt}/smt_eq_justification.h | 0 {lib => src/smt}/smt_failure.h | 0 .../smt}/smt_for_each_relevant_expr.cpp | 0 {lib => src/smt}/smt_for_each_relevant_expr.h | 0 {lib => src/smt}/smt_internalizer.cpp | 0 {lib => src/smt}/smt_justification.cpp | 0 {lib => src/smt}/smt_justification.h | 0 {lib => src/smt}/smt_literal.cpp | 0 {lib => src/smt}/smt_literal.h | 0 {lib => src/smt}/smt_model_checker.cpp | 0 {lib => src/smt}/smt_model_checker.h | 0 {lib => src/smt}/smt_model_finder.cpp | 0 {lib => src/smt}/smt_model_finder.h | 0 {lib => src/smt}/smt_model_generator.cpp | 0 {lib => src/smt}/smt_model_generator.h | 0 {lib => src/smt}/smt_quantifier.cpp | 0 {lib => src/smt}/smt_quantifier.h | 0 {lib => src/smt}/smt_quantifier_instances.h | 0 {lib => src/smt}/smt_quantifier_stat.cpp | 0 {lib => src/smt}/smt_quantifier_stat.h | 0 {lib => src/smt}/smt_quick_checker.cpp | 0 {lib => src/smt}/smt_quick_checker.h | 0 {lib => src/smt}/smt_relevancy.cpp | 0 {lib => src/smt}/smt_relevancy.h | 0 {lib => src/smt}/smt_setup.cpp | 0 {lib => src/smt}/smt_setup.h | 0 src/smt/smt_solver_strategy.cpp | 2 + {lib => src/smt}/smt_statistics.cpp | 0 {lib => src/smt}/smt_statistics.h | 0 {lib => src/smt}/smt_theory.cpp | 0 {lib => src/smt}/smt_theory.h | 0 {lib => src/smt}/smt_theory_var_list.h | 0 {lib => src/smt}/smt_types.h | 0 {lib => src/smt}/solver_plugin.h | 0 {lib => src/smt}/theory_arith.cpp | 0 {lib => src/smt}/theory_arith.h | 0 {lib => src/smt}/theory_arith_aux.h | 0 {lib => src/smt}/theory_arith_core.h | 0 {lib => src/smt}/theory_arith_def.h | 0 {lib => src/smt}/theory_arith_eq.h | 0 {lib => src/smt}/theory_arith_int.h | 0 {lib => src/smt}/theory_arith_inv.h | 0 {lib => src/smt}/theory_arith_nl.h | 0 {lib => src/smt}/theory_arith_pp.h | 0 {lib => src/smt}/theory_array.cpp | 0 {lib => src/smt}/theory_array.h | 0 {lib => src/smt}/theory_array_base.cpp | 0 {lib => src/smt}/theory_array_base.h | 0 {lib => src/smt}/theory_array_full.cpp | 0 {lib => src/smt}/theory_array_full.h | 0 {lib => src/smt}/theory_bv.cpp | 0 {lib => src/smt}/theory_bv.h | 0 {lib => src/smt}/theory_datatype.cpp | 0 {lib => src/smt}/theory_datatype.h | 0 {lib => src/smt}/theory_dense_diff_logic.cpp | 0 {lib => src/smt}/theory_dense_diff_logic.h | 0 .../smt}/theory_dense_diff_logic_def.h | 0 {lib => src/smt}/theory_diff_logic.cpp | 0 {lib => src/smt}/theory_diff_logic.h | 0 {lib => src/smt}/theory_diff_logic_def.h | 0 {lib => src/smt}/theory_dl.cpp | 0 {lib => src/smt}/theory_dl.h | 0 {lib => src/smt}/theory_dummy.cpp | 0 {lib => src/smt}/theory_dummy.h | 0 {lib => src/smt}/theory_instgen.cpp | 0 {lib => src/smt}/theory_instgen.h | 0 {lib => src/smt}/theory_seq_empty.h | 0 {lib => src/smt}/user_rewriter.cpp | 0 {lib => src/smt}/user_rewriter.h | 0 {lib => src/smt}/uses_theory.cpp | 0 {lib => src/smt}/uses_theory.h | 0 {lib => src/smt}/watch_list.cpp | 0 {lib => src/smt}/watch_list.h | 0 .../expr_pattern_match.cpp | 0 .../expr_pattern_match.h | 7 +- {lib => src/smtparser}/smtlib.cpp | 0 {lib => src/smtparser}/smtlib.h | 0 {lib => src/smtparser}/smtlib_solver.cpp | 2 +- {lib => src/smtparser}/smtlib_solver.h | 0 {lib => src/smtparser}/smtparser.cpp | 4 +- {lib => src/smtparser}/smtparser.h | 0 src/{spc => substitution}/expr_offset.h | 0 src/{spc => substitution}/expr_offset_map.h | 0 src/{spc => substitution}/matcher.cpp | 0 src/{spc => substitution}/matcher.h | 0 src/{spc => substitution}/substitution.cpp | 0 src/{spc => substitution}/substitution.h | 0 .../substitution_tree.cpp | 0 src/{spc => substitution}/substitution_tree.h | 0 src/{spc => substitution}/unifier.cpp | 0 src/{spc => substitution}/unifier.h | 0 src/{spc => substitution}/var_offset_map.h | 0 {lib => src/util}/diff_logic.h | 0 src/{sat => util}/luby.cpp | 0 src/{sat => util}/luby.h | 0 {lib => src/util}/union_find.h | 0 377 files changed, 204 insertions(+), 62 deletions(-) rename {lib => src/api_headers}/z3.h (100%) rename {lib => src/api_headers}/z3_api.h (100%) rename {lib => src/api_headers}/z3_internal_types.h (100%) rename {lib => src/api_headers}/z3_macros.h (100%) rename {lib => src/api_headers}/z3_v1.h (100%) rename {lib => src/ast}/expr2var.cpp (100%) rename {lib => src/ast}/expr2var.h (100%) rename {lib => src/ast}/expr_abstract.cpp (100%) rename {lib => src/ast}/expr_abstract.h (100%) rename {lib => src/ast}/expr_functors.cpp (100%) rename {lib => src/ast}/expr_functors.h (100%) rename src/{spc => ast}/expr_stat.cpp (100%) rename src/{spc => ast}/expr_stat.h (100%) rename {lib => src/ast}/static_features.cpp (100%) rename {lib => src/ast}/static_features.h (100%) rename {lib => src/ast}/trail.h (100%) rename {lib => src/bit_blaster}/bit_blaster.cpp (100%) rename {lib => src/bit_blaster}/bit_blaster.h (100%) rename {lib => src/bit_blaster}/bit_blaster_model_converter.cpp (100%) rename {lib => src/bit_blaster}/bit_blaster_model_converter.h (100%) rename {lib => src/bit_blaster}/bit_blaster_rewriter.cpp (100%) rename {lib => src/bit_blaster}/bit_blaster_rewriter.h (100%) rename {lib => src/bit_blaster}/bit_blaster_tactic.cpp (100%) rename {lib => src/bit_blaster}/bit_blaster_tactic.h (100%) rename {lib => src/bit_blaster}/bit_blaster_tpl.h (100%) rename {lib => src/bit_blaster}/bit_blaster_tpl_def.h (100%) rename {lib => src/bit_blaster}/bv1_blaster_tactic.cpp (100%) rename {lib => src/bit_blaster}/bv1_blaster_tactic.h (100%) rename {lib => src/bit_blaster}/eager_bit_blaster.cpp (100%) rename {lib => src/bit_blaster}/eager_bit_blaster.h (100%) rename {lib => src/dead}/expr_weight.cpp (100%) rename {lib => src/dead}/expr_weight.h (100%) rename {lib => src/dead}/smt_euf.cpp (100%) rename {lib => src/dead}/smt_euf.h (100%) rename {lib => src/euclid}/euclidean_solver.cpp (100%) rename {lib => src/euclid}/euclidean_solver.h (100%) rename {lib => src/framework}/goal_shared_occs.cpp (100%) rename {lib => src/framework}/goal_shared_occs.h (100%) rename {lib => src/framework}/strategic_solver.cpp (100%) rename {lib => src/framework}/strategic_solver.h (100%) rename {lib => src/grobner}/grobner.cpp (100%) rename {lib => src/grobner}/grobner.h (100%) rename {lib => src/macros}/macro_finder.cpp (100%) rename {lib => src/macros}/macro_finder.h (100%) rename {lib => src/macros}/macro_manager.cpp (100%) rename {lib => src/macros}/macro_manager.h (100%) rename {lib => src/macros}/macro_substitution.cpp (100%) rename {lib => src/macros}/macro_substitution.h (100%) rename {lib => src/macros}/macro_util.cpp (100%) rename {lib => src/macros}/macro_util.h (100%) rename {lib => src/macros}/quasi_macros.cpp (100%) rename {lib => src/macros}/quasi_macros.h (100%) rename src/{old_params => model}/model_params.cpp (100%) rename src/{old_params => model}/model_params.h (100%) create mode 100644 src/muz_qe/README rename {lib => src/muz_qe}/arith_bounds_tactic.cpp (100%) rename {lib => src/muz_qe}/arith_bounds_tactic.h (100%) rename {lib => src/muz_qe}/dl_base.cpp (100%) rename {lib => src/muz_qe}/dl_base.h (100%) rename {lib => src/muz_qe}/dl_bmc_engine.cpp (100%) rename {lib => src/muz_qe}/dl_bmc_engine.h (100%) rename {lib => src/muz_qe}/dl_bound_relation.cpp (100%) rename {lib => src/muz_qe}/dl_bound_relation.h (100%) rename {lib => src/muz_qe}/dl_check_table.cpp (100%) rename {lib => src/muz_qe}/dl_check_table.h (100%) rename {lib => src/muz_qe}/dl_cmds.cpp (100%) rename {lib => src/muz_qe}/dl_cmds.h (100%) rename {lib => src/muz_qe}/dl_compiler.cpp (100%) rename {lib => src/muz_qe}/dl_compiler.h (100%) rename {lib => src/muz_qe}/dl_context.cpp (100%) rename {lib => src/muz_qe}/dl_context.h (100%) rename {lib => src/muz_qe}/dl_costs.cpp (100%) rename {lib => src/muz_qe}/dl_costs.h (100%) rename {lib => src/muz_qe}/dl_external_relation.cpp (100%) rename {lib => src/muz_qe}/dl_external_relation.h (100%) rename {lib => src/muz_qe}/dl_finite_product_relation.cpp (100%) rename {lib => src/muz_qe}/dl_finite_product_relation.h (100%) rename {lib => src/muz_qe}/dl_instruction.cpp (100%) rename {lib => src/muz_qe}/dl_instruction.h (100%) rename {lib => src/muz_qe}/dl_interval_relation.cpp (100%) rename {lib => src/muz_qe}/dl_interval_relation.h (100%) rename {lib => src/muz_qe}/dl_mk_bit_blast.cpp (100%) rename {lib => src/muz_qe}/dl_mk_bit_blast.h (100%) rename {lib => src/muz_qe}/dl_mk_coalesce.cpp (100%) rename {lib => src/muz_qe}/dl_mk_coalesce.h (100%) rename {lib => src/muz_qe}/dl_mk_coi_filter.cpp (100%) rename {lib => src/muz_qe}/dl_mk_coi_filter.h (100%) rename {lib => src/muz_qe}/dl_mk_explanations.cpp (100%) rename {lib => src/muz_qe}/dl_mk_explanations.h (100%) rename {lib => src/muz_qe}/dl_mk_filter_rules.cpp (100%) rename {lib => src/muz_qe}/dl_mk_filter_rules.h (100%) rename {lib => src/muz_qe}/dl_mk_interp_tail_simplifier.cpp (100%) rename {lib => src/muz_qe}/dl_mk_interp_tail_simplifier.h (100%) rename {lib => src/muz_qe}/dl_mk_magic_sets.cpp (100%) rename {lib => src/muz_qe}/dl_mk_magic_sets.h (100%) rename {lib => src/muz_qe}/dl_mk_partial_equiv.cpp (100%) rename {lib => src/muz_qe}/dl_mk_partial_equiv.h (100%) rename {lib => src/muz_qe}/dl_mk_rule_inliner.cpp (100%) rename {lib => src/muz_qe}/dl_mk_rule_inliner.h (100%) rename {lib => src/muz_qe}/dl_mk_similarity_compressor.cpp (100%) rename {lib => src/muz_qe}/dl_mk_similarity_compressor.h (100%) rename {lib => src/muz_qe}/dl_mk_simple_joins.cpp (100%) rename {lib => src/muz_qe}/dl_mk_simple_joins.h (100%) rename {lib => src/muz_qe}/dl_mk_slice.cpp (100%) rename {lib => src/muz_qe}/dl_mk_slice.h (100%) rename {lib => src/muz_qe}/dl_mk_subsumption_checker.cpp (100%) rename {lib => src/muz_qe}/dl_mk_subsumption_checker.h (100%) rename {lib => src/muz_qe}/dl_mk_unbound_compressor.cpp (100%) rename {lib => src/muz_qe}/dl_mk_unbound_compressor.h (100%) rename {lib => src/muz_qe}/dl_mk_unfold.cpp (100%) rename {lib => src/muz_qe}/dl_mk_unfold.h (100%) rename {lib => src/muz_qe}/dl_product_relation.cpp (100%) rename {lib => src/muz_qe}/dl_product_relation.h (100%) rename {lib => src/muz_qe}/dl_relation_manager.cpp (100%) rename {lib => src/muz_qe}/dl_relation_manager.h (100%) rename {lib => src/muz_qe}/dl_rule.cpp (100%) rename {lib => src/muz_qe}/dl_rule.h (100%) rename {lib => src/muz_qe}/dl_rule_set.cpp (100%) rename {lib => src/muz_qe}/dl_rule_set.h (100%) rename {lib => src/muz_qe}/dl_rule_subsumption_index.cpp (100%) rename {lib => src/muz_qe}/dl_rule_subsumption_index.h (100%) rename {lib => src/muz_qe}/dl_rule_transformer.cpp (100%) rename {lib => src/muz_qe}/dl_rule_transformer.h (100%) rename {lib => src/muz_qe}/dl_sieve_relation.cpp (100%) rename {lib => src/muz_qe}/dl_sieve_relation.h (100%) rename src/{muz => muz_qe}/dl_simplifier_plugin.cpp (100%) rename src/{muz => muz_qe}/dl_simplifier_plugin.h (100%) rename {lib => src/muz_qe}/dl_skip_table.cpp (100%) rename {lib => src/muz_qe}/dl_skip_table.h (100%) rename {lib => src/muz_qe}/dl_smt_relation.cpp (100%) rename {lib => src/muz_qe}/dl_smt_relation.h (100%) rename {lib => src/muz_qe}/dl_sparse_table.cpp (100%) rename {lib => src/muz_qe}/dl_sparse_table.h (100%) rename {lib => src/muz_qe}/dl_table.cpp (100%) rename {lib => src/muz_qe}/dl_table.h (100%) rename {lib => src/muz_qe}/dl_table_plugin.h (100%) rename {lib => src/muz_qe}/dl_table_relation.cpp (100%) rename {lib => src/muz_qe}/dl_table_relation.h (100%) rename {lib => src/muz_qe}/dl_util.cpp (100%) rename {lib => src/muz_qe}/dl_util.h (100%) rename {lib => src/muz_qe}/dl_vector_relation.h (100%) rename {lib => src/muz_qe}/horn_subsume_model_converter.cpp (99%) rename {lib => src/muz_qe}/horn_subsume_model_converter.h (100%) rename {lib => src/muz_qe}/model2expr.cpp (100%) rename {lib => src/muz_qe}/model2expr.h (100%) rename {lib => src/muz_qe}/nlarith_util.cpp (100%) rename {lib => src/muz_qe}/nlarith_util.h (100%) rename {lib => src/muz_qe}/pdr_context.cpp (100%) rename {lib => src/muz_qe}/pdr_context.h (100%) rename {lib => src/muz_qe}/pdr_dl_interface.cpp (100%) rename {lib => src/muz_qe}/pdr_dl_interface.h (100%) rename {lib => src/muz_qe}/pdr_farkas_learner.cpp (99%) rename {lib => src/muz_qe}/pdr_farkas_learner.h (100%) rename {lib => src/muz_qe}/pdr_generalizers.cpp (100%) rename {lib => src/muz_qe}/pdr_generalizers.h (100%) rename {lib => src/muz_qe}/pdr_interpolant_provider.cpp (100%) rename {lib => src/muz_qe}/pdr_interpolant_provider.h (100%) rename {lib => src/muz_qe}/pdr_manager.cpp (100%) rename {lib => src/muz_qe}/pdr_manager.h (100%) rename {lib => src/muz_qe}/pdr_prop_solver.cpp (100%) rename {lib => src/muz_qe}/pdr_prop_solver.h (100%) rename {lib => src/muz_qe}/pdr_quantifiers.cpp (100%) rename {lib => src/muz_qe}/pdr_quantifiers.h (100%) rename {lib => src/muz_qe}/pdr_reachable_cache.cpp (100%) rename {lib => src/muz_qe}/pdr_reachable_cache.h (100%) rename {lib => src/muz_qe}/pdr_smt_context_manager.cpp (100%) rename {lib => src/muz_qe}/pdr_smt_context_manager.h (100%) rename {lib => src/muz_qe}/pdr_sym_mux.cpp (100%) rename {lib => src/muz_qe}/pdr_sym_mux.h (100%) rename {lib => src/muz_qe}/pdr_util.cpp (100%) rename {lib => src/muz_qe}/pdr_util.h (100%) rename {lib => src/muz_qe}/proof_utils.cpp (100%) rename {lib => src/muz_qe}/proof_utils.h (100%) rename {lib => src/muz_qe}/qe.cpp (100%) rename {lib => src/muz_qe}/qe.h (100%) rename {lib => src/muz_qe}/qe_arith_plugin.cpp (100%) rename {lib => src/muz_qe}/qe_array_plugin.cpp (100%) rename {lib => src/muz_qe}/qe_bool_plugin.cpp (100%) rename {lib => src/muz_qe}/qe_bv_plugin.cpp (100%) rename {lib => src/muz_qe}/qe_cmd.cpp (100%) rename {lib => src/muz_qe}/qe_cmd.h (100%) rename {lib => src/muz_qe}/qe_datatype_plugin.cpp (100%) rename {lib => src/muz_qe}/qe_dl_plugin.cpp (100%) rename {lib => src/muz_qe}/qe_lite.cpp (100%) rename {lib => src/muz_qe}/qe_lite.h (100%) rename {lib => src/muz_qe}/qe_sat_tactic.cpp (100%) rename {lib => src/muz_qe}/qe_sat_tactic.h (100%) rename {lib => src/muz_qe}/qe_tactic.cpp (100%) rename {lib => src/muz_qe}/qe_tactic.h (100%) rename {lib => src/muz_qe}/replace_proof_converter.cpp (100%) rename {lib => src/muz_qe}/replace_proof_converter.h (100%) rename {lib => src/muz_qe}/unit_subsumption_tactic.cpp (100%) rename {lib => src/muz_qe}/unit_subsumption_tactic.h (100%) rename {lib => src/normal_forms}/elim_term_ite.cpp (100%) rename {lib => src/normal_forms}/elim_term_ite.h (100%) rename {lib => src/proof_checker}/proof_checker.cpp (100%) rename {lib => src/proof_checker}/proof_checker.h (100%) rename {lib => src/rewriter}/factor_rewriter.cpp (100%) rename {lib => src/rewriter}/factor_rewriter.h (100%) rename {lib => src/rewriter}/quant_hoist.cpp (100%) rename {lib => src/rewriter}/quant_hoist.h (100%) rename src/{sat_core => sat}/sat_types.h (100%) rename {lib => src/sat_strategy}/assertion_set2sat.cpp (90%) rename {lib => src/sat_strategy}/assertion_set2sat.h (96%) rename {lib => src/sat_strategy}/sat_solver_strategy.cpp (100%) rename {lib => src/sat_strategy}/sat_solver_strategy.h (100%) rename {lib => src/sat_tactic}/atom2bool_var.cpp (95%) rename {lib => src/sat_tactic}/atom2bool_var.h (87%) rename {lib => src/sat_tactic}/goal2sat.cpp (100%) rename {lib => src/sat_tactic}/goal2sat.h (100%) rename {lib => src/sat_tactic}/sat_tactic.cpp (100%) rename {lib => src/sat_tactic}/sat_tactic.h (100%) rename src/{old_params => simplifier}/arith_simplifier_params.cpp (100%) rename src/{old_params => simplifier}/arith_simplifier_params.h (100%) rename {lib => src/simplifier}/bit2int.cpp (100%) rename {lib => src/simplifier}/bit2int.h (100%) rename {lib => src/simplifier}/bv_elim.cpp (100%) rename {lib => src/simplifier}/bv_elim.h (100%) rename src/{old_params => simplifier}/bv_simplifier_params.h (100%) rename {lib => src/simplifier}/distribute_forall.cpp (100%) rename {lib => src/simplifier}/distribute_forall.h (100%) rename {lib => src/simplifier}/elim_bounds.cpp (100%) rename {lib => src/simplifier}/elim_bounds.h (100%) rename {lib => src/simplifier}/inj_axiom.cpp (100%) rename {lib => src/simplifier}/inj_axiom.h (100%) rename {lib => src/simplifier}/maximise_ac_sharing.cpp (100%) rename {lib => src/simplifier}/maximise_ac_sharing.h (100%) rename {lib => src/simplifier}/pull_ite_tree.cpp (100%) rename {lib => src/simplifier}/pull_ite_tree.h (100%) rename src/{old_params => simplifier}/theory_array_params.h (100%) rename {lib => src/smt}/arith_eq_adapter.cpp (100%) rename {lib => src/smt}/arith_eq_adapter.h (100%) rename {lib => src/smt}/arith_eq_solver.cpp (100%) rename {lib => src/smt}/arith_eq_solver.h (100%) rename {lib => src/smt}/arith_solver_plugin.cpp (100%) rename {lib => src/smt}/arith_solver_plugin.h (100%) rename {lib => src/smt}/asserted_formulas.cpp (99%) rename {lib => src/smt}/asserted_formulas.h (89%) rename {lib => src/smt}/cached_var_subst.cpp (100%) rename {lib => src/smt}/cached_var_subst.h (100%) rename {lib => src/smt}/cost_evaluator.cpp (100%) rename {lib => src/smt}/cost_evaluator.h (100%) rename src/{pattern => smt}/database.h (100%) rename src/{pattern => smt}/database.smt (100%) rename {lib => src/smt}/demodulator.cpp (100%) rename {lib => src/smt}/demodulator.h (100%) rename {lib => src/smt}/dyn_ack.cpp (100%) rename {lib => src/smt}/dyn_ack.h (100%) rename {lib => src/smt}/expr_context_simplifier.cpp (100%) rename {lib => src/smt}/expr_context_simplifier.h (100%) rename {lib => src/smt}/fingerprints.cpp (100%) rename {lib => src/smt}/fingerprints.h (100%) rename {lib => src/smt}/mam.cpp (100%) rename {lib => src/smt}/mam.h (100%) rename {lib => src/smt}/qi_queue.cpp (100%) rename {lib => src/smt}/qi_queue.h (100%) rename {lib => src/smt}/smt_almost_cg_table.cpp (100%) rename {lib => src/smt}/smt_almost_cg_table.h (100%) rename {lib => src/smt}/smt_b_justification.h (100%) rename {lib => src/smt}/smt_bool_var_data.h (100%) rename {lib => src/smt}/smt_case_split_queue.cpp (100%) rename {lib => src/smt}/smt_case_split_queue.h (100%) rename {lib => src/smt}/smt_cg_table.cpp (100%) rename {lib => src/smt}/smt_cg_table.h (100%) rename {lib => src/smt}/smt_checker.cpp (100%) rename {lib => src/smt}/smt_checker.h (100%) rename {lib => src/smt}/smt_clause.cpp (100%) rename {lib => src/smt}/smt_clause.h (100%) rename {lib => src/smt}/smt_conflict_resolution.cpp (100%) rename {lib => src/smt}/smt_conflict_resolution.h (100%) rename {lib => src/smt}/smt_context.cpp (100%) rename {lib => src/smt}/smt_context.h (100%) rename {lib => src/smt}/smt_context_inv.cpp (100%) rename {lib => src/smt}/smt_context_pp.cpp (100%) rename {lib => src/smt}/smt_context_stat.cpp (100%) rename {lib => src/smt}/smt_enode.cpp (100%) rename {lib => src/smt}/smt_enode.h (100%) rename {lib => src/smt}/smt_eq_justification.h (100%) rename {lib => src/smt}/smt_failure.h (100%) rename {lib => src/smt}/smt_for_each_relevant_expr.cpp (100%) rename {lib => src/smt}/smt_for_each_relevant_expr.h (100%) rename {lib => src/smt}/smt_internalizer.cpp (100%) rename {lib => src/smt}/smt_justification.cpp (100%) rename {lib => src/smt}/smt_justification.h (100%) rename {lib => src/smt}/smt_literal.cpp (100%) rename {lib => src/smt}/smt_literal.h (100%) rename {lib => src/smt}/smt_model_checker.cpp (100%) rename {lib => src/smt}/smt_model_checker.h (100%) rename {lib => src/smt}/smt_model_finder.cpp (100%) rename {lib => src/smt}/smt_model_finder.h (100%) rename {lib => src/smt}/smt_model_generator.cpp (100%) rename {lib => src/smt}/smt_model_generator.h (100%) rename {lib => src/smt}/smt_quantifier.cpp (100%) rename {lib => src/smt}/smt_quantifier.h (100%) rename {lib => src/smt}/smt_quantifier_instances.h (100%) rename {lib => src/smt}/smt_quantifier_stat.cpp (100%) rename {lib => src/smt}/smt_quantifier_stat.h (100%) rename {lib => src/smt}/smt_quick_checker.cpp (100%) rename {lib => src/smt}/smt_quick_checker.h (100%) rename {lib => src/smt}/smt_relevancy.cpp (100%) rename {lib => src/smt}/smt_relevancy.h (100%) rename {lib => src/smt}/smt_setup.cpp (100%) rename {lib => src/smt}/smt_setup.h (100%) rename {lib => src/smt}/smt_statistics.cpp (100%) rename {lib => src/smt}/smt_statistics.h (100%) rename {lib => src/smt}/smt_theory.cpp (100%) rename {lib => src/smt}/smt_theory.h (100%) rename {lib => src/smt}/smt_theory_var_list.h (100%) rename {lib => src/smt}/smt_types.h (100%) rename {lib => src/smt}/solver_plugin.h (100%) rename {lib => src/smt}/theory_arith.cpp (100%) rename {lib => src/smt}/theory_arith.h (100%) rename {lib => src/smt}/theory_arith_aux.h (100%) rename {lib => src/smt}/theory_arith_core.h (100%) rename {lib => src/smt}/theory_arith_def.h (100%) rename {lib => src/smt}/theory_arith_eq.h (100%) rename {lib => src/smt}/theory_arith_int.h (100%) rename {lib => src/smt}/theory_arith_inv.h (100%) rename {lib => src/smt}/theory_arith_nl.h (100%) rename {lib => src/smt}/theory_arith_pp.h (100%) rename {lib => src/smt}/theory_array.cpp (100%) rename {lib => src/smt}/theory_array.h (100%) rename {lib => src/smt}/theory_array_base.cpp (100%) rename {lib => src/smt}/theory_array_base.h (100%) rename {lib => src/smt}/theory_array_full.cpp (100%) rename {lib => src/smt}/theory_array_full.h (100%) rename {lib => src/smt}/theory_bv.cpp (100%) rename {lib => src/smt}/theory_bv.h (100%) rename {lib => src/smt}/theory_datatype.cpp (100%) rename {lib => src/smt}/theory_datatype.h (100%) rename {lib => src/smt}/theory_dense_diff_logic.cpp (100%) rename {lib => src/smt}/theory_dense_diff_logic.h (100%) rename {lib => src/smt}/theory_dense_diff_logic_def.h (100%) rename {lib => src/smt}/theory_diff_logic.cpp (100%) rename {lib => src/smt}/theory_diff_logic.h (100%) rename {lib => src/smt}/theory_diff_logic_def.h (100%) rename {lib => src/smt}/theory_dl.cpp (100%) rename {lib => src/smt}/theory_dl.h (100%) rename {lib => src/smt}/theory_dummy.cpp (100%) rename {lib => src/smt}/theory_dummy.h (100%) rename {lib => src/smt}/theory_instgen.cpp (100%) rename {lib => src/smt}/theory_instgen.h (100%) rename {lib => src/smt}/theory_seq_empty.h (100%) rename {lib => src/smt}/user_rewriter.cpp (100%) rename {lib => src/smt}/user_rewriter.h (100%) rename {lib => src/smt}/uses_theory.cpp (100%) rename {lib => src/smt}/uses_theory.h (100%) rename {lib => src/smt}/watch_list.cpp (100%) rename {lib => src/smt}/watch_list.h (100%) rename src/{pattern => smtparser}/expr_pattern_match.cpp (100%) rename src/{pattern => smtparser}/expr_pattern_match.h (94%) rename {lib => src/smtparser}/smtlib.cpp (100%) rename {lib => src/smtparser}/smtlib.h (100%) rename {lib => src/smtparser}/smtlib_solver.cpp (99%) rename {lib => src/smtparser}/smtlib_solver.h (100%) rename {lib => src/smtparser}/smtparser.cpp (99%) rename {lib => src/smtparser}/smtparser.h (100%) rename src/{spc => substitution}/expr_offset.h (100%) rename src/{spc => substitution}/expr_offset_map.h (100%) rename src/{spc => substitution}/matcher.cpp (100%) rename src/{spc => substitution}/matcher.h (100%) rename src/{spc => substitution}/substitution.cpp (100%) rename src/{spc => substitution}/substitution.h (100%) rename src/{spc => substitution}/substitution_tree.cpp (100%) rename src/{spc => substitution}/substitution_tree.h (100%) rename src/{spc => substitution}/unifier.cpp (100%) rename src/{spc => substitution}/unifier.h (100%) rename src/{spc => substitution}/var_offset_map.h (100%) rename {lib => src/util}/diff_logic.h (100%) rename src/{sat => util}/luby.cpp (100%) rename src/{sat => util}/luby.h (100%) rename {lib => src/util}/union_find.h (100%) diff --git a/mk_make.py b/mk_make.py index d52d423d8..288f4dfbc 100644 --- a/mk_make.py +++ b/mk_make.py @@ -16,29 +16,44 @@ set_vs_options('WIN32;_WINDOWS;ASYNC_COMMANDS', 'Z3DEBUG;_TRACE;_DEBUG', 'NDEBUG;_EXTERNAL_RELEASE') +add_header('api_headers') add_lib('util', []) add_lib('polynomial', ['util']) -add_lib('sat', ['util', 'sat_core']) -add_lib('nlsat', ['util', 'sat_core', 'polynomial']) +add_lib('sat', ['util']) +# nlsat only reuses the file sat_types.h from sat +add_lib('nlsat', ['polynomial', 'sat']) add_lib('subpaving', ['util']) add_lib('ast', ['util', 'polynomial']) -add_lib('rewriter', ['util', 'ast', 'polynomial']) -# Old (non-modular) parameter framework. It has been subsumed by util\params.h. -# However, it is still used by many old components. -add_lib('old_params', ['util', 'ast', 'model']) +add_lib('rewriter', ['ast', 'polynomial']) # Simplifier module will be deleted in the future. # It has been replaced with rewriter module. -add_lib('simplifier', ['util', 'ast', 'rewriter', 'old_params']) +add_lib('simplifier', ['rewriter']) # Model module should not depend on simplifier module. # We must replace all occurrences of simplifier with rewriter. -add_lib('model', ['util', 'ast', 'rewriter', 'simplifier', 'old_params']) -add_lib('framework', ['util', 'ast', 'model', 'old_params', 'simplifier', 'rewriter']) +add_lib('model', ['rewriter', 'simplifier']) +# Old (non-modular) parameter framework. It has been subsumed by util\params.h. +# However, it is still used by many old components. +add_lib('old_params', ['model', 'simplifier']) +add_lib('framework', ['rewriter', 'model', 'old_params', 'simplifier']) # Assertion set is the old tactic framework used in Z3 3.x. It will be deleted as soon as we finish the porting old # code to the new tactic framework. -add_lib('assertion_set', ['util', 'ast', 'framework', 'model', 'rewriter', 'old_params']) -add_lib('normal_forms', ['util', 'ast', 'old_params', 'simplifier', 'rewriter', 'assertion_set', 'framework', 'model']) -add_lib('spc', ['util', 'ast', 'simplifier', 'pattern', 'model', 'old_params', 'normal_forms', 'rewriter']) -add_lib('parser_util', ['util', 'ast']) -add_lib('smt2parser', ['util', 'ast', 'framework', 'model', 'old_params', 'rewriter', 'parser_util']) -add_lib('pattern', ['util', 'ast', 'simplifier', 'old_params']) -add_lib('smt', ['util', 'ast', 'assertion_set']) +add_lib('assertion_set', ['framework']) +add_lib('substitution', ['ast']) +add_lib('normal_forms', ['framework', 'assertion_set']) +add_lib('pattern', ['normal_forms']) +add_lib('spc', ['simplifier', 'substitution', 'old_params', 'pattern']) +add_lib('parser_util', ['ast']) +add_lib('smt2parser', ['framework', 'parser_util']) +add_lib('macros', ['simplifier', 'old_params']) +add_lib('grobner', ['ast']) +add_lib('euclid', ['util']) +add_lib('proof_checker', ['rewriter', 'spc']) +add_lib('bit_blaster', ['rewriter', 'simplifier', 'old_params', 'framework', 'assertion_set']) +add_lib('smt', ['assertion_set', 'bit_blaster', 'macros', 'normal_forms', 'framework', + 'substitution', 'grobner', 'euclid', 'proof_checker', 'pattern', 'parser_util']) +add_lib('sat_tactic', ['framework', 'sat']) +add_lib('sat_strategy', ['assertion_set', 'sat_tactic']) +# TODO: split muz_qe into muz, qe. Perhaps, we should also consider breaking muz into muz and pdr. +add_lib('muz_qe', ['smt', 'sat', 'smt2parser']) +# TODO: delete SMT 1.0 frontend +add_lib('smtparser', ['api_headers', 'smt', 'spc']) diff --git a/mk_util.py b/mk_util.py index 191c9787f..8935b54b3 100644 --- a/mk_util.py +++ b/mk_util.py @@ -35,6 +35,16 @@ VS_COMMON_OPTIONS='WIN32' VS_DBG_OPTIONS='_DEBUG' VS_RELEASE_OPTIONS='NDEBUG' +HEADERS = [] +LIBS = [] +LIB_DEPS = {} + +class MKException(Exception): + def __init__(self, value): + self.value = value + def __str__(self): + return repr(self.value) + def set_vs_options(common, dbg, release): global VS_COMMON_OPTIONS, VS_DBG_OPTIONS, VS_RELEASE_OPTIONS VS_COMMON_OPTIONS = common @@ -172,8 +182,39 @@ def vs_footer(f): ' \n' ' \n' '\n') - + +def check_new_component(name): + if (name in HEADERS) or (name in LIBS): + raise MKException("Component '%s' was already defined" % name) + +# Add a directory containing only .h files +def add_header(name): + check_new_component(name) + HEADERS.append(name) + +def find_all_deps(name, deps): + new_deps = [] + for dep in deps: + if dep in LIBS: + if not (dep in new_deps): + new_deps.append(dep) + for dep_dep in LIB_DEPS[dep]: + if not (dep_dep in new_deps): + new_deps.append(dep_dep) + elif dep in HEADERS: + if not (dep in new_deps): + new_deps.append(dep) + else: + raise MKException("Unknown component '%s' at '%s'." % (dep, name)) + return new_deps + def add_lib(name, deps): + check_new_component(name) + LIBS.append(name) + deps = find_all_deps(name, deps) + LIB_DEPS[name] = deps + print "Dependencies for '%s': %s" % (name, deps) + module_dir = module_build_dir(name) mk_dir(module_dir) diff --git a/lib/z3.h b/src/api_headers/z3.h similarity index 100% rename from lib/z3.h rename to src/api_headers/z3.h diff --git a/lib/z3_api.h b/src/api_headers/z3_api.h similarity index 100% rename from lib/z3_api.h rename to src/api_headers/z3_api.h diff --git a/lib/z3_internal_types.h b/src/api_headers/z3_internal_types.h similarity index 100% rename from lib/z3_internal_types.h rename to src/api_headers/z3_internal_types.h diff --git a/lib/z3_macros.h b/src/api_headers/z3_macros.h similarity index 100% rename from lib/z3_macros.h rename to src/api_headers/z3_macros.h diff --git a/lib/z3_v1.h b/src/api_headers/z3_v1.h similarity index 100% rename from lib/z3_v1.h rename to src/api_headers/z3_v1.h diff --git a/lib/expr2var.cpp b/src/ast/expr2var.cpp similarity index 100% rename from lib/expr2var.cpp rename to src/ast/expr2var.cpp diff --git a/lib/expr2var.h b/src/ast/expr2var.h similarity index 100% rename from lib/expr2var.h rename to src/ast/expr2var.h diff --git a/lib/expr_abstract.cpp b/src/ast/expr_abstract.cpp similarity index 100% rename from lib/expr_abstract.cpp rename to src/ast/expr_abstract.cpp diff --git a/lib/expr_abstract.h b/src/ast/expr_abstract.h similarity index 100% rename from lib/expr_abstract.h rename to src/ast/expr_abstract.h diff --git a/lib/expr_functors.cpp b/src/ast/expr_functors.cpp similarity index 100% rename from lib/expr_functors.cpp rename to src/ast/expr_functors.cpp diff --git a/lib/expr_functors.h b/src/ast/expr_functors.h similarity index 100% rename from lib/expr_functors.h rename to src/ast/expr_functors.h diff --git a/src/spc/expr_stat.cpp b/src/ast/expr_stat.cpp similarity index 100% rename from src/spc/expr_stat.cpp rename to src/ast/expr_stat.cpp diff --git a/src/spc/expr_stat.h b/src/ast/expr_stat.h similarity index 100% rename from src/spc/expr_stat.h rename to src/ast/expr_stat.h diff --git a/lib/static_features.cpp b/src/ast/static_features.cpp similarity index 100% rename from lib/static_features.cpp rename to src/ast/static_features.cpp diff --git a/lib/static_features.h b/src/ast/static_features.h similarity index 100% rename from lib/static_features.h rename to src/ast/static_features.h diff --git a/lib/trail.h b/src/ast/trail.h similarity index 100% rename from lib/trail.h rename to src/ast/trail.h diff --git a/lib/bit_blaster.cpp b/src/bit_blaster/bit_blaster.cpp similarity index 100% rename from lib/bit_blaster.cpp rename to src/bit_blaster/bit_blaster.cpp diff --git a/lib/bit_blaster.h b/src/bit_blaster/bit_blaster.h similarity index 100% rename from lib/bit_blaster.h rename to src/bit_blaster/bit_blaster.h diff --git a/lib/bit_blaster_model_converter.cpp b/src/bit_blaster/bit_blaster_model_converter.cpp similarity index 100% rename from lib/bit_blaster_model_converter.cpp rename to src/bit_blaster/bit_blaster_model_converter.cpp diff --git a/lib/bit_blaster_model_converter.h b/src/bit_blaster/bit_blaster_model_converter.h similarity index 100% rename from lib/bit_blaster_model_converter.h rename to src/bit_blaster/bit_blaster_model_converter.h diff --git a/lib/bit_blaster_rewriter.cpp b/src/bit_blaster/bit_blaster_rewriter.cpp similarity index 100% rename from lib/bit_blaster_rewriter.cpp rename to src/bit_blaster/bit_blaster_rewriter.cpp diff --git a/lib/bit_blaster_rewriter.h b/src/bit_blaster/bit_blaster_rewriter.h similarity index 100% rename from lib/bit_blaster_rewriter.h rename to src/bit_blaster/bit_blaster_rewriter.h diff --git a/lib/bit_blaster_tactic.cpp b/src/bit_blaster/bit_blaster_tactic.cpp similarity index 100% rename from lib/bit_blaster_tactic.cpp rename to src/bit_blaster/bit_blaster_tactic.cpp diff --git a/lib/bit_blaster_tactic.h b/src/bit_blaster/bit_blaster_tactic.h similarity index 100% rename from lib/bit_blaster_tactic.h rename to src/bit_blaster/bit_blaster_tactic.h diff --git a/lib/bit_blaster_tpl.h b/src/bit_blaster/bit_blaster_tpl.h similarity index 100% rename from lib/bit_blaster_tpl.h rename to src/bit_blaster/bit_blaster_tpl.h diff --git a/lib/bit_blaster_tpl_def.h b/src/bit_blaster/bit_blaster_tpl_def.h similarity index 100% rename from lib/bit_blaster_tpl_def.h rename to src/bit_blaster/bit_blaster_tpl_def.h diff --git a/lib/bv1_blaster_tactic.cpp b/src/bit_blaster/bv1_blaster_tactic.cpp similarity index 100% rename from lib/bv1_blaster_tactic.cpp rename to src/bit_blaster/bv1_blaster_tactic.cpp diff --git a/lib/bv1_blaster_tactic.h b/src/bit_blaster/bv1_blaster_tactic.h similarity index 100% rename from lib/bv1_blaster_tactic.h rename to src/bit_blaster/bv1_blaster_tactic.h diff --git a/lib/eager_bit_blaster.cpp b/src/bit_blaster/eager_bit_blaster.cpp similarity index 100% rename from lib/eager_bit_blaster.cpp rename to src/bit_blaster/eager_bit_blaster.cpp diff --git a/lib/eager_bit_blaster.h b/src/bit_blaster/eager_bit_blaster.h similarity index 100% rename from lib/eager_bit_blaster.h rename to src/bit_blaster/eager_bit_blaster.h diff --git a/lib/expr_weight.cpp b/src/dead/expr_weight.cpp similarity index 100% rename from lib/expr_weight.cpp rename to src/dead/expr_weight.cpp diff --git a/lib/expr_weight.h b/src/dead/expr_weight.h similarity index 100% rename from lib/expr_weight.h rename to src/dead/expr_weight.h diff --git a/lib/smt_euf.cpp b/src/dead/smt_euf.cpp similarity index 100% rename from lib/smt_euf.cpp rename to src/dead/smt_euf.cpp diff --git a/lib/smt_euf.h b/src/dead/smt_euf.h similarity index 100% rename from lib/smt_euf.h rename to src/dead/smt_euf.h diff --git a/lib/euclidean_solver.cpp b/src/euclid/euclidean_solver.cpp similarity index 100% rename from lib/euclidean_solver.cpp rename to src/euclid/euclidean_solver.cpp diff --git a/lib/euclidean_solver.h b/src/euclid/euclidean_solver.h similarity index 100% rename from lib/euclidean_solver.h rename to src/euclid/euclidean_solver.h diff --git a/lib/goal_shared_occs.cpp b/src/framework/goal_shared_occs.cpp similarity index 100% rename from lib/goal_shared_occs.cpp rename to src/framework/goal_shared_occs.cpp diff --git a/lib/goal_shared_occs.h b/src/framework/goal_shared_occs.h similarity index 100% rename from lib/goal_shared_occs.h rename to src/framework/goal_shared_occs.h diff --git a/lib/strategic_solver.cpp b/src/framework/strategic_solver.cpp similarity index 100% rename from lib/strategic_solver.cpp rename to src/framework/strategic_solver.cpp diff --git a/lib/strategic_solver.h b/src/framework/strategic_solver.h similarity index 100% rename from lib/strategic_solver.h rename to src/framework/strategic_solver.h diff --git a/lib/grobner.cpp b/src/grobner/grobner.cpp similarity index 100% rename from lib/grobner.cpp rename to src/grobner/grobner.cpp diff --git a/lib/grobner.h b/src/grobner/grobner.h similarity index 100% rename from lib/grobner.h rename to src/grobner/grobner.h diff --git a/lib/macro_finder.cpp b/src/macros/macro_finder.cpp similarity index 100% rename from lib/macro_finder.cpp rename to src/macros/macro_finder.cpp diff --git a/lib/macro_finder.h b/src/macros/macro_finder.h similarity index 100% rename from lib/macro_finder.h rename to src/macros/macro_finder.h diff --git a/lib/macro_manager.cpp b/src/macros/macro_manager.cpp similarity index 100% rename from lib/macro_manager.cpp rename to src/macros/macro_manager.cpp diff --git a/lib/macro_manager.h b/src/macros/macro_manager.h similarity index 100% rename from lib/macro_manager.h rename to src/macros/macro_manager.h diff --git a/lib/macro_substitution.cpp b/src/macros/macro_substitution.cpp similarity index 100% rename from lib/macro_substitution.cpp rename to src/macros/macro_substitution.cpp diff --git a/lib/macro_substitution.h b/src/macros/macro_substitution.h similarity index 100% rename from lib/macro_substitution.h rename to src/macros/macro_substitution.h diff --git a/lib/macro_util.cpp b/src/macros/macro_util.cpp similarity index 100% rename from lib/macro_util.cpp rename to src/macros/macro_util.cpp diff --git a/lib/macro_util.h b/src/macros/macro_util.h similarity index 100% rename from lib/macro_util.h rename to src/macros/macro_util.h diff --git a/lib/quasi_macros.cpp b/src/macros/quasi_macros.cpp similarity index 100% rename from lib/quasi_macros.cpp rename to src/macros/quasi_macros.cpp diff --git a/lib/quasi_macros.h b/src/macros/quasi_macros.h similarity index 100% rename from lib/quasi_macros.h rename to src/macros/quasi_macros.h diff --git a/src/old_params/model_params.cpp b/src/model/model_params.cpp similarity index 100% rename from src/old_params/model_params.cpp rename to src/model/model_params.cpp diff --git a/src/old_params/model_params.h b/src/model/model_params.h similarity index 100% rename from src/old_params/model_params.h rename to src/model/model_params.h diff --git a/src/muz_qe/README b/src/muz_qe/README new file mode 100644 index 000000000..5d6f433b8 --- /dev/null +++ b/src/muz_qe/README @@ -0,0 +1 @@ +muZ and Quantifier Elimination modules \ No newline at end of file diff --git a/lib/arith_bounds_tactic.cpp b/src/muz_qe/arith_bounds_tactic.cpp similarity index 100% rename from lib/arith_bounds_tactic.cpp rename to src/muz_qe/arith_bounds_tactic.cpp diff --git a/lib/arith_bounds_tactic.h b/src/muz_qe/arith_bounds_tactic.h similarity index 100% rename from lib/arith_bounds_tactic.h rename to src/muz_qe/arith_bounds_tactic.h diff --git a/lib/dl_base.cpp b/src/muz_qe/dl_base.cpp similarity index 100% rename from lib/dl_base.cpp rename to src/muz_qe/dl_base.cpp diff --git a/lib/dl_base.h b/src/muz_qe/dl_base.h similarity index 100% rename from lib/dl_base.h rename to src/muz_qe/dl_base.h diff --git a/lib/dl_bmc_engine.cpp b/src/muz_qe/dl_bmc_engine.cpp similarity index 100% rename from lib/dl_bmc_engine.cpp rename to src/muz_qe/dl_bmc_engine.cpp diff --git a/lib/dl_bmc_engine.h b/src/muz_qe/dl_bmc_engine.h similarity index 100% rename from lib/dl_bmc_engine.h rename to src/muz_qe/dl_bmc_engine.h diff --git a/lib/dl_bound_relation.cpp b/src/muz_qe/dl_bound_relation.cpp similarity index 100% rename from lib/dl_bound_relation.cpp rename to src/muz_qe/dl_bound_relation.cpp diff --git a/lib/dl_bound_relation.h b/src/muz_qe/dl_bound_relation.h similarity index 100% rename from lib/dl_bound_relation.h rename to src/muz_qe/dl_bound_relation.h diff --git a/lib/dl_check_table.cpp b/src/muz_qe/dl_check_table.cpp similarity index 100% rename from lib/dl_check_table.cpp rename to src/muz_qe/dl_check_table.cpp diff --git a/lib/dl_check_table.h b/src/muz_qe/dl_check_table.h similarity index 100% rename from lib/dl_check_table.h rename to src/muz_qe/dl_check_table.h diff --git a/lib/dl_cmds.cpp b/src/muz_qe/dl_cmds.cpp similarity index 100% rename from lib/dl_cmds.cpp rename to src/muz_qe/dl_cmds.cpp diff --git a/lib/dl_cmds.h b/src/muz_qe/dl_cmds.h similarity index 100% rename from lib/dl_cmds.h rename to src/muz_qe/dl_cmds.h diff --git a/lib/dl_compiler.cpp b/src/muz_qe/dl_compiler.cpp similarity index 100% rename from lib/dl_compiler.cpp rename to src/muz_qe/dl_compiler.cpp diff --git a/lib/dl_compiler.h b/src/muz_qe/dl_compiler.h similarity index 100% rename from lib/dl_compiler.h rename to src/muz_qe/dl_compiler.h diff --git a/lib/dl_context.cpp b/src/muz_qe/dl_context.cpp similarity index 100% rename from lib/dl_context.cpp rename to src/muz_qe/dl_context.cpp diff --git a/lib/dl_context.h b/src/muz_qe/dl_context.h similarity index 100% rename from lib/dl_context.h rename to src/muz_qe/dl_context.h diff --git a/lib/dl_costs.cpp b/src/muz_qe/dl_costs.cpp similarity index 100% rename from lib/dl_costs.cpp rename to src/muz_qe/dl_costs.cpp diff --git a/lib/dl_costs.h b/src/muz_qe/dl_costs.h similarity index 100% rename from lib/dl_costs.h rename to src/muz_qe/dl_costs.h diff --git a/lib/dl_external_relation.cpp b/src/muz_qe/dl_external_relation.cpp similarity index 100% rename from lib/dl_external_relation.cpp rename to src/muz_qe/dl_external_relation.cpp diff --git a/lib/dl_external_relation.h b/src/muz_qe/dl_external_relation.h similarity index 100% rename from lib/dl_external_relation.h rename to src/muz_qe/dl_external_relation.h diff --git a/lib/dl_finite_product_relation.cpp b/src/muz_qe/dl_finite_product_relation.cpp similarity index 100% rename from lib/dl_finite_product_relation.cpp rename to src/muz_qe/dl_finite_product_relation.cpp diff --git a/lib/dl_finite_product_relation.h b/src/muz_qe/dl_finite_product_relation.h similarity index 100% rename from lib/dl_finite_product_relation.h rename to src/muz_qe/dl_finite_product_relation.h diff --git a/lib/dl_instruction.cpp b/src/muz_qe/dl_instruction.cpp similarity index 100% rename from lib/dl_instruction.cpp rename to src/muz_qe/dl_instruction.cpp diff --git a/lib/dl_instruction.h b/src/muz_qe/dl_instruction.h similarity index 100% rename from lib/dl_instruction.h rename to src/muz_qe/dl_instruction.h diff --git a/lib/dl_interval_relation.cpp b/src/muz_qe/dl_interval_relation.cpp similarity index 100% rename from lib/dl_interval_relation.cpp rename to src/muz_qe/dl_interval_relation.cpp diff --git a/lib/dl_interval_relation.h b/src/muz_qe/dl_interval_relation.h similarity index 100% rename from lib/dl_interval_relation.h rename to src/muz_qe/dl_interval_relation.h diff --git a/lib/dl_mk_bit_blast.cpp b/src/muz_qe/dl_mk_bit_blast.cpp similarity index 100% rename from lib/dl_mk_bit_blast.cpp rename to src/muz_qe/dl_mk_bit_blast.cpp diff --git a/lib/dl_mk_bit_blast.h b/src/muz_qe/dl_mk_bit_blast.h similarity index 100% rename from lib/dl_mk_bit_blast.h rename to src/muz_qe/dl_mk_bit_blast.h diff --git a/lib/dl_mk_coalesce.cpp b/src/muz_qe/dl_mk_coalesce.cpp similarity index 100% rename from lib/dl_mk_coalesce.cpp rename to src/muz_qe/dl_mk_coalesce.cpp diff --git a/lib/dl_mk_coalesce.h b/src/muz_qe/dl_mk_coalesce.h similarity index 100% rename from lib/dl_mk_coalesce.h rename to src/muz_qe/dl_mk_coalesce.h diff --git a/lib/dl_mk_coi_filter.cpp b/src/muz_qe/dl_mk_coi_filter.cpp similarity index 100% rename from lib/dl_mk_coi_filter.cpp rename to src/muz_qe/dl_mk_coi_filter.cpp diff --git a/lib/dl_mk_coi_filter.h b/src/muz_qe/dl_mk_coi_filter.h similarity index 100% rename from lib/dl_mk_coi_filter.h rename to src/muz_qe/dl_mk_coi_filter.h diff --git a/lib/dl_mk_explanations.cpp b/src/muz_qe/dl_mk_explanations.cpp similarity index 100% rename from lib/dl_mk_explanations.cpp rename to src/muz_qe/dl_mk_explanations.cpp diff --git a/lib/dl_mk_explanations.h b/src/muz_qe/dl_mk_explanations.h similarity index 100% rename from lib/dl_mk_explanations.h rename to src/muz_qe/dl_mk_explanations.h diff --git a/lib/dl_mk_filter_rules.cpp b/src/muz_qe/dl_mk_filter_rules.cpp similarity index 100% rename from lib/dl_mk_filter_rules.cpp rename to src/muz_qe/dl_mk_filter_rules.cpp diff --git a/lib/dl_mk_filter_rules.h b/src/muz_qe/dl_mk_filter_rules.h similarity index 100% rename from lib/dl_mk_filter_rules.h rename to src/muz_qe/dl_mk_filter_rules.h diff --git a/lib/dl_mk_interp_tail_simplifier.cpp b/src/muz_qe/dl_mk_interp_tail_simplifier.cpp similarity index 100% rename from lib/dl_mk_interp_tail_simplifier.cpp rename to src/muz_qe/dl_mk_interp_tail_simplifier.cpp diff --git a/lib/dl_mk_interp_tail_simplifier.h b/src/muz_qe/dl_mk_interp_tail_simplifier.h similarity index 100% rename from lib/dl_mk_interp_tail_simplifier.h rename to src/muz_qe/dl_mk_interp_tail_simplifier.h diff --git a/lib/dl_mk_magic_sets.cpp b/src/muz_qe/dl_mk_magic_sets.cpp similarity index 100% rename from lib/dl_mk_magic_sets.cpp rename to src/muz_qe/dl_mk_magic_sets.cpp diff --git a/lib/dl_mk_magic_sets.h b/src/muz_qe/dl_mk_magic_sets.h similarity index 100% rename from lib/dl_mk_magic_sets.h rename to src/muz_qe/dl_mk_magic_sets.h diff --git a/lib/dl_mk_partial_equiv.cpp b/src/muz_qe/dl_mk_partial_equiv.cpp similarity index 100% rename from lib/dl_mk_partial_equiv.cpp rename to src/muz_qe/dl_mk_partial_equiv.cpp diff --git a/lib/dl_mk_partial_equiv.h b/src/muz_qe/dl_mk_partial_equiv.h similarity index 100% rename from lib/dl_mk_partial_equiv.h rename to src/muz_qe/dl_mk_partial_equiv.h diff --git a/lib/dl_mk_rule_inliner.cpp b/src/muz_qe/dl_mk_rule_inliner.cpp similarity index 100% rename from lib/dl_mk_rule_inliner.cpp rename to src/muz_qe/dl_mk_rule_inliner.cpp diff --git a/lib/dl_mk_rule_inliner.h b/src/muz_qe/dl_mk_rule_inliner.h similarity index 100% rename from lib/dl_mk_rule_inliner.h rename to src/muz_qe/dl_mk_rule_inliner.h diff --git a/lib/dl_mk_similarity_compressor.cpp b/src/muz_qe/dl_mk_similarity_compressor.cpp similarity index 100% rename from lib/dl_mk_similarity_compressor.cpp rename to src/muz_qe/dl_mk_similarity_compressor.cpp diff --git a/lib/dl_mk_similarity_compressor.h b/src/muz_qe/dl_mk_similarity_compressor.h similarity index 100% rename from lib/dl_mk_similarity_compressor.h rename to src/muz_qe/dl_mk_similarity_compressor.h diff --git a/lib/dl_mk_simple_joins.cpp b/src/muz_qe/dl_mk_simple_joins.cpp similarity index 100% rename from lib/dl_mk_simple_joins.cpp rename to src/muz_qe/dl_mk_simple_joins.cpp diff --git a/lib/dl_mk_simple_joins.h b/src/muz_qe/dl_mk_simple_joins.h similarity index 100% rename from lib/dl_mk_simple_joins.h rename to src/muz_qe/dl_mk_simple_joins.h diff --git a/lib/dl_mk_slice.cpp b/src/muz_qe/dl_mk_slice.cpp similarity index 100% rename from lib/dl_mk_slice.cpp rename to src/muz_qe/dl_mk_slice.cpp diff --git a/lib/dl_mk_slice.h b/src/muz_qe/dl_mk_slice.h similarity index 100% rename from lib/dl_mk_slice.h rename to src/muz_qe/dl_mk_slice.h diff --git a/lib/dl_mk_subsumption_checker.cpp b/src/muz_qe/dl_mk_subsumption_checker.cpp similarity index 100% rename from lib/dl_mk_subsumption_checker.cpp rename to src/muz_qe/dl_mk_subsumption_checker.cpp diff --git a/lib/dl_mk_subsumption_checker.h b/src/muz_qe/dl_mk_subsumption_checker.h similarity index 100% rename from lib/dl_mk_subsumption_checker.h rename to src/muz_qe/dl_mk_subsumption_checker.h diff --git a/lib/dl_mk_unbound_compressor.cpp b/src/muz_qe/dl_mk_unbound_compressor.cpp similarity index 100% rename from lib/dl_mk_unbound_compressor.cpp rename to src/muz_qe/dl_mk_unbound_compressor.cpp diff --git a/lib/dl_mk_unbound_compressor.h b/src/muz_qe/dl_mk_unbound_compressor.h similarity index 100% rename from lib/dl_mk_unbound_compressor.h rename to src/muz_qe/dl_mk_unbound_compressor.h diff --git a/lib/dl_mk_unfold.cpp b/src/muz_qe/dl_mk_unfold.cpp similarity index 100% rename from lib/dl_mk_unfold.cpp rename to src/muz_qe/dl_mk_unfold.cpp diff --git a/lib/dl_mk_unfold.h b/src/muz_qe/dl_mk_unfold.h similarity index 100% rename from lib/dl_mk_unfold.h rename to src/muz_qe/dl_mk_unfold.h diff --git a/lib/dl_product_relation.cpp b/src/muz_qe/dl_product_relation.cpp similarity index 100% rename from lib/dl_product_relation.cpp rename to src/muz_qe/dl_product_relation.cpp diff --git a/lib/dl_product_relation.h b/src/muz_qe/dl_product_relation.h similarity index 100% rename from lib/dl_product_relation.h rename to src/muz_qe/dl_product_relation.h diff --git a/lib/dl_relation_manager.cpp b/src/muz_qe/dl_relation_manager.cpp similarity index 100% rename from lib/dl_relation_manager.cpp rename to src/muz_qe/dl_relation_manager.cpp diff --git a/lib/dl_relation_manager.h b/src/muz_qe/dl_relation_manager.h similarity index 100% rename from lib/dl_relation_manager.h rename to src/muz_qe/dl_relation_manager.h diff --git a/lib/dl_rule.cpp b/src/muz_qe/dl_rule.cpp similarity index 100% rename from lib/dl_rule.cpp rename to src/muz_qe/dl_rule.cpp diff --git a/lib/dl_rule.h b/src/muz_qe/dl_rule.h similarity index 100% rename from lib/dl_rule.h rename to src/muz_qe/dl_rule.h diff --git a/lib/dl_rule_set.cpp b/src/muz_qe/dl_rule_set.cpp similarity index 100% rename from lib/dl_rule_set.cpp rename to src/muz_qe/dl_rule_set.cpp diff --git a/lib/dl_rule_set.h b/src/muz_qe/dl_rule_set.h similarity index 100% rename from lib/dl_rule_set.h rename to src/muz_qe/dl_rule_set.h diff --git a/lib/dl_rule_subsumption_index.cpp b/src/muz_qe/dl_rule_subsumption_index.cpp similarity index 100% rename from lib/dl_rule_subsumption_index.cpp rename to src/muz_qe/dl_rule_subsumption_index.cpp diff --git a/lib/dl_rule_subsumption_index.h b/src/muz_qe/dl_rule_subsumption_index.h similarity index 100% rename from lib/dl_rule_subsumption_index.h rename to src/muz_qe/dl_rule_subsumption_index.h diff --git a/lib/dl_rule_transformer.cpp b/src/muz_qe/dl_rule_transformer.cpp similarity index 100% rename from lib/dl_rule_transformer.cpp rename to src/muz_qe/dl_rule_transformer.cpp diff --git a/lib/dl_rule_transformer.h b/src/muz_qe/dl_rule_transformer.h similarity index 100% rename from lib/dl_rule_transformer.h rename to src/muz_qe/dl_rule_transformer.h diff --git a/lib/dl_sieve_relation.cpp b/src/muz_qe/dl_sieve_relation.cpp similarity index 100% rename from lib/dl_sieve_relation.cpp rename to src/muz_qe/dl_sieve_relation.cpp diff --git a/lib/dl_sieve_relation.h b/src/muz_qe/dl_sieve_relation.h similarity index 100% rename from lib/dl_sieve_relation.h rename to src/muz_qe/dl_sieve_relation.h diff --git a/src/muz/dl_simplifier_plugin.cpp b/src/muz_qe/dl_simplifier_plugin.cpp similarity index 100% rename from src/muz/dl_simplifier_plugin.cpp rename to src/muz_qe/dl_simplifier_plugin.cpp diff --git a/src/muz/dl_simplifier_plugin.h b/src/muz_qe/dl_simplifier_plugin.h similarity index 100% rename from src/muz/dl_simplifier_plugin.h rename to src/muz_qe/dl_simplifier_plugin.h diff --git a/lib/dl_skip_table.cpp b/src/muz_qe/dl_skip_table.cpp similarity index 100% rename from lib/dl_skip_table.cpp rename to src/muz_qe/dl_skip_table.cpp diff --git a/lib/dl_skip_table.h b/src/muz_qe/dl_skip_table.h similarity index 100% rename from lib/dl_skip_table.h rename to src/muz_qe/dl_skip_table.h diff --git a/lib/dl_smt_relation.cpp b/src/muz_qe/dl_smt_relation.cpp similarity index 100% rename from lib/dl_smt_relation.cpp rename to src/muz_qe/dl_smt_relation.cpp diff --git a/lib/dl_smt_relation.h b/src/muz_qe/dl_smt_relation.h similarity index 100% rename from lib/dl_smt_relation.h rename to src/muz_qe/dl_smt_relation.h diff --git a/lib/dl_sparse_table.cpp b/src/muz_qe/dl_sparse_table.cpp similarity index 100% rename from lib/dl_sparse_table.cpp rename to src/muz_qe/dl_sparse_table.cpp diff --git a/lib/dl_sparse_table.h b/src/muz_qe/dl_sparse_table.h similarity index 100% rename from lib/dl_sparse_table.h rename to src/muz_qe/dl_sparse_table.h diff --git a/lib/dl_table.cpp b/src/muz_qe/dl_table.cpp similarity index 100% rename from lib/dl_table.cpp rename to src/muz_qe/dl_table.cpp diff --git a/lib/dl_table.h b/src/muz_qe/dl_table.h similarity index 100% rename from lib/dl_table.h rename to src/muz_qe/dl_table.h diff --git a/lib/dl_table_plugin.h b/src/muz_qe/dl_table_plugin.h similarity index 100% rename from lib/dl_table_plugin.h rename to src/muz_qe/dl_table_plugin.h diff --git a/lib/dl_table_relation.cpp b/src/muz_qe/dl_table_relation.cpp similarity index 100% rename from lib/dl_table_relation.cpp rename to src/muz_qe/dl_table_relation.cpp diff --git a/lib/dl_table_relation.h b/src/muz_qe/dl_table_relation.h similarity index 100% rename from lib/dl_table_relation.h rename to src/muz_qe/dl_table_relation.h diff --git a/lib/dl_util.cpp b/src/muz_qe/dl_util.cpp similarity index 100% rename from lib/dl_util.cpp rename to src/muz_qe/dl_util.cpp diff --git a/lib/dl_util.h b/src/muz_qe/dl_util.h similarity index 100% rename from lib/dl_util.h rename to src/muz_qe/dl_util.h diff --git a/lib/dl_vector_relation.h b/src/muz_qe/dl_vector_relation.h similarity index 100% rename from lib/dl_vector_relation.h rename to src/muz_qe/dl_vector_relation.h diff --git a/lib/horn_subsume_model_converter.cpp b/src/muz_qe/horn_subsume_model_converter.cpp similarity index 99% rename from lib/horn_subsume_model_converter.cpp rename to src/muz_qe/horn_subsume_model_converter.cpp index 83061ca6f..a203a9fee 100644 --- a/lib/horn_subsume_model_converter.cpp +++ b/src/muz_qe/horn_subsume_model_converter.cpp @@ -24,6 +24,7 @@ Revision History: #include "model_smt2_pp.h" #include "bool_rewriter.h" #include "th_rewriter.h" +#include "for_each_expr.h" void horn_subsume_model_converter::insert(app* head, expr* body) { func_decl_ref pred(m); diff --git a/lib/horn_subsume_model_converter.h b/src/muz_qe/horn_subsume_model_converter.h similarity index 100% rename from lib/horn_subsume_model_converter.h rename to src/muz_qe/horn_subsume_model_converter.h diff --git a/lib/model2expr.cpp b/src/muz_qe/model2expr.cpp similarity index 100% rename from lib/model2expr.cpp rename to src/muz_qe/model2expr.cpp diff --git a/lib/model2expr.h b/src/muz_qe/model2expr.h similarity index 100% rename from lib/model2expr.h rename to src/muz_qe/model2expr.h diff --git a/lib/nlarith_util.cpp b/src/muz_qe/nlarith_util.cpp similarity index 100% rename from lib/nlarith_util.cpp rename to src/muz_qe/nlarith_util.cpp diff --git a/lib/nlarith_util.h b/src/muz_qe/nlarith_util.h similarity index 100% rename from lib/nlarith_util.h rename to src/muz_qe/nlarith_util.h diff --git a/lib/pdr_context.cpp b/src/muz_qe/pdr_context.cpp similarity index 100% rename from lib/pdr_context.cpp rename to src/muz_qe/pdr_context.cpp diff --git a/lib/pdr_context.h b/src/muz_qe/pdr_context.h similarity index 100% rename from lib/pdr_context.h rename to src/muz_qe/pdr_context.h diff --git a/lib/pdr_dl_interface.cpp b/src/muz_qe/pdr_dl_interface.cpp similarity index 100% rename from lib/pdr_dl_interface.cpp rename to src/muz_qe/pdr_dl_interface.cpp diff --git a/lib/pdr_dl_interface.h b/src/muz_qe/pdr_dl_interface.h similarity index 100% rename from lib/pdr_dl_interface.h rename to src/muz_qe/pdr_dl_interface.h diff --git a/lib/pdr_farkas_learner.cpp b/src/muz_qe/pdr_farkas_learner.cpp similarity index 99% rename from lib/pdr_farkas_learner.cpp rename to src/muz_qe/pdr_farkas_learner.cpp index 6494bd223..9dbe91d0b 100644 --- a/lib/pdr_farkas_learner.cpp +++ b/src/muz_qe/pdr_farkas_learner.cpp @@ -29,7 +29,6 @@ Revision History: #include "pdr_util.h" #include "pdr_farkas_learner.h" #include "th_rewriter.h" -#include "smtparser.h" #include "pdr_interpolant_provider.h" #include "ast_ll_pp.h" #include "arith_bounds_tactic.h" @@ -858,6 +857,7 @@ namespace pdr { void farkas_learner::test(char const* filename) { +#if 0 if (!filename) { test(); return; @@ -886,6 +886,7 @@ namespace pdr { expr_ref_vector lemmas(m); bool res = fl.get_lemma_guesses(A, B, lemmas); std::cout << "lemmas: " << pp_cube(lemmas, m) << "\n"; +#endif } }; diff --git a/lib/pdr_farkas_learner.h b/src/muz_qe/pdr_farkas_learner.h similarity index 100% rename from lib/pdr_farkas_learner.h rename to src/muz_qe/pdr_farkas_learner.h diff --git a/lib/pdr_generalizers.cpp b/src/muz_qe/pdr_generalizers.cpp similarity index 100% rename from lib/pdr_generalizers.cpp rename to src/muz_qe/pdr_generalizers.cpp diff --git a/lib/pdr_generalizers.h b/src/muz_qe/pdr_generalizers.h similarity index 100% rename from lib/pdr_generalizers.h rename to src/muz_qe/pdr_generalizers.h diff --git a/lib/pdr_interpolant_provider.cpp b/src/muz_qe/pdr_interpolant_provider.cpp similarity index 100% rename from lib/pdr_interpolant_provider.cpp rename to src/muz_qe/pdr_interpolant_provider.cpp diff --git a/lib/pdr_interpolant_provider.h b/src/muz_qe/pdr_interpolant_provider.h similarity index 100% rename from lib/pdr_interpolant_provider.h rename to src/muz_qe/pdr_interpolant_provider.h diff --git a/lib/pdr_manager.cpp b/src/muz_qe/pdr_manager.cpp similarity index 100% rename from lib/pdr_manager.cpp rename to src/muz_qe/pdr_manager.cpp diff --git a/lib/pdr_manager.h b/src/muz_qe/pdr_manager.h similarity index 100% rename from lib/pdr_manager.h rename to src/muz_qe/pdr_manager.h diff --git a/lib/pdr_prop_solver.cpp b/src/muz_qe/pdr_prop_solver.cpp similarity index 100% rename from lib/pdr_prop_solver.cpp rename to src/muz_qe/pdr_prop_solver.cpp diff --git a/lib/pdr_prop_solver.h b/src/muz_qe/pdr_prop_solver.h similarity index 100% rename from lib/pdr_prop_solver.h rename to src/muz_qe/pdr_prop_solver.h diff --git a/lib/pdr_quantifiers.cpp b/src/muz_qe/pdr_quantifiers.cpp similarity index 100% rename from lib/pdr_quantifiers.cpp rename to src/muz_qe/pdr_quantifiers.cpp diff --git a/lib/pdr_quantifiers.h b/src/muz_qe/pdr_quantifiers.h similarity index 100% rename from lib/pdr_quantifiers.h rename to src/muz_qe/pdr_quantifiers.h diff --git a/lib/pdr_reachable_cache.cpp b/src/muz_qe/pdr_reachable_cache.cpp similarity index 100% rename from lib/pdr_reachable_cache.cpp rename to src/muz_qe/pdr_reachable_cache.cpp diff --git a/lib/pdr_reachable_cache.h b/src/muz_qe/pdr_reachable_cache.h similarity index 100% rename from lib/pdr_reachable_cache.h rename to src/muz_qe/pdr_reachable_cache.h diff --git a/lib/pdr_smt_context_manager.cpp b/src/muz_qe/pdr_smt_context_manager.cpp similarity index 100% rename from lib/pdr_smt_context_manager.cpp rename to src/muz_qe/pdr_smt_context_manager.cpp diff --git a/lib/pdr_smt_context_manager.h b/src/muz_qe/pdr_smt_context_manager.h similarity index 100% rename from lib/pdr_smt_context_manager.h rename to src/muz_qe/pdr_smt_context_manager.h diff --git a/lib/pdr_sym_mux.cpp b/src/muz_qe/pdr_sym_mux.cpp similarity index 100% rename from lib/pdr_sym_mux.cpp rename to src/muz_qe/pdr_sym_mux.cpp diff --git a/lib/pdr_sym_mux.h b/src/muz_qe/pdr_sym_mux.h similarity index 100% rename from lib/pdr_sym_mux.h rename to src/muz_qe/pdr_sym_mux.h diff --git a/lib/pdr_util.cpp b/src/muz_qe/pdr_util.cpp similarity index 100% rename from lib/pdr_util.cpp rename to src/muz_qe/pdr_util.cpp diff --git a/lib/pdr_util.h b/src/muz_qe/pdr_util.h similarity index 100% rename from lib/pdr_util.h rename to src/muz_qe/pdr_util.h diff --git a/lib/proof_utils.cpp b/src/muz_qe/proof_utils.cpp similarity index 100% rename from lib/proof_utils.cpp rename to src/muz_qe/proof_utils.cpp diff --git a/lib/proof_utils.h b/src/muz_qe/proof_utils.h similarity index 100% rename from lib/proof_utils.h rename to src/muz_qe/proof_utils.h diff --git a/lib/qe.cpp b/src/muz_qe/qe.cpp similarity index 100% rename from lib/qe.cpp rename to src/muz_qe/qe.cpp diff --git a/lib/qe.h b/src/muz_qe/qe.h similarity index 100% rename from lib/qe.h rename to src/muz_qe/qe.h diff --git a/lib/qe_arith_plugin.cpp b/src/muz_qe/qe_arith_plugin.cpp similarity index 100% rename from lib/qe_arith_plugin.cpp rename to src/muz_qe/qe_arith_plugin.cpp diff --git a/lib/qe_array_plugin.cpp b/src/muz_qe/qe_array_plugin.cpp similarity index 100% rename from lib/qe_array_plugin.cpp rename to src/muz_qe/qe_array_plugin.cpp diff --git a/lib/qe_bool_plugin.cpp b/src/muz_qe/qe_bool_plugin.cpp similarity index 100% rename from lib/qe_bool_plugin.cpp rename to src/muz_qe/qe_bool_plugin.cpp diff --git a/lib/qe_bv_plugin.cpp b/src/muz_qe/qe_bv_plugin.cpp similarity index 100% rename from lib/qe_bv_plugin.cpp rename to src/muz_qe/qe_bv_plugin.cpp diff --git a/lib/qe_cmd.cpp b/src/muz_qe/qe_cmd.cpp similarity index 100% rename from lib/qe_cmd.cpp rename to src/muz_qe/qe_cmd.cpp diff --git a/lib/qe_cmd.h b/src/muz_qe/qe_cmd.h similarity index 100% rename from lib/qe_cmd.h rename to src/muz_qe/qe_cmd.h diff --git a/lib/qe_datatype_plugin.cpp b/src/muz_qe/qe_datatype_plugin.cpp similarity index 100% rename from lib/qe_datatype_plugin.cpp rename to src/muz_qe/qe_datatype_plugin.cpp diff --git a/lib/qe_dl_plugin.cpp b/src/muz_qe/qe_dl_plugin.cpp similarity index 100% rename from lib/qe_dl_plugin.cpp rename to src/muz_qe/qe_dl_plugin.cpp diff --git a/lib/qe_lite.cpp b/src/muz_qe/qe_lite.cpp similarity index 100% rename from lib/qe_lite.cpp rename to src/muz_qe/qe_lite.cpp diff --git a/lib/qe_lite.h b/src/muz_qe/qe_lite.h similarity index 100% rename from lib/qe_lite.h rename to src/muz_qe/qe_lite.h diff --git a/lib/qe_sat_tactic.cpp b/src/muz_qe/qe_sat_tactic.cpp similarity index 100% rename from lib/qe_sat_tactic.cpp rename to src/muz_qe/qe_sat_tactic.cpp diff --git a/lib/qe_sat_tactic.h b/src/muz_qe/qe_sat_tactic.h similarity index 100% rename from lib/qe_sat_tactic.h rename to src/muz_qe/qe_sat_tactic.h diff --git a/lib/qe_tactic.cpp b/src/muz_qe/qe_tactic.cpp similarity index 100% rename from lib/qe_tactic.cpp rename to src/muz_qe/qe_tactic.cpp diff --git a/lib/qe_tactic.h b/src/muz_qe/qe_tactic.h similarity index 100% rename from lib/qe_tactic.h rename to src/muz_qe/qe_tactic.h diff --git a/lib/replace_proof_converter.cpp b/src/muz_qe/replace_proof_converter.cpp similarity index 100% rename from lib/replace_proof_converter.cpp rename to src/muz_qe/replace_proof_converter.cpp diff --git a/lib/replace_proof_converter.h b/src/muz_qe/replace_proof_converter.h similarity index 100% rename from lib/replace_proof_converter.h rename to src/muz_qe/replace_proof_converter.h diff --git a/lib/unit_subsumption_tactic.cpp b/src/muz_qe/unit_subsumption_tactic.cpp similarity index 100% rename from lib/unit_subsumption_tactic.cpp rename to src/muz_qe/unit_subsumption_tactic.cpp diff --git a/lib/unit_subsumption_tactic.h b/src/muz_qe/unit_subsumption_tactic.h similarity index 100% rename from lib/unit_subsumption_tactic.h rename to src/muz_qe/unit_subsumption_tactic.h diff --git a/lib/elim_term_ite.cpp b/src/normal_forms/elim_term_ite.cpp similarity index 100% rename from lib/elim_term_ite.cpp rename to src/normal_forms/elim_term_ite.cpp diff --git a/lib/elim_term_ite.h b/src/normal_forms/elim_term_ite.h similarity index 100% rename from lib/elim_term_ite.h rename to src/normal_forms/elim_term_ite.h diff --git a/src/pattern/pattern_inference.cpp b/src/pattern/pattern_inference.cpp index 07e649905..79cf41a71 100644 --- a/src/pattern/pattern_inference.cpp +++ b/src/pattern/pattern_inference.cpp @@ -87,7 +87,7 @@ bool smaller_pattern::operator()(unsigned num_bindings, expr * p1, expr * p2) { return process(p1, p2); } -pattern_inference::pattern_inference(ast_manager & m, pattern_inference_params & params): +pattern_inference::pattern_inference(ast_manager & m, pattern_inference_params & params, pattern_database * db): simplifier(m), m_params(params), m_bfid(m.get_basic_family_id()), @@ -99,7 +99,7 @@ pattern_inference::pattern_inference(ast_manager & m, pattern_inference_params & m_pattern_weight_lt(m_candidates_info), m_collect(m, *this), m_contains_subpattern(*this), - m_database(m) { + m_database(db) { if (params.m_pi_arith == AP_NO) register_forbidden_family(m_afid); enable_ac_support(false); @@ -574,8 +574,6 @@ void pattern_inference::mk_patterns(unsigned num_bindings, m_candidates.reset(); } -#include"database.h" // defines g_pattern_database - void pattern_inference::reduce1_quantifier(quantifier * q) { TRACE("pattern_inference", tout << "processing:\n" << mk_pp(q, m_manager) << "\n";); if (!q->is_forall()) { @@ -585,11 +583,10 @@ void pattern_inference::reduce1_quantifier(quantifier * q) { int weight = q->get_weight(); - if (m_params.m_pi_use_database) { - m_database.initialize(g_pattern_database); + if (m_database) { app_ref_vector new_patterns(m_manager); unsigned new_weight; - if (m_database.match_quantifier(q, new_patterns, new_weight)) { + if (m_database->match_quantifier(q, new_patterns, new_weight)) { #ifdef Z3DEBUG for (unsigned i = 0; i < new_patterns.size(); i++) { SASSERT(is_well_sorted(m_manager, new_patterns.get(i))); } #endif diff --git a/src/pattern/pattern_inference.h b/src/pattern/pattern_inference.h index 057a74f76..c477b0228 100644 --- a/src/pattern/pattern_inference.h +++ b/src/pattern/pattern_inference.h @@ -28,7 +28,13 @@ Revision History: #include"obj_hashtable.h" #include"obj_pair_hashtable.h" #include"map.h" -#include"expr_pattern_match.h" + +class pattern_database { +public: + virtual ~pattern_database() {} + virtual void initialize(char const * smt_patterns) = 0; + virtual bool match_quantifier(quantifier * qf, app_ref_vector & patterns, unsigned & weight) = 0; +}; /** \brief A pattern p_1 is smaller than a pattern p_2 iff @@ -188,8 +194,8 @@ class pattern_inference : public simplifier { } }; - ptr_vector m_pre_patterns; - expr_pattern_match m_database; + ptr_vector m_pre_patterns; + pattern_database * m_database; void candidates2unary_patterns(ptr_vector const & candidate_patterns, ptr_vector & remaining_candidate_patterns, @@ -217,7 +223,7 @@ class pattern_inference : public simplifier { virtual void reduce1_quantifier(quantifier * q); public: - pattern_inference(ast_manager & m, pattern_inference_params & params); + pattern_inference(ast_manager & m, pattern_inference_params & params, pattern_database * db); void register_forbidden_family(family_id fid) { SASSERT(fid != m_bfid); diff --git a/lib/proof_checker.cpp b/src/proof_checker/proof_checker.cpp similarity index 100% rename from lib/proof_checker.cpp rename to src/proof_checker/proof_checker.cpp diff --git a/lib/proof_checker.h b/src/proof_checker/proof_checker.h similarity index 100% rename from lib/proof_checker.h rename to src/proof_checker/proof_checker.h diff --git a/lib/factor_rewriter.cpp b/src/rewriter/factor_rewriter.cpp similarity index 100% rename from lib/factor_rewriter.cpp rename to src/rewriter/factor_rewriter.cpp diff --git a/lib/factor_rewriter.h b/src/rewriter/factor_rewriter.h similarity index 100% rename from lib/factor_rewriter.h rename to src/rewriter/factor_rewriter.h diff --git a/lib/quant_hoist.cpp b/src/rewriter/quant_hoist.cpp similarity index 100% rename from lib/quant_hoist.cpp rename to src/rewriter/quant_hoist.cpp diff --git a/lib/quant_hoist.h b/src/rewriter/quant_hoist.h similarity index 100% rename from lib/quant_hoist.h rename to src/rewriter/quant_hoist.h diff --git a/src/sat_core/sat_types.h b/src/sat/sat_types.h similarity index 100% rename from src/sat_core/sat_types.h rename to src/sat/sat_types.h diff --git a/lib/assertion_set2sat.cpp b/src/sat_strategy/assertion_set2sat.cpp similarity index 90% rename from lib/assertion_set2sat.cpp rename to src/sat_strategy/assertion_set2sat.cpp index 11fc66228..b81c32e51 100644 --- a/lib/assertion_set2sat.cpp +++ b/src/sat_strategy/assertion_set2sat.cpp @@ -715,3 +715,77 @@ void sat2assertion_set::set_cancel(bool f) { m_imp->set_cancel(f); } } + +// HACK introduced during code reorg. +// NOTE: the whole file will be deleted. +struct collect_boolean_interface_proc2 { + struct visitor { + obj_hashtable & m_r; + visitor(obj_hashtable & r):m_r(r) {} + void operator()(var * n) {} + void operator()(app * n) { if (is_uninterp_const(n)) m_r.insert(n); } + void operator()(quantifier * n) {} + }; + + ast_manager & m; + expr_fast_mark2 fvisited; + expr_fast_mark1 tvisited; + ptr_vector todo; + visitor proc; + + collect_boolean_interface_proc2(ast_manager & _m, obj_hashtable & r): + m(_m), + proc(r) { + } + + void process(expr * f) { + if (fvisited.is_marked(f)) + return; + fvisited.mark(f); + todo.push_back(f); + while (!todo.empty()) { + expr * t = todo.back(); + todo.pop_back(); + if (is_uninterp_const(t)) + continue; + if (is_app(t) && to_app(t)->get_family_id() == m.get_basic_family_id() && to_app(t)->get_num_args() > 0) { + decl_kind k = to_app(t)->get_decl_kind(); + if (k == OP_OR || k == OP_NOT || k == OP_IFF || ((k == OP_EQ || k == OP_ITE) && m.is_bool(to_app(t)->get_arg(1)))) { + unsigned num = to_app(t)->get_num_args(); + for (unsigned i = 0; i < num; i++) { + expr * arg = to_app(t)->get_arg(i); + if (fvisited.is_marked(arg)) + continue; + fvisited.mark(arg); + todo.push_back(arg); + } + } + } + else { + quick_for_each_expr(proc, tvisited, t); + } + } + } + + template + void operator()(T const & g) { + unsigned sz = g.size(); + for (unsigned i = 0; i < sz; i++) + process(g.form(i)); + } + + void operator()(unsigned sz, expr * const * fs) { + for (unsigned i = 0; i < sz; i++) + process(fs[i]); + } +}; + +template +void collect_boolean_interface_core2(T const & s, obj_hashtable & r) { + collect_boolean_interface_proc2 proc(s.m(), r); + proc(s); +} + +void collect_boolean_interface(assertion_set const & s, obj_hashtable & r) { + collect_boolean_interface_core2(s, r); +} diff --git a/lib/assertion_set2sat.h b/src/sat_strategy/assertion_set2sat.h similarity index 96% rename from lib/assertion_set2sat.h rename to src/sat_strategy/assertion_set2sat.h index b58f6d647..8f90b1367 100644 --- a/lib/assertion_set2sat.h +++ b/src/sat_strategy/assertion_set2sat.h @@ -35,6 +35,9 @@ Notes: #include"model_converter.h" #include"atom2bool_var.h" +class assertion_set; // TODO: delete +void collect_boolean_interface(assertion_set const & s, obj_hashtable & r); + MK_ST_EXCEPTION(assertion_set2sat_exception); class assertion_set2sat { diff --git a/lib/sat_solver_strategy.cpp b/src/sat_strategy/sat_solver_strategy.cpp similarity index 100% rename from lib/sat_solver_strategy.cpp rename to src/sat_strategy/sat_solver_strategy.cpp diff --git a/lib/sat_solver_strategy.h b/src/sat_strategy/sat_solver_strategy.h similarity index 100% rename from lib/sat_solver_strategy.h rename to src/sat_strategy/sat_solver_strategy.h diff --git a/lib/atom2bool_var.cpp b/src/sat_tactic/atom2bool_var.cpp similarity index 95% rename from lib/atom2bool_var.cpp rename to src/sat_tactic/atom2bool_var.cpp index 8176fdb53..935eeb28e 100644 --- a/lib/atom2bool_var.cpp +++ b/src/sat_tactic/atom2bool_var.cpp @@ -19,7 +19,6 @@ Notes: #include"atom2bool_var.h" #include"ast_smt2_pp.h" #include"ref_util.h" -#include"assertion_set.h" // TODO delete #include"goal.h" void atom2bool_var::mk_inv(expr_ref_vector & lit2expr) const { @@ -107,10 +106,6 @@ void collect_boolean_interface_core(T const & s, obj_hashtable & r) { proc(s); } -void collect_boolean_interface(assertion_set const & s, obj_hashtable & r) { - collect_boolean_interface_core(s, r); -} - void collect_boolean_interface(goal const & g, obj_hashtable & r) { collect_boolean_interface_core(g, r); } diff --git a/lib/atom2bool_var.h b/src/sat_tactic/atom2bool_var.h similarity index 87% rename from lib/atom2bool_var.h rename to src/sat_tactic/atom2bool_var.h index 8dbff5ea4..4d6ce79e0 100644 --- a/lib/atom2bool_var.h +++ b/src/sat_tactic/atom2bool_var.h @@ -35,10 +35,8 @@ public: bool interpreted_atoms() const { return expr2var::interpreted_vars(); } }; -class assertion_set; // TODO: delete class goal; -void collect_boolean_interface(assertion_set const & s, obj_hashtable & r); // TODO delete void collect_boolean_interface(goal const & g, obj_hashtable & r); void collect_boolean_interface(ast_manager & m, unsigned num, expr * const * fs, obj_hashtable & r); diff --git a/lib/goal2sat.cpp b/src/sat_tactic/goal2sat.cpp similarity index 100% rename from lib/goal2sat.cpp rename to src/sat_tactic/goal2sat.cpp diff --git a/lib/goal2sat.h b/src/sat_tactic/goal2sat.h similarity index 100% rename from lib/goal2sat.h rename to src/sat_tactic/goal2sat.h diff --git a/lib/sat_tactic.cpp b/src/sat_tactic/sat_tactic.cpp similarity index 100% rename from lib/sat_tactic.cpp rename to src/sat_tactic/sat_tactic.cpp diff --git a/lib/sat_tactic.h b/src/sat_tactic/sat_tactic.h similarity index 100% rename from lib/sat_tactic.h rename to src/sat_tactic/sat_tactic.h diff --git a/src/old_params/arith_simplifier_params.cpp b/src/simplifier/arith_simplifier_params.cpp similarity index 100% rename from src/old_params/arith_simplifier_params.cpp rename to src/simplifier/arith_simplifier_params.cpp diff --git a/src/old_params/arith_simplifier_params.h b/src/simplifier/arith_simplifier_params.h similarity index 100% rename from src/old_params/arith_simplifier_params.h rename to src/simplifier/arith_simplifier_params.h diff --git a/lib/bit2int.cpp b/src/simplifier/bit2int.cpp similarity index 100% rename from lib/bit2int.cpp rename to src/simplifier/bit2int.cpp diff --git a/lib/bit2int.h b/src/simplifier/bit2int.h similarity index 100% rename from lib/bit2int.h rename to src/simplifier/bit2int.h diff --git a/lib/bv_elim.cpp b/src/simplifier/bv_elim.cpp similarity index 100% rename from lib/bv_elim.cpp rename to src/simplifier/bv_elim.cpp diff --git a/lib/bv_elim.h b/src/simplifier/bv_elim.h similarity index 100% rename from lib/bv_elim.h rename to src/simplifier/bv_elim.h diff --git a/src/old_params/bv_simplifier_params.h b/src/simplifier/bv_simplifier_params.h similarity index 100% rename from src/old_params/bv_simplifier_params.h rename to src/simplifier/bv_simplifier_params.h diff --git a/lib/distribute_forall.cpp b/src/simplifier/distribute_forall.cpp similarity index 100% rename from lib/distribute_forall.cpp rename to src/simplifier/distribute_forall.cpp diff --git a/lib/distribute_forall.h b/src/simplifier/distribute_forall.h similarity index 100% rename from lib/distribute_forall.h rename to src/simplifier/distribute_forall.h diff --git a/lib/elim_bounds.cpp b/src/simplifier/elim_bounds.cpp similarity index 100% rename from lib/elim_bounds.cpp rename to src/simplifier/elim_bounds.cpp diff --git a/lib/elim_bounds.h b/src/simplifier/elim_bounds.h similarity index 100% rename from lib/elim_bounds.h rename to src/simplifier/elim_bounds.h diff --git a/lib/inj_axiom.cpp b/src/simplifier/inj_axiom.cpp similarity index 100% rename from lib/inj_axiom.cpp rename to src/simplifier/inj_axiom.cpp diff --git a/lib/inj_axiom.h b/src/simplifier/inj_axiom.h similarity index 100% rename from lib/inj_axiom.h rename to src/simplifier/inj_axiom.h diff --git a/lib/maximise_ac_sharing.cpp b/src/simplifier/maximise_ac_sharing.cpp similarity index 100% rename from lib/maximise_ac_sharing.cpp rename to src/simplifier/maximise_ac_sharing.cpp diff --git a/lib/maximise_ac_sharing.h b/src/simplifier/maximise_ac_sharing.h similarity index 100% rename from lib/maximise_ac_sharing.h rename to src/simplifier/maximise_ac_sharing.h diff --git a/lib/pull_ite_tree.cpp b/src/simplifier/pull_ite_tree.cpp similarity index 100% rename from lib/pull_ite_tree.cpp rename to src/simplifier/pull_ite_tree.cpp diff --git a/lib/pull_ite_tree.h b/src/simplifier/pull_ite_tree.h similarity index 100% rename from lib/pull_ite_tree.h rename to src/simplifier/pull_ite_tree.h diff --git a/src/old_params/theory_array_params.h b/src/simplifier/theory_array_params.h similarity index 100% rename from src/old_params/theory_array_params.h rename to src/simplifier/theory_array_params.h diff --git a/lib/arith_eq_adapter.cpp b/src/smt/arith_eq_adapter.cpp similarity index 100% rename from lib/arith_eq_adapter.cpp rename to src/smt/arith_eq_adapter.cpp diff --git a/lib/arith_eq_adapter.h b/src/smt/arith_eq_adapter.h similarity index 100% rename from lib/arith_eq_adapter.h rename to src/smt/arith_eq_adapter.h diff --git a/lib/arith_eq_solver.cpp b/src/smt/arith_eq_solver.cpp similarity index 100% rename from lib/arith_eq_solver.cpp rename to src/smt/arith_eq_solver.cpp diff --git a/lib/arith_eq_solver.h b/src/smt/arith_eq_solver.h similarity index 100% rename from lib/arith_eq_solver.h rename to src/smt/arith_eq_solver.h diff --git a/lib/arith_solver_plugin.cpp b/src/smt/arith_solver_plugin.cpp similarity index 100% rename from lib/arith_solver_plugin.cpp rename to src/smt/arith_solver_plugin.cpp diff --git a/lib/arith_solver_plugin.h b/src/smt/arith_solver_plugin.h similarity index 100% rename from lib/arith_solver_plugin.h rename to src/smt/arith_solver_plugin.h diff --git a/lib/asserted_formulas.cpp b/src/smt/asserted_formulas.cpp similarity index 99% rename from lib/asserted_formulas.cpp rename to src/smt/asserted_formulas.cpp index 6f7d8827e..f5d9c4891 100644 --- a/lib/asserted_formulas.cpp +++ b/src/smt/asserted_formulas.cpp @@ -42,7 +42,7 @@ Revision History: #include"warning.h" #include"eager_bit_blaster.h" #include"bit2int.h" -#include"qe.h" +// #include"qe.h" #include"distribute_forall.h" #include"demodulator.h" #include"quasi_macros.h" @@ -64,7 +64,6 @@ asserted_formulas::asserted_formulas(ast_manager & m, front_end_params & p): m_bv_sharing(m), m_user_rewriter(m), m_inconsistent(false), - m_quant_elim(m, p), m_cancel_flag(false) { m_bsimp = 0; @@ -574,10 +573,9 @@ void asserted_formulas::display_ll(std::ostream & out, ast_mark & pp_visited) co } void asserted_formulas::collect_statistics(statistics & st) const { - m_quant_elim.collect_statistics(st); + // m_quant_elim.collect_statistics(st); } - /** \brief Functor used to order solved equations x = t, in a way they can be solved efficiently. @@ -1107,7 +1105,7 @@ void asserted_formulas::reduce_and_solve() { void asserted_formulas::infer_patterns() { IF_IVERBOSE(10, verbose_stream() << "pattern inference...\n";); TRACE("before_pattern_inference", display(tout);); - pattern_inference infer(m_manager, m_params); + pattern_inference infer(m_manager, m_params, m_database.get()); expr_ref_vector new_exprs(m_manager); proof_ref_vector new_prs(m_manager); unsigned i = m_asserted_qhead; @@ -1433,8 +1431,13 @@ void asserted_formulas::apply_der() { MK_SIMPLIFIER(cheap_quant_fourier_motzkin, elim_bounds_star functor(m_manager), "elim_bounds", "cheap fourier-motzkin", true); -MK_SIMPLIFIER(quant_elim, qe::expr_quant_elim_star1 &functor = m_quant_elim, - "quantifiers", "quantifier elimination procedures", true); +// MK_SIMPLIFIER(quant_elim, qe::expr_quant_elim_star1 &functor = m_quant_elim, +// "quantifiers", "quantifier elimination procedures", true); + +bool asserted_formulas::quant_elim() { + throw default_exception("QUANT_ELIM option is deprecated, please consider using the 'qe' tactic."); + return false; +} MK_SIMPLIFIER(apply_eager_bit_blaster, eager_bit_blaster functor(m_manager, m_params), "eager_bb", "eager bit blasting", false); diff --git a/lib/asserted_formulas.h b/src/smt/asserted_formulas.h similarity index 89% rename from lib/asserted_formulas.h rename to src/smt/asserted_formulas.h index 6ea0e793b..a89385958 100644 --- a/lib/asserted_formulas.h +++ b/src/smt/asserted_formulas.h @@ -29,25 +29,27 @@ Revision History: #include"solver_plugin.h" #include"maximise_ac_sharing.h" #include"bit2int.h" -#include"qe.h" +// #include"qe.h" #include"statistics.h" #include"user_rewriter.h" +#include"pattern_inference.h" class arith_simplifier_plugin; class bv_simplifier_plugin; class asserted_formulas { - ast_manager & m_manager; - front_end_params & m_params; - simplifier m_pre_simplifier; - subst_simplifier m_simplifier; - basic_simplifier_plugin * m_bsimp; - bv_simplifier_plugin * m_bvsimp; - defined_names m_defined_names; - static_features m_static_features; - expr_ref_vector m_asserted_formulas; // formulas asserted by user - proof_ref_vector m_asserted_formula_prs; // proofs for the asserted formulas. - unsigned m_asserted_qhead; + ast_manager & m_manager; + front_end_params & m_params; + scoped_ptr m_database; + simplifier m_pre_simplifier; + subst_simplifier m_simplifier; + basic_simplifier_plugin * m_bsimp; + bv_simplifier_plugin * m_bvsimp; + defined_names m_defined_names; + static_features m_static_features; + expr_ref_vector m_asserted_formulas; // formulas asserted by user + proof_ref_vector m_asserted_formula_prs; // proofs for the asserted formulas. + unsigned m_asserted_qhead; expr_map m_subst; ptr_vector m_vars; // domain of m_subst @@ -69,7 +71,7 @@ class asserted_formulas { user_rewriter m_user_rewriter; bool m_inconsistent; - qe::expr_quant_elim_star1 m_quant_elim; + // qe::expr_quant_elim_star1 m_quant_elim; struct scope { unsigned m_asserted_formulas_lim; @@ -166,6 +168,8 @@ public: void collect_statistics(statistics & st) const; // TODO: improve precision of the following method. bool has_quantifiers() const { return m_simplifier.visited_quantifier(); /* approximation */ } + + void set_pattern_database(pattern_database * db) { m_database = db; } // ----------------------------------- // diff --git a/lib/cached_var_subst.cpp b/src/smt/cached_var_subst.cpp similarity index 100% rename from lib/cached_var_subst.cpp rename to src/smt/cached_var_subst.cpp diff --git a/lib/cached_var_subst.h b/src/smt/cached_var_subst.h similarity index 100% rename from lib/cached_var_subst.h rename to src/smt/cached_var_subst.h diff --git a/lib/cost_evaluator.cpp b/src/smt/cost_evaluator.cpp similarity index 100% rename from lib/cost_evaluator.cpp rename to src/smt/cost_evaluator.cpp diff --git a/lib/cost_evaluator.h b/src/smt/cost_evaluator.h similarity index 100% rename from lib/cost_evaluator.h rename to src/smt/cost_evaluator.h diff --git a/src/pattern/database.h b/src/smt/database.h similarity index 100% rename from src/pattern/database.h rename to src/smt/database.h diff --git a/src/pattern/database.smt b/src/smt/database.smt similarity index 100% rename from src/pattern/database.smt rename to src/smt/database.smt diff --git a/lib/demodulator.cpp b/src/smt/demodulator.cpp similarity index 100% rename from lib/demodulator.cpp rename to src/smt/demodulator.cpp diff --git a/lib/demodulator.h b/src/smt/demodulator.h similarity index 100% rename from lib/demodulator.h rename to src/smt/demodulator.h diff --git a/lib/dyn_ack.cpp b/src/smt/dyn_ack.cpp similarity index 100% rename from lib/dyn_ack.cpp rename to src/smt/dyn_ack.cpp diff --git a/lib/dyn_ack.h b/src/smt/dyn_ack.h similarity index 100% rename from lib/dyn_ack.h rename to src/smt/dyn_ack.h diff --git a/lib/expr_context_simplifier.cpp b/src/smt/expr_context_simplifier.cpp similarity index 100% rename from lib/expr_context_simplifier.cpp rename to src/smt/expr_context_simplifier.cpp diff --git a/lib/expr_context_simplifier.h b/src/smt/expr_context_simplifier.h similarity index 100% rename from lib/expr_context_simplifier.h rename to src/smt/expr_context_simplifier.h diff --git a/lib/fingerprints.cpp b/src/smt/fingerprints.cpp similarity index 100% rename from lib/fingerprints.cpp rename to src/smt/fingerprints.cpp diff --git a/lib/fingerprints.h b/src/smt/fingerprints.h similarity index 100% rename from lib/fingerprints.h rename to src/smt/fingerprints.h diff --git a/lib/mam.cpp b/src/smt/mam.cpp similarity index 100% rename from lib/mam.cpp rename to src/smt/mam.cpp diff --git a/lib/mam.h b/src/smt/mam.h similarity index 100% rename from lib/mam.h rename to src/smt/mam.h diff --git a/lib/qi_queue.cpp b/src/smt/qi_queue.cpp similarity index 100% rename from lib/qi_queue.cpp rename to src/smt/qi_queue.cpp diff --git a/lib/qi_queue.h b/src/smt/qi_queue.h similarity index 100% rename from lib/qi_queue.h rename to src/smt/qi_queue.h diff --git a/lib/smt_almost_cg_table.cpp b/src/smt/smt_almost_cg_table.cpp similarity index 100% rename from lib/smt_almost_cg_table.cpp rename to src/smt/smt_almost_cg_table.cpp diff --git a/lib/smt_almost_cg_table.h b/src/smt/smt_almost_cg_table.h similarity index 100% rename from lib/smt_almost_cg_table.h rename to src/smt/smt_almost_cg_table.h diff --git a/lib/smt_b_justification.h b/src/smt/smt_b_justification.h similarity index 100% rename from lib/smt_b_justification.h rename to src/smt/smt_b_justification.h diff --git a/lib/smt_bool_var_data.h b/src/smt/smt_bool_var_data.h similarity index 100% rename from lib/smt_bool_var_data.h rename to src/smt/smt_bool_var_data.h diff --git a/lib/smt_case_split_queue.cpp b/src/smt/smt_case_split_queue.cpp similarity index 100% rename from lib/smt_case_split_queue.cpp rename to src/smt/smt_case_split_queue.cpp diff --git a/lib/smt_case_split_queue.h b/src/smt/smt_case_split_queue.h similarity index 100% rename from lib/smt_case_split_queue.h rename to src/smt/smt_case_split_queue.h diff --git a/lib/smt_cg_table.cpp b/src/smt/smt_cg_table.cpp similarity index 100% rename from lib/smt_cg_table.cpp rename to src/smt/smt_cg_table.cpp diff --git a/lib/smt_cg_table.h b/src/smt/smt_cg_table.h similarity index 100% rename from lib/smt_cg_table.h rename to src/smt/smt_cg_table.h diff --git a/lib/smt_checker.cpp b/src/smt/smt_checker.cpp similarity index 100% rename from lib/smt_checker.cpp rename to src/smt/smt_checker.cpp diff --git a/lib/smt_checker.h b/src/smt/smt_checker.h similarity index 100% rename from lib/smt_checker.h rename to src/smt/smt_checker.h diff --git a/lib/smt_clause.cpp b/src/smt/smt_clause.cpp similarity index 100% rename from lib/smt_clause.cpp rename to src/smt/smt_clause.cpp diff --git a/lib/smt_clause.h b/src/smt/smt_clause.h similarity index 100% rename from lib/smt_clause.h rename to src/smt/smt_clause.h diff --git a/lib/smt_conflict_resolution.cpp b/src/smt/smt_conflict_resolution.cpp similarity index 100% rename from lib/smt_conflict_resolution.cpp rename to src/smt/smt_conflict_resolution.cpp diff --git a/lib/smt_conflict_resolution.h b/src/smt/smt_conflict_resolution.h similarity index 100% rename from lib/smt_conflict_resolution.h rename to src/smt/smt_conflict_resolution.h diff --git a/lib/smt_context.cpp b/src/smt/smt_context.cpp similarity index 100% rename from lib/smt_context.cpp rename to src/smt/smt_context.cpp diff --git a/lib/smt_context.h b/src/smt/smt_context.h similarity index 100% rename from lib/smt_context.h rename to src/smt/smt_context.h diff --git a/lib/smt_context_inv.cpp b/src/smt/smt_context_inv.cpp similarity index 100% rename from lib/smt_context_inv.cpp rename to src/smt/smt_context_inv.cpp diff --git a/lib/smt_context_pp.cpp b/src/smt/smt_context_pp.cpp similarity index 100% rename from lib/smt_context_pp.cpp rename to src/smt/smt_context_pp.cpp diff --git a/lib/smt_context_stat.cpp b/src/smt/smt_context_stat.cpp similarity index 100% rename from lib/smt_context_stat.cpp rename to src/smt/smt_context_stat.cpp diff --git a/lib/smt_enode.cpp b/src/smt/smt_enode.cpp similarity index 100% rename from lib/smt_enode.cpp rename to src/smt/smt_enode.cpp diff --git a/lib/smt_enode.h b/src/smt/smt_enode.h similarity index 100% rename from lib/smt_enode.h rename to src/smt/smt_enode.h diff --git a/lib/smt_eq_justification.h b/src/smt/smt_eq_justification.h similarity index 100% rename from lib/smt_eq_justification.h rename to src/smt/smt_eq_justification.h diff --git a/lib/smt_failure.h b/src/smt/smt_failure.h similarity index 100% rename from lib/smt_failure.h rename to src/smt/smt_failure.h diff --git a/lib/smt_for_each_relevant_expr.cpp b/src/smt/smt_for_each_relevant_expr.cpp similarity index 100% rename from lib/smt_for_each_relevant_expr.cpp rename to src/smt/smt_for_each_relevant_expr.cpp diff --git a/lib/smt_for_each_relevant_expr.h b/src/smt/smt_for_each_relevant_expr.h similarity index 100% rename from lib/smt_for_each_relevant_expr.h rename to src/smt/smt_for_each_relevant_expr.h diff --git a/lib/smt_internalizer.cpp b/src/smt/smt_internalizer.cpp similarity index 100% rename from lib/smt_internalizer.cpp rename to src/smt/smt_internalizer.cpp diff --git a/lib/smt_justification.cpp b/src/smt/smt_justification.cpp similarity index 100% rename from lib/smt_justification.cpp rename to src/smt/smt_justification.cpp diff --git a/lib/smt_justification.h b/src/smt/smt_justification.h similarity index 100% rename from lib/smt_justification.h rename to src/smt/smt_justification.h diff --git a/lib/smt_literal.cpp b/src/smt/smt_literal.cpp similarity index 100% rename from lib/smt_literal.cpp rename to src/smt/smt_literal.cpp diff --git a/lib/smt_literal.h b/src/smt/smt_literal.h similarity index 100% rename from lib/smt_literal.h rename to src/smt/smt_literal.h diff --git a/lib/smt_model_checker.cpp b/src/smt/smt_model_checker.cpp similarity index 100% rename from lib/smt_model_checker.cpp rename to src/smt/smt_model_checker.cpp diff --git a/lib/smt_model_checker.h b/src/smt/smt_model_checker.h similarity index 100% rename from lib/smt_model_checker.h rename to src/smt/smt_model_checker.h diff --git a/lib/smt_model_finder.cpp b/src/smt/smt_model_finder.cpp similarity index 100% rename from lib/smt_model_finder.cpp rename to src/smt/smt_model_finder.cpp diff --git a/lib/smt_model_finder.h b/src/smt/smt_model_finder.h similarity index 100% rename from lib/smt_model_finder.h rename to src/smt/smt_model_finder.h diff --git a/lib/smt_model_generator.cpp b/src/smt/smt_model_generator.cpp similarity index 100% rename from lib/smt_model_generator.cpp rename to src/smt/smt_model_generator.cpp diff --git a/lib/smt_model_generator.h b/src/smt/smt_model_generator.h similarity index 100% rename from lib/smt_model_generator.h rename to src/smt/smt_model_generator.h diff --git a/lib/smt_quantifier.cpp b/src/smt/smt_quantifier.cpp similarity index 100% rename from lib/smt_quantifier.cpp rename to src/smt/smt_quantifier.cpp diff --git a/lib/smt_quantifier.h b/src/smt/smt_quantifier.h similarity index 100% rename from lib/smt_quantifier.h rename to src/smt/smt_quantifier.h diff --git a/lib/smt_quantifier_instances.h b/src/smt/smt_quantifier_instances.h similarity index 100% rename from lib/smt_quantifier_instances.h rename to src/smt/smt_quantifier_instances.h diff --git a/lib/smt_quantifier_stat.cpp b/src/smt/smt_quantifier_stat.cpp similarity index 100% rename from lib/smt_quantifier_stat.cpp rename to src/smt/smt_quantifier_stat.cpp diff --git a/lib/smt_quantifier_stat.h b/src/smt/smt_quantifier_stat.h similarity index 100% rename from lib/smt_quantifier_stat.h rename to src/smt/smt_quantifier_stat.h diff --git a/lib/smt_quick_checker.cpp b/src/smt/smt_quick_checker.cpp similarity index 100% rename from lib/smt_quick_checker.cpp rename to src/smt/smt_quick_checker.cpp diff --git a/lib/smt_quick_checker.h b/src/smt/smt_quick_checker.h similarity index 100% rename from lib/smt_quick_checker.h rename to src/smt/smt_quick_checker.h diff --git a/lib/smt_relevancy.cpp b/src/smt/smt_relevancy.cpp similarity index 100% rename from lib/smt_relevancy.cpp rename to src/smt/smt_relevancy.cpp diff --git a/lib/smt_relevancy.h b/src/smt/smt_relevancy.h similarity index 100% rename from lib/smt_relevancy.h rename to src/smt/smt_relevancy.h diff --git a/lib/smt_setup.cpp b/src/smt/smt_setup.cpp similarity index 100% rename from lib/smt_setup.cpp rename to src/smt/smt_setup.cpp diff --git a/lib/smt_setup.h b/src/smt/smt_setup.h similarity index 100% rename from lib/smt_setup.h rename to src/smt/smt_setup.h diff --git a/src/smt/smt_solver_strategy.cpp b/src/smt/smt_solver_strategy.cpp index 65dde6361..a7cd8a6b8 100644 --- a/src/smt/smt_solver_strategy.cpp +++ b/src/smt/smt_solver_strategy.cpp @@ -20,6 +20,8 @@ Notes: --*/ #include"smt_solver_strategy.h" #include"smt_solver.h" +#include"front_end_params.h" +#include"params2front_end_params.h" class as_st_solver : public assertion_set_strategy { scoped_ptr m_params; diff --git a/lib/smt_statistics.cpp b/src/smt/smt_statistics.cpp similarity index 100% rename from lib/smt_statistics.cpp rename to src/smt/smt_statistics.cpp diff --git a/lib/smt_statistics.h b/src/smt/smt_statistics.h similarity index 100% rename from lib/smt_statistics.h rename to src/smt/smt_statistics.h diff --git a/lib/smt_theory.cpp b/src/smt/smt_theory.cpp similarity index 100% rename from lib/smt_theory.cpp rename to src/smt/smt_theory.cpp diff --git a/lib/smt_theory.h b/src/smt/smt_theory.h similarity index 100% rename from lib/smt_theory.h rename to src/smt/smt_theory.h diff --git a/lib/smt_theory_var_list.h b/src/smt/smt_theory_var_list.h similarity index 100% rename from lib/smt_theory_var_list.h rename to src/smt/smt_theory_var_list.h diff --git a/lib/smt_types.h b/src/smt/smt_types.h similarity index 100% rename from lib/smt_types.h rename to src/smt/smt_types.h diff --git a/lib/solver_plugin.h b/src/smt/solver_plugin.h similarity index 100% rename from lib/solver_plugin.h rename to src/smt/solver_plugin.h diff --git a/lib/theory_arith.cpp b/src/smt/theory_arith.cpp similarity index 100% rename from lib/theory_arith.cpp rename to src/smt/theory_arith.cpp diff --git a/lib/theory_arith.h b/src/smt/theory_arith.h similarity index 100% rename from lib/theory_arith.h rename to src/smt/theory_arith.h diff --git a/lib/theory_arith_aux.h b/src/smt/theory_arith_aux.h similarity index 100% rename from lib/theory_arith_aux.h rename to src/smt/theory_arith_aux.h diff --git a/lib/theory_arith_core.h b/src/smt/theory_arith_core.h similarity index 100% rename from lib/theory_arith_core.h rename to src/smt/theory_arith_core.h diff --git a/lib/theory_arith_def.h b/src/smt/theory_arith_def.h similarity index 100% rename from lib/theory_arith_def.h rename to src/smt/theory_arith_def.h diff --git a/lib/theory_arith_eq.h b/src/smt/theory_arith_eq.h similarity index 100% rename from lib/theory_arith_eq.h rename to src/smt/theory_arith_eq.h diff --git a/lib/theory_arith_int.h b/src/smt/theory_arith_int.h similarity index 100% rename from lib/theory_arith_int.h rename to src/smt/theory_arith_int.h diff --git a/lib/theory_arith_inv.h b/src/smt/theory_arith_inv.h similarity index 100% rename from lib/theory_arith_inv.h rename to src/smt/theory_arith_inv.h diff --git a/lib/theory_arith_nl.h b/src/smt/theory_arith_nl.h similarity index 100% rename from lib/theory_arith_nl.h rename to src/smt/theory_arith_nl.h diff --git a/lib/theory_arith_pp.h b/src/smt/theory_arith_pp.h similarity index 100% rename from lib/theory_arith_pp.h rename to src/smt/theory_arith_pp.h diff --git a/lib/theory_array.cpp b/src/smt/theory_array.cpp similarity index 100% rename from lib/theory_array.cpp rename to src/smt/theory_array.cpp diff --git a/lib/theory_array.h b/src/smt/theory_array.h similarity index 100% rename from lib/theory_array.h rename to src/smt/theory_array.h diff --git a/lib/theory_array_base.cpp b/src/smt/theory_array_base.cpp similarity index 100% rename from lib/theory_array_base.cpp rename to src/smt/theory_array_base.cpp diff --git a/lib/theory_array_base.h b/src/smt/theory_array_base.h similarity index 100% rename from lib/theory_array_base.h rename to src/smt/theory_array_base.h diff --git a/lib/theory_array_full.cpp b/src/smt/theory_array_full.cpp similarity index 100% rename from lib/theory_array_full.cpp rename to src/smt/theory_array_full.cpp diff --git a/lib/theory_array_full.h b/src/smt/theory_array_full.h similarity index 100% rename from lib/theory_array_full.h rename to src/smt/theory_array_full.h diff --git a/lib/theory_bv.cpp b/src/smt/theory_bv.cpp similarity index 100% rename from lib/theory_bv.cpp rename to src/smt/theory_bv.cpp diff --git a/lib/theory_bv.h b/src/smt/theory_bv.h similarity index 100% rename from lib/theory_bv.h rename to src/smt/theory_bv.h diff --git a/lib/theory_datatype.cpp b/src/smt/theory_datatype.cpp similarity index 100% rename from lib/theory_datatype.cpp rename to src/smt/theory_datatype.cpp diff --git a/lib/theory_datatype.h b/src/smt/theory_datatype.h similarity index 100% rename from lib/theory_datatype.h rename to src/smt/theory_datatype.h diff --git a/lib/theory_dense_diff_logic.cpp b/src/smt/theory_dense_diff_logic.cpp similarity index 100% rename from lib/theory_dense_diff_logic.cpp rename to src/smt/theory_dense_diff_logic.cpp diff --git a/lib/theory_dense_diff_logic.h b/src/smt/theory_dense_diff_logic.h similarity index 100% rename from lib/theory_dense_diff_logic.h rename to src/smt/theory_dense_diff_logic.h diff --git a/lib/theory_dense_diff_logic_def.h b/src/smt/theory_dense_diff_logic_def.h similarity index 100% rename from lib/theory_dense_diff_logic_def.h rename to src/smt/theory_dense_diff_logic_def.h diff --git a/lib/theory_diff_logic.cpp b/src/smt/theory_diff_logic.cpp similarity index 100% rename from lib/theory_diff_logic.cpp rename to src/smt/theory_diff_logic.cpp diff --git a/lib/theory_diff_logic.h b/src/smt/theory_diff_logic.h similarity index 100% rename from lib/theory_diff_logic.h rename to src/smt/theory_diff_logic.h diff --git a/lib/theory_diff_logic_def.h b/src/smt/theory_diff_logic_def.h similarity index 100% rename from lib/theory_diff_logic_def.h rename to src/smt/theory_diff_logic_def.h diff --git a/lib/theory_dl.cpp b/src/smt/theory_dl.cpp similarity index 100% rename from lib/theory_dl.cpp rename to src/smt/theory_dl.cpp diff --git a/lib/theory_dl.h b/src/smt/theory_dl.h similarity index 100% rename from lib/theory_dl.h rename to src/smt/theory_dl.h diff --git a/lib/theory_dummy.cpp b/src/smt/theory_dummy.cpp similarity index 100% rename from lib/theory_dummy.cpp rename to src/smt/theory_dummy.cpp diff --git a/lib/theory_dummy.h b/src/smt/theory_dummy.h similarity index 100% rename from lib/theory_dummy.h rename to src/smt/theory_dummy.h diff --git a/lib/theory_instgen.cpp b/src/smt/theory_instgen.cpp similarity index 100% rename from lib/theory_instgen.cpp rename to src/smt/theory_instgen.cpp diff --git a/lib/theory_instgen.h b/src/smt/theory_instgen.h similarity index 100% rename from lib/theory_instgen.h rename to src/smt/theory_instgen.h diff --git a/lib/theory_seq_empty.h b/src/smt/theory_seq_empty.h similarity index 100% rename from lib/theory_seq_empty.h rename to src/smt/theory_seq_empty.h diff --git a/lib/user_rewriter.cpp b/src/smt/user_rewriter.cpp similarity index 100% rename from lib/user_rewriter.cpp rename to src/smt/user_rewriter.cpp diff --git a/lib/user_rewriter.h b/src/smt/user_rewriter.h similarity index 100% rename from lib/user_rewriter.h rename to src/smt/user_rewriter.h diff --git a/lib/uses_theory.cpp b/src/smt/uses_theory.cpp similarity index 100% rename from lib/uses_theory.cpp rename to src/smt/uses_theory.cpp diff --git a/lib/uses_theory.h b/src/smt/uses_theory.h similarity index 100% rename from lib/uses_theory.h rename to src/smt/uses_theory.h diff --git a/lib/watch_list.cpp b/src/smt/watch_list.cpp similarity index 100% rename from lib/watch_list.cpp rename to src/smt/watch_list.cpp diff --git a/lib/watch_list.h b/src/smt/watch_list.h similarity index 100% rename from lib/watch_list.h rename to src/smt/watch_list.h diff --git a/src/pattern/expr_pattern_match.cpp b/src/smtparser/expr_pattern_match.cpp similarity index 100% rename from src/pattern/expr_pattern_match.cpp rename to src/smtparser/expr_pattern_match.cpp diff --git a/src/pattern/expr_pattern_match.h b/src/smtparser/expr_pattern_match.h similarity index 94% rename from src/pattern/expr_pattern_match.h rename to src/smtparser/expr_pattern_match.h index eb3c05a94..f0075b1ba 100644 --- a/src/pattern/expr_pattern_match.h +++ b/src/smtparser/expr_pattern_match.h @@ -23,8 +23,9 @@ Notes: #include"ast.h" #include"map.h" #include"front_end_params.h" +#include"pattern_inference.h" -class expr_pattern_match { +class expr_pattern_match : public pattern_database { enum instr_kind { BACKTRACK, @@ -132,8 +133,8 @@ class expr_pattern_match { public: expr_pattern_match(ast_manager & manager); ~expr_pattern_match(); - bool match_quantifier(quantifier* qf, app_ref_vector& patterns, unsigned& weight); - void initialize(char const * database); + virtual bool match_quantifier(quantifier * qf, app_ref_vector & patterns, unsigned & weight); + virtual void initialize(char const * database); void display(std::ostream& out) const; private: diff --git a/lib/smtlib.cpp b/src/smtparser/smtlib.cpp similarity index 100% rename from lib/smtlib.cpp rename to src/smtparser/smtlib.cpp diff --git a/lib/smtlib.h b/src/smtparser/smtlib.h similarity index 100% rename from lib/smtlib.h rename to src/smtparser/smtlib.h diff --git a/lib/smtlib_solver.cpp b/src/smtparser/smtlib_solver.cpp similarity index 99% rename from lib/smtlib_solver.cpp rename to src/smtparser/smtlib_solver.cpp index f9ec045ce..ca5fa5555 100644 --- a/lib/smtlib_solver.cpp +++ b/src/smtparser/smtlib_solver.cpp @@ -26,7 +26,7 @@ Revision History: #include"spc_prover.h" #include"model.h" #include"model_v2_pp.h" -#include"expr2dot.h" +// #include"expr2dot.h" #include"solver.h" #include"smt_strategic_solver.h" #include"cmd_context.h" diff --git a/lib/smtlib_solver.h b/src/smtparser/smtlib_solver.h similarity index 100% rename from lib/smtlib_solver.h rename to src/smtparser/smtlib_solver.h diff --git a/lib/smtparser.cpp b/src/smtparser/smtparser.cpp similarity index 99% rename from lib/smtparser.cpp rename to src/smtparser/smtparser.cpp index 216f34b5b..e60ecb3e2 100644 --- a/lib/smtparser.cpp +++ b/src/smtparser/smtparser.cpp @@ -45,9 +45,9 @@ Revision History: #include"well_sorted.h" #include "str_hashtable.h" #include "front_end_params.h" -#include "z3_private.h" +// #include "z3_private.h" #include "stopwatch.h" -#include "dl_rule.h" +// #include "dl_rule.h" // private method defined in z3.cpp: front_end_params& Z3_API Z3_get_parameters(__in Z3_context c); diff --git a/lib/smtparser.h b/src/smtparser/smtparser.h similarity index 100% rename from lib/smtparser.h rename to src/smtparser/smtparser.h diff --git a/src/spc/expr_offset.h b/src/substitution/expr_offset.h similarity index 100% rename from src/spc/expr_offset.h rename to src/substitution/expr_offset.h diff --git a/src/spc/expr_offset_map.h b/src/substitution/expr_offset_map.h similarity index 100% rename from src/spc/expr_offset_map.h rename to src/substitution/expr_offset_map.h diff --git a/src/spc/matcher.cpp b/src/substitution/matcher.cpp similarity index 100% rename from src/spc/matcher.cpp rename to src/substitution/matcher.cpp diff --git a/src/spc/matcher.h b/src/substitution/matcher.h similarity index 100% rename from src/spc/matcher.h rename to src/substitution/matcher.h diff --git a/src/spc/substitution.cpp b/src/substitution/substitution.cpp similarity index 100% rename from src/spc/substitution.cpp rename to src/substitution/substitution.cpp diff --git a/src/spc/substitution.h b/src/substitution/substitution.h similarity index 100% rename from src/spc/substitution.h rename to src/substitution/substitution.h diff --git a/src/spc/substitution_tree.cpp b/src/substitution/substitution_tree.cpp similarity index 100% rename from src/spc/substitution_tree.cpp rename to src/substitution/substitution_tree.cpp diff --git a/src/spc/substitution_tree.h b/src/substitution/substitution_tree.h similarity index 100% rename from src/spc/substitution_tree.h rename to src/substitution/substitution_tree.h diff --git a/src/spc/unifier.cpp b/src/substitution/unifier.cpp similarity index 100% rename from src/spc/unifier.cpp rename to src/substitution/unifier.cpp diff --git a/src/spc/unifier.h b/src/substitution/unifier.h similarity index 100% rename from src/spc/unifier.h rename to src/substitution/unifier.h diff --git a/src/spc/var_offset_map.h b/src/substitution/var_offset_map.h similarity index 100% rename from src/spc/var_offset_map.h rename to src/substitution/var_offset_map.h diff --git a/lib/diff_logic.h b/src/util/diff_logic.h similarity index 100% rename from lib/diff_logic.h rename to src/util/diff_logic.h diff --git a/src/sat/luby.cpp b/src/util/luby.cpp similarity index 100% rename from src/sat/luby.cpp rename to src/util/luby.cpp diff --git a/src/sat/luby.h b/src/util/luby.h similarity index 100% rename from src/sat/luby.h rename to src/util/luby.h diff --git a/lib/union_find.h b/src/util/union_find.h similarity index 100% rename from lib/union_find.h rename to src/util/union_find.h From 3003ee5cb60bdfcc379a0f2efef1b6fa78d63670 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 13:40:22 -0700 Subject: [PATCH 15/54] Integrating Nikolaj's Saturday changes (at unstable branch) Signed-off-by: Leonardo de Moura --- ml/compile_mlapi.cmd | 2 +- src/api_headers/z3_api.h | 12 ++++++------ src/muz_qe/dl_util.h | 23 ++++++++++++++++++----- src/muz_qe/pdr_context.cpp | 12 ++---------- src/muz_qe/pdr_farkas_learner.cpp | 3 +-- src/muz_qe/pdr_util.cpp | 20 +++++--------------- 6 files changed, 33 insertions(+), 39 deletions(-) diff --git a/ml/compile_mlapi.cmd b/ml/compile_mlapi.cmd index 02a2f2745..db80521dc 100644 --- a/ml/compile_mlapi.cmd +++ b/ml/compile_mlapi.cmd @@ -22,7 +22,7 @@ if %STATIC% == true ( set Z3DBGLIB=z3lib.lib ) else ( set Z3LIB=z3.lib - set Z3DBGLIB=z3_dbg.lib + set Z3DBGLIB=z3.lib ) REM ocaml 3.11 and later calls the linker through flexlink diff --git a/src/api_headers/z3_api.h b/src/api_headers/z3_api.h index 29806e02e..70518b54c 100644 --- a/src/api_headers/z3_api.h +++ b/src/api_headers/z3_api.h @@ -1159,7 +1159,7 @@ typedef enum #endif -/* +/** Definitions for update_api.py def_Type('CONFIG', 'Z3_config', 'Config') @@ -3970,12 +3970,12 @@ END_MLAPI_EXCLUDE */ Z3_ast_kind Z3_API Z3_get_ast_kind(__in Z3_context c, __in Z3_ast a); - /* + /** def_API('Z3_is_app', BOOL, (_in(CONTEXT), _in(AST))) */ Z3_bool Z3_API Z3_is_app(__in Z3_context c, __in Z3_ast a); - /* + /** def_API('Z3_is_numeral_ast', BOOL, (_in(CONTEXT), _in(AST))) */ Z3_bool Z3_API Z3_is_numeral_ast(__in Z3_context c, __in Z3_ast a); @@ -4757,17 +4757,17 @@ END_MLAPI_EXCLUDE */ Z3_string Z3_API Z3_ast_to_string(__in Z3_context c, __in Z3_ast a); - /* + /** def_API('Z3_pattern_to_string', STRING, (_in(CONTEXT), _in(PATTERN))) */ Z3_string Z3_API Z3_pattern_to_string(__in Z3_context c, __in Z3_pattern p); - /* + /** def_API('Z3_sort_to_string', STRING, (_in(CONTEXT), _in(SORT))) */ Z3_string Z3_API Z3_sort_to_string(__in Z3_context c, __in Z3_sort s); - /* + /** def_API('Z3_func_decl_to_string', STRING, (_in(CONTEXT), _in(FUNC_DECL))) */ Z3_string Z3_API Z3_func_decl_to_string(__in Z3_context c, __in Z3_func_decl d); diff --git a/src/muz_qe/dl_util.h b/src/muz_qe/dl_util.h index 3e01fb8d2..1969da1a9 100644 --- a/src/muz_qe/dl_util.h +++ b/src/muz_qe/dl_util.h @@ -171,19 +171,32 @@ namespace datalog { */ void display_fact(context & ctx, app * f, std::ostream & out); - class scoped_coarse_proof { - ast_manager& m; + class scoped_proof_mode { + ast_manager& m; proof_gen_mode m_mode; public: - scoped_coarse_proof(ast_manager& m): m(m) { + scoped_proof_mode(ast_manager& m, proof_gen_mode mode): m(m) { m_mode = m.proof_mode(); - m.toggle_proof_mode(PGM_COARSE); + m.toggle_proof_mode(mode); } - ~scoped_coarse_proof() { + ~scoped_proof_mode() { m.toggle_proof_mode(m_mode); } + }; + class scoped_coarse_proof : public scoped_proof_mode { + public: + scoped_coarse_proof(ast_manager& m): scoped_proof_mode(m, PGM_COARSE) {} + }; + + class scoped_no_proof : public scoped_proof_mode { + public: + scoped_no_proof(ast_manager& m): scoped_proof_mode(m, PGM_DISABLED) {} + }; + + + class variable_intersection { bool values_match(const expr * v1, const expr * v2); diff --git a/src/muz_qe/pdr_context.cpp b/src/muz_qe/pdr_context.cpp index aa9b37344..b9ae51859 100644 --- a/src/muz_qe/pdr_context.cpp +++ b/src/muz_qe/pdr_context.cpp @@ -1618,24 +1618,16 @@ namespace pdr { - T(x0,x1,x) for transition - phi(x) for n.state() - - psi(x0,x1,x) for psi - M(x0,x1,x) for n.model() Assumptions: - M => psi - psi => phi & T - psi & M agree on which rules are taken. + M => phi & T In other words, - 1. psi is a weakening of M - 2. phi & T is implied by psi + 1. phi & T is implied by M Goal is to find phi0(x0), phi1(x1) such that: - phi(x) & phi0(x0) & phi1(x1) => psi(x0, x1, x) - - or at least (ignoring psi alltogether): - phi(x) & phi0(x0) & phi1(x1) => T(x0, x1, x) Strategy: diff --git a/src/muz_qe/pdr_farkas_learner.cpp b/src/muz_qe/pdr_farkas_learner.cpp index 9dbe91d0b..6494bd223 100644 --- a/src/muz_qe/pdr_farkas_learner.cpp +++ b/src/muz_qe/pdr_farkas_learner.cpp @@ -29,6 +29,7 @@ Revision History: #include "pdr_util.h" #include "pdr_farkas_learner.h" #include "th_rewriter.h" +#include "smtparser.h" #include "pdr_interpolant_provider.h" #include "ast_ll_pp.h" #include "arith_bounds_tactic.h" @@ -857,7 +858,6 @@ namespace pdr { void farkas_learner::test(char const* filename) { -#if 0 if (!filename) { test(); return; @@ -886,7 +886,6 @@ namespace pdr { expr_ref_vector lemmas(m); bool res = fl.get_lemma_guesses(A, B, lemmas); std::cout << "lemmas: " << pp_cube(lemmas, m) << "\n"; -#endif } }; diff --git a/src/muz_qe/pdr_util.cpp b/src/muz_qe/pdr_util.cpp index c09f1a246..1ec358fe1 100644 --- a/src/muz_qe/pdr_util.cpp +++ b/src/muz_qe/pdr_util.cpp @@ -911,22 +911,9 @@ bool model_evaluator::check_model(ptr_vector const& formulas) { template class rewriter_tpl; - class scoped_no_proof { - ast_manager& m; - proof_gen_mode m_mode; - public: - scoped_no_proof(ast_manager& m): m(m) { - m_mode = m.proof_mode(); - m.toggle_proof_mode(PGM_DISABLED); - } - ~scoped_no_proof() { - m.toggle_proof_mode(m_mode); - } - }; - void hoist_non_bool_if(expr_ref& fml) { ast_manager& m = fml.get_manager(); - scoped_no_proof _sp(m); + datalog::scoped_no_proof _sp(m); params_ref p; ite_hoister_star ite_rw(m, p); expr_ref tmp(m); @@ -951,7 +938,7 @@ bool model_evaluator::check_model(ptr_vector const& formulas) { } bool test_ineq(expr* e) const { - SASSERT(a.is_le(e) || a.is_ge(e)); + SASSERT(a.is_le(e) || a.is_ge(e) || m.is_eq(e)); SASSERT(to_app(e)->get_num_args() == 2); expr * lhs = to_app(e)->get_arg(0); expr * rhs = to_app(e)->get_arg(1); @@ -985,6 +972,9 @@ bool model_evaluator::check_model(ptr_vector const& formulas) { if (!a.is_int_real(lhs)) { return true; } + if (a.is_numeral(lhs) || a.is_numeral(rhs)) { + return test_ineq(e); + } return test_term(lhs) && test_term(rhs); } From dcf778a2875daad739cec466defb37d1a6c4ad67 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 14:16:35 -0700 Subject: [PATCH 16/54] Reorganizing the code Signed-off-by: Leonardo de Moura --- mk_make.py | 4 ++++ {lib => src/aig}/aig.cpp | 0 {lib => src/aig}/aig.h | 0 {lib => src/aig}/aig_tactic.cpp | 0 {lib => src/aig}/aig_tactic.h | 0 {lib => src/api}/api_arith.cpp | 0 {lib => src/api}/api_array.cpp | 0 {lib => src/api}/api_ast.cpp | 0 {lib => src/api}/api_ast_map.cpp | 0 {lib => src/api}/api_ast_map.h | 0 {lib => src/api}/api_ast_vector.cpp | 0 {lib => src/api}/api_ast_vector.h | 0 {lib => src/api}/api_bv.cpp | 0 {lib => src/api}/api_commands.cpp | 0 {lib => src/api}/api_config_params.cpp | 0 {lib => src/api}/api_config_params.h | 0 {lib => src/api}/api_context.cpp | 0 {lib => src/api}/api_context.h | 0 {lib => src/api}/api_datalog.cpp | 0 {lib => src/api}/api_datalog.h | 0 {lib => src/api}/api_datatype.cpp | 0 {lib => src/api}/api_goal.cpp | 0 {lib => src/api}/api_goal.h | 0 {lib => src/api}/api_log.cpp | 0 {lib => src/api}/api_log_macros.cpp | 0 {lib => src/api}/api_log_macros.h | 0 {lib => src/api}/api_model.cpp | 0 {lib => src/api}/api_model.h | 0 {lib => src/api}/api_numeral.cpp | 0 {lib => src/api}/api_params.cpp | 0 {lib => src/api}/api_parsers.cpp | 0 {lib => src/api}/api_poly.cpp | 0 {lib => src/api}/api_poly.h | 0 {lib => src/api}/api_quant.cpp | 0 {lib => src/api}/api_solver.cpp | 0 {lib => src/api}/api_solver.h | 0 {lib => src/api}/api_solver_old.cpp | 0 {lib => src/api}/api_stats.cpp | 0 {lib => src/api}/api_stats.h | 0 {lib => src/api}/api_tactic.cpp | 0 {lib => src/api}/api_tactic.h | 0 {lib => src/api}/api_user_theory.cpp | 0 {lib => src/api}/api_util.h | 0 {lib => src/arith_tactics}/add_bounds.cpp | 0 {lib => src/arith_tactics}/add_bounds.h | 0 {lib => src/arith_tactics}/add_bounds_tactic.cpp | 0 {lib => src/arith_tactics}/add_bounds_tactic.h | 0 {lib => src/arith_tactics}/bound_manager.cpp | 0 {lib => src/arith_tactics}/bound_manager.h | 0 {lib => src/arith_tactics}/bound_propagator.cpp | 0 {lib => src/arith_tactics}/bound_propagator.h | 0 {lib => src/arith_tactics}/degree_shift_tactic.cpp | 0 {lib => src/arith_tactics}/degree_shift_tactic.h | 0 {lib => src/arith_tactics}/diff_neq_tactic.cpp | 0 {lib => src/arith_tactics}/diff_neq_tactic.h | 0 {lib => src/arith_tactics}/fix_dl_var_tactic.cpp | 0 {lib => src/arith_tactics}/fix_dl_var_tactic.h | 0 {lib => src/arith_tactics}/fm_tactic.cpp | 0 {lib => src/arith_tactics}/fm_tactic.h | 0 {lib => src/arith_tactics}/lia2pb_tactic.cpp | 0 {lib => src/arith_tactics}/lia2pb_tactic.h | 0 {lib => src/arith_tactics}/linear_equation.cpp | 0 {lib => src/arith_tactics}/linear_equation.h | 0 {lib => src/arith_tactics}/lu.cpp | 0 {lib => src/arith_tactics}/lu.h | 0 {lib => src/arith_tactics}/mip_tactic.cpp | 0 {lib => src/arith_tactics}/mip_tactic.h | 0 {lib => src/arith_tactics}/nla2bv_tactic.cpp | 0 {lib => src/arith_tactics}/nla2bv_tactic.h | 0 {lib => src/arith_tactics}/normalize_bounds_tactic.cpp | 0 {lib => src/arith_tactics}/normalize_bounds_tactic.h | 0 {lib => src/arith_tactics}/pb2bv_model_converter.cpp | 0 {lib => src/arith_tactics}/pb2bv_model_converter.h | 0 {lib => src/arith_tactics}/pb2bv_tactic.cpp | 0 {lib => src/arith_tactics}/pb2bv_tactic.h | 0 {lib => src/arith_tactics}/probe_arith.cpp | 0 {lib => src/arith_tactics}/probe_arith.h | 0 {lib => src/arith_tactics}/propagate_ineqs_tactic.cpp | 0 {lib => src/arith_tactics}/propagate_ineqs_tactic.h | 0 {lib => src/arith_tactics}/purify_arith_tactic.cpp | 0 {lib => src/arith_tactics}/purify_arith_tactic.h | 0 {lib => src/arith_tactics}/recover_01_tactic.cpp | 0 {lib => src/arith_tactics}/recover_01_tactic.h | 0 {lib => src/arith_tactics}/vsubst_tactic.cpp | 0 {lib => src/arith_tactics}/vsubst_tactic.h | 0 {lib => src/core_tactics}/ctx_simplify_tactic.cpp | 4 ++-- {lib => src/core_tactics}/ctx_simplify_tactic.h | 0 {lib => src/core_tactics}/distribute_forall_tactic.cpp | 0 {lib => src/core_tactics}/distribute_forall_tactic.h | 0 {lib => src/core_tactics}/elim_uncnstr_tactic.cpp | 0 {lib => src/core_tactics}/elim_uncnstr_tactic.h | 0 {lib => src/core_tactics}/nnf_tactic.cpp | 0 {lib => src/core_tactics}/nnf_tactic.h | 0 {lib => src/core_tactics}/occf_tactic.cpp | 0 {lib => src/core_tactics}/occf_tactic.h | 0 {lib => src/core_tactics}/propagate_values_tactic.cpp | 0 {lib => src/core_tactics}/propagate_values_tactic.h | 0 {lib => src/core_tactics}/simplify_tactic.cpp | 0 {lib => src/core_tactics}/simplify_tactic.h | 0 {lib => src/core_tactics}/solve_eqs_tactic.cpp | 0 {lib => src/core_tactics}/solve_eqs_tactic.h | 0 {lib => src/core_tactics}/split_clause_tactic.cpp | 0 {lib => src/core_tactics}/split_clause_tactic.h | 0 {lib => src/core_tactics}/tseitin_cnf_tactic.cpp | 0 {lib => src/core_tactics}/tseitin_cnf_tactic.h | 0 src/{muz_qe => dead}/dl_simplifier_plugin.cpp | 0 src/{muz_qe => dead}/dl_simplifier_plugin.h | 0 {lib => src/dead}/smt_trail.h | 0 {lib => src/framework}/tactic2solver.cpp | 0 {lib => src/framework}/tactic2solver.h | 0 src/muz_qe/dl_context.cpp | 1 - src/muz_qe/pdr_farkas_learner.cpp | 5 ++++- {lib => src/rewriter}/mk_simplified_app.cpp | 0 {lib => src/rewriter}/mk_simplified_app.h | 0 {lib => src/user_ext}/user_decl_plugin.cpp | 0 {lib => src/user_ext}/user_decl_plugin.h | 0 {lib => src/user_ext}/user_simplifier_plugin.cpp | 0 {lib => src/user_ext}/user_simplifier_plugin.h | 0 {lib => src/user_ext}/user_smt_theory.cpp | 0 {lib => src/user_ext}/user_smt_theory.h | 0 120 files changed, 10 insertions(+), 4 deletions(-) rename {lib => src/aig}/aig.cpp (100%) rename {lib => src/aig}/aig.h (100%) rename {lib => src/aig}/aig_tactic.cpp (100%) rename {lib => src/aig}/aig_tactic.h (100%) rename {lib => src/api}/api_arith.cpp (100%) rename {lib => src/api}/api_array.cpp (100%) rename {lib => src/api}/api_ast.cpp (100%) rename {lib => src/api}/api_ast_map.cpp (100%) rename {lib => src/api}/api_ast_map.h (100%) rename {lib => src/api}/api_ast_vector.cpp (100%) rename {lib => src/api}/api_ast_vector.h (100%) rename {lib => src/api}/api_bv.cpp (100%) rename {lib => src/api}/api_commands.cpp (100%) rename {lib => src/api}/api_config_params.cpp (100%) rename {lib => src/api}/api_config_params.h (100%) rename {lib => src/api}/api_context.cpp (100%) rename {lib => src/api}/api_context.h (100%) rename {lib => src/api}/api_datalog.cpp (100%) rename {lib => src/api}/api_datalog.h (100%) rename {lib => src/api}/api_datatype.cpp (100%) rename {lib => src/api}/api_goal.cpp (100%) rename {lib => src/api}/api_goal.h (100%) rename {lib => src/api}/api_log.cpp (100%) rename {lib => src/api}/api_log_macros.cpp (100%) rename {lib => src/api}/api_log_macros.h (100%) rename {lib => src/api}/api_model.cpp (100%) rename {lib => src/api}/api_model.h (100%) rename {lib => src/api}/api_numeral.cpp (100%) rename {lib => src/api}/api_params.cpp (100%) rename {lib => src/api}/api_parsers.cpp (100%) rename {lib => src/api}/api_poly.cpp (100%) rename {lib => src/api}/api_poly.h (100%) rename {lib => src/api}/api_quant.cpp (100%) rename {lib => src/api}/api_solver.cpp (100%) rename {lib => src/api}/api_solver.h (100%) rename {lib => src/api}/api_solver_old.cpp (100%) rename {lib => src/api}/api_stats.cpp (100%) rename {lib => src/api}/api_stats.h (100%) rename {lib => src/api}/api_tactic.cpp (100%) rename {lib => src/api}/api_tactic.h (100%) rename {lib => src/api}/api_user_theory.cpp (100%) rename {lib => src/api}/api_util.h (100%) rename {lib => src/arith_tactics}/add_bounds.cpp (100%) rename {lib => src/arith_tactics}/add_bounds.h (100%) rename {lib => src/arith_tactics}/add_bounds_tactic.cpp (100%) rename {lib => src/arith_tactics}/add_bounds_tactic.h (100%) rename {lib => src/arith_tactics}/bound_manager.cpp (100%) rename {lib => src/arith_tactics}/bound_manager.h (100%) rename {lib => src/arith_tactics}/bound_propagator.cpp (100%) rename {lib => src/arith_tactics}/bound_propagator.h (100%) rename {lib => src/arith_tactics}/degree_shift_tactic.cpp (100%) rename {lib => src/arith_tactics}/degree_shift_tactic.h (100%) rename {lib => src/arith_tactics}/diff_neq_tactic.cpp (100%) rename {lib => src/arith_tactics}/diff_neq_tactic.h (100%) rename {lib => src/arith_tactics}/fix_dl_var_tactic.cpp (100%) rename {lib => src/arith_tactics}/fix_dl_var_tactic.h (100%) rename {lib => src/arith_tactics}/fm_tactic.cpp (100%) rename {lib => src/arith_tactics}/fm_tactic.h (100%) rename {lib => src/arith_tactics}/lia2pb_tactic.cpp (100%) rename {lib => src/arith_tactics}/lia2pb_tactic.h (100%) rename {lib => src/arith_tactics}/linear_equation.cpp (100%) rename {lib => src/arith_tactics}/linear_equation.h (100%) rename {lib => src/arith_tactics}/lu.cpp (100%) rename {lib => src/arith_tactics}/lu.h (100%) rename {lib => src/arith_tactics}/mip_tactic.cpp (100%) rename {lib => src/arith_tactics}/mip_tactic.h (100%) rename {lib => src/arith_tactics}/nla2bv_tactic.cpp (100%) rename {lib => src/arith_tactics}/nla2bv_tactic.h (100%) rename {lib => src/arith_tactics}/normalize_bounds_tactic.cpp (100%) rename {lib => src/arith_tactics}/normalize_bounds_tactic.h (100%) rename {lib => src/arith_tactics}/pb2bv_model_converter.cpp (100%) rename {lib => src/arith_tactics}/pb2bv_model_converter.h (100%) rename {lib => src/arith_tactics}/pb2bv_tactic.cpp (100%) rename {lib => src/arith_tactics}/pb2bv_tactic.h (100%) rename {lib => src/arith_tactics}/probe_arith.cpp (100%) rename {lib => src/arith_tactics}/probe_arith.h (100%) rename {lib => src/arith_tactics}/propagate_ineqs_tactic.cpp (100%) rename {lib => src/arith_tactics}/propagate_ineqs_tactic.h (100%) rename {lib => src/arith_tactics}/purify_arith_tactic.cpp (100%) rename {lib => src/arith_tactics}/purify_arith_tactic.h (100%) rename {lib => src/arith_tactics}/recover_01_tactic.cpp (100%) rename {lib => src/arith_tactics}/recover_01_tactic.h (100%) rename {lib => src/arith_tactics}/vsubst_tactic.cpp (100%) rename {lib => src/arith_tactics}/vsubst_tactic.h (100%) rename {lib => src/core_tactics}/ctx_simplify_tactic.cpp (99%) rename {lib => src/core_tactics}/ctx_simplify_tactic.h (100%) rename {lib => src/core_tactics}/distribute_forall_tactic.cpp (100%) rename {lib => src/core_tactics}/distribute_forall_tactic.h (100%) rename {lib => src/core_tactics}/elim_uncnstr_tactic.cpp (100%) rename {lib => src/core_tactics}/elim_uncnstr_tactic.h (100%) rename {lib => src/core_tactics}/nnf_tactic.cpp (100%) rename {lib => src/core_tactics}/nnf_tactic.h (100%) rename {lib => src/core_tactics}/occf_tactic.cpp (100%) rename {lib => src/core_tactics}/occf_tactic.h (100%) rename {lib => src/core_tactics}/propagate_values_tactic.cpp (100%) rename {lib => src/core_tactics}/propagate_values_tactic.h (100%) rename {lib => src/core_tactics}/simplify_tactic.cpp (100%) rename {lib => src/core_tactics}/simplify_tactic.h (100%) rename {lib => src/core_tactics}/solve_eqs_tactic.cpp (100%) rename {lib => src/core_tactics}/solve_eqs_tactic.h (100%) rename {lib => src/core_tactics}/split_clause_tactic.cpp (100%) rename {lib => src/core_tactics}/split_clause_tactic.h (100%) rename {lib => src/core_tactics}/tseitin_cnf_tactic.cpp (100%) rename {lib => src/core_tactics}/tseitin_cnf_tactic.h (100%) rename src/{muz_qe => dead}/dl_simplifier_plugin.cpp (100%) rename src/{muz_qe => dead}/dl_simplifier_plugin.h (100%) rename {lib => src/dead}/smt_trail.h (100%) rename {lib => src/framework}/tactic2solver.cpp (100%) rename {lib => src/framework}/tactic2solver.h (100%) rename {lib => src/rewriter}/mk_simplified_app.cpp (100%) rename {lib => src/rewriter}/mk_simplified_app.h (100%) rename {lib => src/user_ext}/user_decl_plugin.cpp (100%) rename {lib => src/user_ext}/user_decl_plugin.h (100%) rename {lib => src/user_ext}/user_simplifier_plugin.cpp (100%) rename {lib => src/user_ext}/user_simplifier_plugin.h (100%) rename {lib => src/user_ext}/user_smt_theory.cpp (100%) rename {lib => src/user_ext}/user_smt_theory.h (100%) diff --git a/mk_make.py b/mk_make.py index 288f4dfbc..2896f6828 100644 --- a/mk_make.py +++ b/mk_make.py @@ -51,9 +51,13 @@ add_lib('proof_checker', ['rewriter', 'spc']) add_lib('bit_blaster', ['rewriter', 'simplifier', 'old_params', 'framework', 'assertion_set']) add_lib('smt', ['assertion_set', 'bit_blaster', 'macros', 'normal_forms', 'framework', 'substitution', 'grobner', 'euclid', 'proof_checker', 'pattern', 'parser_util']) +add_lib('user_ext', ['smt']) +add_lib('core_tactics', ['framework', 'normal_forms']) +add_lib('arith_tactics', ['core_tactics', 'assertion_set']) add_lib('sat_tactic', ['framework', 'sat']) add_lib('sat_strategy', ['assertion_set', 'sat_tactic']) # TODO: split muz_qe into muz, qe. Perhaps, we should also consider breaking muz into muz and pdr. add_lib('muz_qe', ['smt', 'sat', 'smt2parser']) +add_lib('aig', ['framework', 'assertion_set']) # TODO: delete SMT 1.0 frontend add_lib('smtparser', ['api_headers', 'smt', 'spc']) diff --git a/lib/aig.cpp b/src/aig/aig.cpp similarity index 100% rename from lib/aig.cpp rename to src/aig/aig.cpp diff --git a/lib/aig.h b/src/aig/aig.h similarity index 100% rename from lib/aig.h rename to src/aig/aig.h diff --git a/lib/aig_tactic.cpp b/src/aig/aig_tactic.cpp similarity index 100% rename from lib/aig_tactic.cpp rename to src/aig/aig_tactic.cpp diff --git a/lib/aig_tactic.h b/src/aig/aig_tactic.h similarity index 100% rename from lib/aig_tactic.h rename to src/aig/aig_tactic.h diff --git a/lib/api_arith.cpp b/src/api/api_arith.cpp similarity index 100% rename from lib/api_arith.cpp rename to src/api/api_arith.cpp diff --git a/lib/api_array.cpp b/src/api/api_array.cpp similarity index 100% rename from lib/api_array.cpp rename to src/api/api_array.cpp diff --git a/lib/api_ast.cpp b/src/api/api_ast.cpp similarity index 100% rename from lib/api_ast.cpp rename to src/api/api_ast.cpp diff --git a/lib/api_ast_map.cpp b/src/api/api_ast_map.cpp similarity index 100% rename from lib/api_ast_map.cpp rename to src/api/api_ast_map.cpp diff --git a/lib/api_ast_map.h b/src/api/api_ast_map.h similarity index 100% rename from lib/api_ast_map.h rename to src/api/api_ast_map.h diff --git a/lib/api_ast_vector.cpp b/src/api/api_ast_vector.cpp similarity index 100% rename from lib/api_ast_vector.cpp rename to src/api/api_ast_vector.cpp diff --git a/lib/api_ast_vector.h b/src/api/api_ast_vector.h similarity index 100% rename from lib/api_ast_vector.h rename to src/api/api_ast_vector.h diff --git a/lib/api_bv.cpp b/src/api/api_bv.cpp similarity index 100% rename from lib/api_bv.cpp rename to src/api/api_bv.cpp diff --git a/lib/api_commands.cpp b/src/api/api_commands.cpp similarity index 100% rename from lib/api_commands.cpp rename to src/api/api_commands.cpp diff --git a/lib/api_config_params.cpp b/src/api/api_config_params.cpp similarity index 100% rename from lib/api_config_params.cpp rename to src/api/api_config_params.cpp diff --git a/lib/api_config_params.h b/src/api/api_config_params.h similarity index 100% rename from lib/api_config_params.h rename to src/api/api_config_params.h diff --git a/lib/api_context.cpp b/src/api/api_context.cpp similarity index 100% rename from lib/api_context.cpp rename to src/api/api_context.cpp diff --git a/lib/api_context.h b/src/api/api_context.h similarity index 100% rename from lib/api_context.h rename to src/api/api_context.h diff --git a/lib/api_datalog.cpp b/src/api/api_datalog.cpp similarity index 100% rename from lib/api_datalog.cpp rename to src/api/api_datalog.cpp diff --git a/lib/api_datalog.h b/src/api/api_datalog.h similarity index 100% rename from lib/api_datalog.h rename to src/api/api_datalog.h diff --git a/lib/api_datatype.cpp b/src/api/api_datatype.cpp similarity index 100% rename from lib/api_datatype.cpp rename to src/api/api_datatype.cpp diff --git a/lib/api_goal.cpp b/src/api/api_goal.cpp similarity index 100% rename from lib/api_goal.cpp rename to src/api/api_goal.cpp diff --git a/lib/api_goal.h b/src/api/api_goal.h similarity index 100% rename from lib/api_goal.h rename to src/api/api_goal.h diff --git a/lib/api_log.cpp b/src/api/api_log.cpp similarity index 100% rename from lib/api_log.cpp rename to src/api/api_log.cpp diff --git a/lib/api_log_macros.cpp b/src/api/api_log_macros.cpp similarity index 100% rename from lib/api_log_macros.cpp rename to src/api/api_log_macros.cpp diff --git a/lib/api_log_macros.h b/src/api/api_log_macros.h similarity index 100% rename from lib/api_log_macros.h rename to src/api/api_log_macros.h diff --git a/lib/api_model.cpp b/src/api/api_model.cpp similarity index 100% rename from lib/api_model.cpp rename to src/api/api_model.cpp diff --git a/lib/api_model.h b/src/api/api_model.h similarity index 100% rename from lib/api_model.h rename to src/api/api_model.h diff --git a/lib/api_numeral.cpp b/src/api/api_numeral.cpp similarity index 100% rename from lib/api_numeral.cpp rename to src/api/api_numeral.cpp diff --git a/lib/api_params.cpp b/src/api/api_params.cpp similarity index 100% rename from lib/api_params.cpp rename to src/api/api_params.cpp diff --git a/lib/api_parsers.cpp b/src/api/api_parsers.cpp similarity index 100% rename from lib/api_parsers.cpp rename to src/api/api_parsers.cpp diff --git a/lib/api_poly.cpp b/src/api/api_poly.cpp similarity index 100% rename from lib/api_poly.cpp rename to src/api/api_poly.cpp diff --git a/lib/api_poly.h b/src/api/api_poly.h similarity index 100% rename from lib/api_poly.h rename to src/api/api_poly.h diff --git a/lib/api_quant.cpp b/src/api/api_quant.cpp similarity index 100% rename from lib/api_quant.cpp rename to src/api/api_quant.cpp diff --git a/lib/api_solver.cpp b/src/api/api_solver.cpp similarity index 100% rename from lib/api_solver.cpp rename to src/api/api_solver.cpp diff --git a/lib/api_solver.h b/src/api/api_solver.h similarity index 100% rename from lib/api_solver.h rename to src/api/api_solver.h diff --git a/lib/api_solver_old.cpp b/src/api/api_solver_old.cpp similarity index 100% rename from lib/api_solver_old.cpp rename to src/api/api_solver_old.cpp diff --git a/lib/api_stats.cpp b/src/api/api_stats.cpp similarity index 100% rename from lib/api_stats.cpp rename to src/api/api_stats.cpp diff --git a/lib/api_stats.h b/src/api/api_stats.h similarity index 100% rename from lib/api_stats.h rename to src/api/api_stats.h diff --git a/lib/api_tactic.cpp b/src/api/api_tactic.cpp similarity index 100% rename from lib/api_tactic.cpp rename to src/api/api_tactic.cpp diff --git a/lib/api_tactic.h b/src/api/api_tactic.h similarity index 100% rename from lib/api_tactic.h rename to src/api/api_tactic.h diff --git a/lib/api_user_theory.cpp b/src/api/api_user_theory.cpp similarity index 100% rename from lib/api_user_theory.cpp rename to src/api/api_user_theory.cpp diff --git a/lib/api_util.h b/src/api/api_util.h similarity index 100% rename from lib/api_util.h rename to src/api/api_util.h diff --git a/lib/add_bounds.cpp b/src/arith_tactics/add_bounds.cpp similarity index 100% rename from lib/add_bounds.cpp rename to src/arith_tactics/add_bounds.cpp diff --git a/lib/add_bounds.h b/src/arith_tactics/add_bounds.h similarity index 100% rename from lib/add_bounds.h rename to src/arith_tactics/add_bounds.h diff --git a/lib/add_bounds_tactic.cpp b/src/arith_tactics/add_bounds_tactic.cpp similarity index 100% rename from lib/add_bounds_tactic.cpp rename to src/arith_tactics/add_bounds_tactic.cpp diff --git a/lib/add_bounds_tactic.h b/src/arith_tactics/add_bounds_tactic.h similarity index 100% rename from lib/add_bounds_tactic.h rename to src/arith_tactics/add_bounds_tactic.h diff --git a/lib/bound_manager.cpp b/src/arith_tactics/bound_manager.cpp similarity index 100% rename from lib/bound_manager.cpp rename to src/arith_tactics/bound_manager.cpp diff --git a/lib/bound_manager.h b/src/arith_tactics/bound_manager.h similarity index 100% rename from lib/bound_manager.h rename to src/arith_tactics/bound_manager.h diff --git a/lib/bound_propagator.cpp b/src/arith_tactics/bound_propagator.cpp similarity index 100% rename from lib/bound_propagator.cpp rename to src/arith_tactics/bound_propagator.cpp diff --git a/lib/bound_propagator.h b/src/arith_tactics/bound_propagator.h similarity index 100% rename from lib/bound_propagator.h rename to src/arith_tactics/bound_propagator.h diff --git a/lib/degree_shift_tactic.cpp b/src/arith_tactics/degree_shift_tactic.cpp similarity index 100% rename from lib/degree_shift_tactic.cpp rename to src/arith_tactics/degree_shift_tactic.cpp diff --git a/lib/degree_shift_tactic.h b/src/arith_tactics/degree_shift_tactic.h similarity index 100% rename from lib/degree_shift_tactic.h rename to src/arith_tactics/degree_shift_tactic.h diff --git a/lib/diff_neq_tactic.cpp b/src/arith_tactics/diff_neq_tactic.cpp similarity index 100% rename from lib/diff_neq_tactic.cpp rename to src/arith_tactics/diff_neq_tactic.cpp diff --git a/lib/diff_neq_tactic.h b/src/arith_tactics/diff_neq_tactic.h similarity index 100% rename from lib/diff_neq_tactic.h rename to src/arith_tactics/diff_neq_tactic.h diff --git a/lib/fix_dl_var_tactic.cpp b/src/arith_tactics/fix_dl_var_tactic.cpp similarity index 100% rename from lib/fix_dl_var_tactic.cpp rename to src/arith_tactics/fix_dl_var_tactic.cpp diff --git a/lib/fix_dl_var_tactic.h b/src/arith_tactics/fix_dl_var_tactic.h similarity index 100% rename from lib/fix_dl_var_tactic.h rename to src/arith_tactics/fix_dl_var_tactic.h diff --git a/lib/fm_tactic.cpp b/src/arith_tactics/fm_tactic.cpp similarity index 100% rename from lib/fm_tactic.cpp rename to src/arith_tactics/fm_tactic.cpp diff --git a/lib/fm_tactic.h b/src/arith_tactics/fm_tactic.h similarity index 100% rename from lib/fm_tactic.h rename to src/arith_tactics/fm_tactic.h diff --git a/lib/lia2pb_tactic.cpp b/src/arith_tactics/lia2pb_tactic.cpp similarity index 100% rename from lib/lia2pb_tactic.cpp rename to src/arith_tactics/lia2pb_tactic.cpp diff --git a/lib/lia2pb_tactic.h b/src/arith_tactics/lia2pb_tactic.h similarity index 100% rename from lib/lia2pb_tactic.h rename to src/arith_tactics/lia2pb_tactic.h diff --git a/lib/linear_equation.cpp b/src/arith_tactics/linear_equation.cpp similarity index 100% rename from lib/linear_equation.cpp rename to src/arith_tactics/linear_equation.cpp diff --git a/lib/linear_equation.h b/src/arith_tactics/linear_equation.h similarity index 100% rename from lib/linear_equation.h rename to src/arith_tactics/linear_equation.h diff --git a/lib/lu.cpp b/src/arith_tactics/lu.cpp similarity index 100% rename from lib/lu.cpp rename to src/arith_tactics/lu.cpp diff --git a/lib/lu.h b/src/arith_tactics/lu.h similarity index 100% rename from lib/lu.h rename to src/arith_tactics/lu.h diff --git a/lib/mip_tactic.cpp b/src/arith_tactics/mip_tactic.cpp similarity index 100% rename from lib/mip_tactic.cpp rename to src/arith_tactics/mip_tactic.cpp diff --git a/lib/mip_tactic.h b/src/arith_tactics/mip_tactic.h similarity index 100% rename from lib/mip_tactic.h rename to src/arith_tactics/mip_tactic.h diff --git a/lib/nla2bv_tactic.cpp b/src/arith_tactics/nla2bv_tactic.cpp similarity index 100% rename from lib/nla2bv_tactic.cpp rename to src/arith_tactics/nla2bv_tactic.cpp diff --git a/lib/nla2bv_tactic.h b/src/arith_tactics/nla2bv_tactic.h similarity index 100% rename from lib/nla2bv_tactic.h rename to src/arith_tactics/nla2bv_tactic.h diff --git a/lib/normalize_bounds_tactic.cpp b/src/arith_tactics/normalize_bounds_tactic.cpp similarity index 100% rename from lib/normalize_bounds_tactic.cpp rename to src/arith_tactics/normalize_bounds_tactic.cpp diff --git a/lib/normalize_bounds_tactic.h b/src/arith_tactics/normalize_bounds_tactic.h similarity index 100% rename from lib/normalize_bounds_tactic.h rename to src/arith_tactics/normalize_bounds_tactic.h diff --git a/lib/pb2bv_model_converter.cpp b/src/arith_tactics/pb2bv_model_converter.cpp similarity index 100% rename from lib/pb2bv_model_converter.cpp rename to src/arith_tactics/pb2bv_model_converter.cpp diff --git a/lib/pb2bv_model_converter.h b/src/arith_tactics/pb2bv_model_converter.h similarity index 100% rename from lib/pb2bv_model_converter.h rename to src/arith_tactics/pb2bv_model_converter.h diff --git a/lib/pb2bv_tactic.cpp b/src/arith_tactics/pb2bv_tactic.cpp similarity index 100% rename from lib/pb2bv_tactic.cpp rename to src/arith_tactics/pb2bv_tactic.cpp diff --git a/lib/pb2bv_tactic.h b/src/arith_tactics/pb2bv_tactic.h similarity index 100% rename from lib/pb2bv_tactic.h rename to src/arith_tactics/pb2bv_tactic.h diff --git a/lib/probe_arith.cpp b/src/arith_tactics/probe_arith.cpp similarity index 100% rename from lib/probe_arith.cpp rename to src/arith_tactics/probe_arith.cpp diff --git a/lib/probe_arith.h b/src/arith_tactics/probe_arith.h similarity index 100% rename from lib/probe_arith.h rename to src/arith_tactics/probe_arith.h diff --git a/lib/propagate_ineqs_tactic.cpp b/src/arith_tactics/propagate_ineqs_tactic.cpp similarity index 100% rename from lib/propagate_ineqs_tactic.cpp rename to src/arith_tactics/propagate_ineqs_tactic.cpp diff --git a/lib/propagate_ineqs_tactic.h b/src/arith_tactics/propagate_ineqs_tactic.h similarity index 100% rename from lib/propagate_ineqs_tactic.h rename to src/arith_tactics/propagate_ineqs_tactic.h diff --git a/lib/purify_arith_tactic.cpp b/src/arith_tactics/purify_arith_tactic.cpp similarity index 100% rename from lib/purify_arith_tactic.cpp rename to src/arith_tactics/purify_arith_tactic.cpp diff --git a/lib/purify_arith_tactic.h b/src/arith_tactics/purify_arith_tactic.h similarity index 100% rename from lib/purify_arith_tactic.h rename to src/arith_tactics/purify_arith_tactic.h diff --git a/lib/recover_01_tactic.cpp b/src/arith_tactics/recover_01_tactic.cpp similarity index 100% rename from lib/recover_01_tactic.cpp rename to src/arith_tactics/recover_01_tactic.cpp diff --git a/lib/recover_01_tactic.h b/src/arith_tactics/recover_01_tactic.h similarity index 100% rename from lib/recover_01_tactic.h rename to src/arith_tactics/recover_01_tactic.h diff --git a/lib/vsubst_tactic.cpp b/src/arith_tactics/vsubst_tactic.cpp similarity index 100% rename from lib/vsubst_tactic.cpp rename to src/arith_tactics/vsubst_tactic.cpp diff --git a/lib/vsubst_tactic.h b/src/arith_tactics/vsubst_tactic.h similarity index 100% rename from lib/vsubst_tactic.h rename to src/arith_tactics/vsubst_tactic.h diff --git a/lib/ctx_simplify_tactic.cpp b/src/core_tactics/ctx_simplify_tactic.cpp similarity index 99% rename from lib/ctx_simplify_tactic.cpp rename to src/core_tactics/ctx_simplify_tactic.cpp index 9b4ca6c54..91334fd5c 100644 --- a/lib/ctx_simplify_tactic.cpp +++ b/src/core_tactics/ctx_simplify_tactic.cpp @@ -18,7 +18,7 @@ Notes: --*/ #include"ctx_simplify_tactic.h" #include"mk_simplified_app.h" -#include"num_occurs.h" +#include"num_occurs_goal.h" #include"cooperate.h" #include"ast_ll_pp.h" #include"ast_smt2_pp.h" @@ -51,7 +51,7 @@ struct ctx_simplify_tactic::imp { unsigned m_scope_lvl; unsigned m_depth; unsigned m_num_steps; - num_occurs m_occs; + num_occurs_goal m_occs; mk_simplified_app m_mk_app; unsigned long long m_max_memory; unsigned m_max_depth; diff --git a/lib/ctx_simplify_tactic.h b/src/core_tactics/ctx_simplify_tactic.h similarity index 100% rename from lib/ctx_simplify_tactic.h rename to src/core_tactics/ctx_simplify_tactic.h diff --git a/lib/distribute_forall_tactic.cpp b/src/core_tactics/distribute_forall_tactic.cpp similarity index 100% rename from lib/distribute_forall_tactic.cpp rename to src/core_tactics/distribute_forall_tactic.cpp diff --git a/lib/distribute_forall_tactic.h b/src/core_tactics/distribute_forall_tactic.h similarity index 100% rename from lib/distribute_forall_tactic.h rename to src/core_tactics/distribute_forall_tactic.h diff --git a/lib/elim_uncnstr_tactic.cpp b/src/core_tactics/elim_uncnstr_tactic.cpp similarity index 100% rename from lib/elim_uncnstr_tactic.cpp rename to src/core_tactics/elim_uncnstr_tactic.cpp diff --git a/lib/elim_uncnstr_tactic.h b/src/core_tactics/elim_uncnstr_tactic.h similarity index 100% rename from lib/elim_uncnstr_tactic.h rename to src/core_tactics/elim_uncnstr_tactic.h diff --git a/lib/nnf_tactic.cpp b/src/core_tactics/nnf_tactic.cpp similarity index 100% rename from lib/nnf_tactic.cpp rename to src/core_tactics/nnf_tactic.cpp diff --git a/lib/nnf_tactic.h b/src/core_tactics/nnf_tactic.h similarity index 100% rename from lib/nnf_tactic.h rename to src/core_tactics/nnf_tactic.h diff --git a/lib/occf_tactic.cpp b/src/core_tactics/occf_tactic.cpp similarity index 100% rename from lib/occf_tactic.cpp rename to src/core_tactics/occf_tactic.cpp diff --git a/lib/occf_tactic.h b/src/core_tactics/occf_tactic.h similarity index 100% rename from lib/occf_tactic.h rename to src/core_tactics/occf_tactic.h diff --git a/lib/propagate_values_tactic.cpp b/src/core_tactics/propagate_values_tactic.cpp similarity index 100% rename from lib/propagate_values_tactic.cpp rename to src/core_tactics/propagate_values_tactic.cpp diff --git a/lib/propagate_values_tactic.h b/src/core_tactics/propagate_values_tactic.h similarity index 100% rename from lib/propagate_values_tactic.h rename to src/core_tactics/propagate_values_tactic.h diff --git a/lib/simplify_tactic.cpp b/src/core_tactics/simplify_tactic.cpp similarity index 100% rename from lib/simplify_tactic.cpp rename to src/core_tactics/simplify_tactic.cpp diff --git a/lib/simplify_tactic.h b/src/core_tactics/simplify_tactic.h similarity index 100% rename from lib/simplify_tactic.h rename to src/core_tactics/simplify_tactic.h diff --git a/lib/solve_eqs_tactic.cpp b/src/core_tactics/solve_eqs_tactic.cpp similarity index 100% rename from lib/solve_eqs_tactic.cpp rename to src/core_tactics/solve_eqs_tactic.cpp diff --git a/lib/solve_eqs_tactic.h b/src/core_tactics/solve_eqs_tactic.h similarity index 100% rename from lib/solve_eqs_tactic.h rename to src/core_tactics/solve_eqs_tactic.h diff --git a/lib/split_clause_tactic.cpp b/src/core_tactics/split_clause_tactic.cpp similarity index 100% rename from lib/split_clause_tactic.cpp rename to src/core_tactics/split_clause_tactic.cpp diff --git a/lib/split_clause_tactic.h b/src/core_tactics/split_clause_tactic.h similarity index 100% rename from lib/split_clause_tactic.h rename to src/core_tactics/split_clause_tactic.h diff --git a/lib/tseitin_cnf_tactic.cpp b/src/core_tactics/tseitin_cnf_tactic.cpp similarity index 100% rename from lib/tseitin_cnf_tactic.cpp rename to src/core_tactics/tseitin_cnf_tactic.cpp diff --git a/lib/tseitin_cnf_tactic.h b/src/core_tactics/tseitin_cnf_tactic.h similarity index 100% rename from lib/tseitin_cnf_tactic.h rename to src/core_tactics/tseitin_cnf_tactic.h diff --git a/src/muz_qe/dl_simplifier_plugin.cpp b/src/dead/dl_simplifier_plugin.cpp similarity index 100% rename from src/muz_qe/dl_simplifier_plugin.cpp rename to src/dead/dl_simplifier_plugin.cpp diff --git a/src/muz_qe/dl_simplifier_plugin.h b/src/dead/dl_simplifier_plugin.h similarity index 100% rename from src/muz_qe/dl_simplifier_plugin.h rename to src/dead/dl_simplifier_plugin.h diff --git a/lib/smt_trail.h b/src/dead/smt_trail.h similarity index 100% rename from lib/smt_trail.h rename to src/dead/smt_trail.h diff --git a/lib/tactic2solver.cpp b/src/framework/tactic2solver.cpp similarity index 100% rename from lib/tactic2solver.cpp rename to src/framework/tactic2solver.cpp diff --git a/lib/tactic2solver.h b/src/framework/tactic2solver.h similarity index 100% rename from lib/tactic2solver.h rename to src/framework/tactic2solver.h diff --git a/src/muz_qe/dl_context.cpp b/src/muz_qe/dl_context.cpp index b64bf3925..288aaf5bb 100644 --- a/src/muz_qe/dl_context.cpp +++ b/src/muz_qe/dl_context.cpp @@ -44,7 +44,6 @@ Revision History: #include"dl_compiler.h" #include"dl_instruction.h" #include"dl_context.h" -#include"dl_simplifier_plugin.h" #include"dl_smt_relation.h" #ifndef _EXTERNAL_RELEASE #include"dl_skip_table.h" diff --git a/src/muz_qe/pdr_farkas_learner.cpp b/src/muz_qe/pdr_farkas_learner.cpp index 6494bd223..b4c78cb01 100644 --- a/src/muz_qe/pdr_farkas_learner.cpp +++ b/src/muz_qe/pdr_farkas_learner.cpp @@ -29,7 +29,7 @@ Revision History: #include "pdr_util.h" #include "pdr_farkas_learner.h" #include "th_rewriter.h" -#include "smtparser.h" +// #include "smtparser.h" #include "pdr_interpolant_provider.h" #include "ast_ll_pp.h" #include "arith_bounds_tactic.h" @@ -858,6 +858,8 @@ namespace pdr { void farkas_learner::test(char const* filename) { +#if 0 + // [Leo]: disabled because it uses an external component: SMT 1.0 parser if (!filename) { test(); return; @@ -886,6 +888,7 @@ namespace pdr { expr_ref_vector lemmas(m); bool res = fl.get_lemma_guesses(A, B, lemmas); std::cout << "lemmas: " << pp_cube(lemmas, m) << "\n"; +#endif } }; diff --git a/lib/mk_simplified_app.cpp b/src/rewriter/mk_simplified_app.cpp similarity index 100% rename from lib/mk_simplified_app.cpp rename to src/rewriter/mk_simplified_app.cpp diff --git a/lib/mk_simplified_app.h b/src/rewriter/mk_simplified_app.h similarity index 100% rename from lib/mk_simplified_app.h rename to src/rewriter/mk_simplified_app.h diff --git a/lib/user_decl_plugin.cpp b/src/user_ext/user_decl_plugin.cpp similarity index 100% rename from lib/user_decl_plugin.cpp rename to src/user_ext/user_decl_plugin.cpp diff --git a/lib/user_decl_plugin.h b/src/user_ext/user_decl_plugin.h similarity index 100% rename from lib/user_decl_plugin.h rename to src/user_ext/user_decl_plugin.h diff --git a/lib/user_simplifier_plugin.cpp b/src/user_ext/user_simplifier_plugin.cpp similarity index 100% rename from lib/user_simplifier_plugin.cpp rename to src/user_ext/user_simplifier_plugin.cpp diff --git a/lib/user_simplifier_plugin.h b/src/user_ext/user_simplifier_plugin.h similarity index 100% rename from lib/user_simplifier_plugin.h rename to src/user_ext/user_simplifier_plugin.h diff --git a/lib/user_smt_theory.cpp b/src/user_ext/user_smt_theory.cpp similarity index 100% rename from lib/user_smt_theory.cpp rename to src/user_ext/user_smt_theory.cpp diff --git a/lib/user_smt_theory.h b/src/user_ext/user_smt_theory.h similarity index 100% rename from lib/user_smt_theory.h rename to src/user_ext/user_smt_theory.h From cf47f6ce601ab399c9bd207a0ab5ea877f807a95 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 14:19:00 -0700 Subject: [PATCH 17/54] renamed user_ext => user_plugin Signed-off-by: Leonardo de Moura --- mk_make.py | 2 +- src/{user_ext => user_plugin}/user_decl_plugin.cpp | 0 src/{user_ext => user_plugin}/user_decl_plugin.h | 0 src/{user_ext => user_plugin}/user_simplifier_plugin.cpp | 0 src/{user_ext => user_plugin}/user_simplifier_plugin.h | 0 src/{user_ext => user_plugin}/user_smt_theory.cpp | 0 src/{user_ext => user_plugin}/user_smt_theory.h | 0 7 files changed, 1 insertion(+), 1 deletion(-) rename src/{user_ext => user_plugin}/user_decl_plugin.cpp (100%) rename src/{user_ext => user_plugin}/user_decl_plugin.h (100%) rename src/{user_ext => user_plugin}/user_simplifier_plugin.cpp (100%) rename src/{user_ext => user_plugin}/user_simplifier_plugin.h (100%) rename src/{user_ext => user_plugin}/user_smt_theory.cpp (100%) rename src/{user_ext => user_plugin}/user_smt_theory.h (100%) diff --git a/mk_make.py b/mk_make.py index 2896f6828..723fe4027 100644 --- a/mk_make.py +++ b/mk_make.py @@ -51,7 +51,7 @@ add_lib('proof_checker', ['rewriter', 'spc']) add_lib('bit_blaster', ['rewriter', 'simplifier', 'old_params', 'framework', 'assertion_set']) add_lib('smt', ['assertion_set', 'bit_blaster', 'macros', 'normal_forms', 'framework', 'substitution', 'grobner', 'euclid', 'proof_checker', 'pattern', 'parser_util']) -add_lib('user_ext', ['smt']) +add_lib('user_plugin', ['smt']) add_lib('core_tactics', ['framework', 'normal_forms']) add_lib('arith_tactics', ['core_tactics', 'assertion_set']) add_lib('sat_tactic', ['framework', 'sat']) diff --git a/src/user_ext/user_decl_plugin.cpp b/src/user_plugin/user_decl_plugin.cpp similarity index 100% rename from src/user_ext/user_decl_plugin.cpp rename to src/user_plugin/user_decl_plugin.cpp diff --git a/src/user_ext/user_decl_plugin.h b/src/user_plugin/user_decl_plugin.h similarity index 100% rename from src/user_ext/user_decl_plugin.h rename to src/user_plugin/user_decl_plugin.h diff --git a/src/user_ext/user_simplifier_plugin.cpp b/src/user_plugin/user_simplifier_plugin.cpp similarity index 100% rename from src/user_ext/user_simplifier_plugin.cpp rename to src/user_plugin/user_simplifier_plugin.cpp diff --git a/src/user_ext/user_simplifier_plugin.h b/src/user_plugin/user_simplifier_plugin.h similarity index 100% rename from src/user_ext/user_simplifier_plugin.h rename to src/user_plugin/user_simplifier_plugin.h diff --git a/src/user_ext/user_smt_theory.cpp b/src/user_plugin/user_smt_theory.cpp similarity index 100% rename from src/user_ext/user_smt_theory.cpp rename to src/user_plugin/user_smt_theory.cpp diff --git a/src/user_ext/user_smt_theory.h b/src/user_plugin/user_smt_theory.h similarity index 100% rename from src/user_ext/user_smt_theory.h rename to src/user_plugin/user_smt_theory.h From ae400c4b2ac04462c0d12adba6f7aeca032da3df Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 14:39:59 -0700 Subject: [PATCH 18/54] checkpoint Signed-off-by: Leonardo de Moura --- lib/pattern_inference_params.cpp | 37 ------------------- mk_make.py | 2 +- .../arith_tactics}/bv2int_rewriter.cpp | 0 {lib => src/arith_tactics}/bv2int_rewriter.h | 0 .../arith_tactics}/bv2real_rewriter.cpp | 0 {lib => src/arith_tactics}/bv2real_rewriter.h | 0 .../arith_tactics}/elim_term_ite_strategy.cpp | 0 .../arith_tactics}/elim_term_ite_strategy.h | 0 .../arith_tactics}/smt_formula_compiler.cpp | 0 .../arith_tactics}/smt_formula_compiler.h | 0 {lib => src/arith_tactics}/smt_solver_exp.cpp | 0 {lib => src/arith_tactics}/smt_solver_exp.h | 0 .../arith_tactics}/smt_solver_strategy.cpp | 0 .../arith_tactics}/smt_solver_strategy.h | 0 {lib => src/arith_tactics}/smt_solver_types.h | 0 {lib => src/assertion_set}/elim_distinct.cpp | 0 {lib => src/assertion_set}/elim_distinct.h | 0 {lib => src/assertion_set}/reduce_args.cpp | 0 {lib => src/assertion_set}/reduce_args.h | 0 .../shallow_context_simplifier.cpp | 0 .../shallow_context_simplifier.h | 0 .../core_tactics}/cofactor_elim_term_ite.cpp | 0 .../core_tactics}/cofactor_elim_term_ite.h | 0 .../cofactor_term_ite_tactic.cpp | 0 .../core_tactics}/cofactor_term_ite_tactic.h | 0 .../core_tactics}/symmetry_reduce_tactic.cpp | 0 .../core_tactics}/symmetry_reduce_tactic.h | 0 {lib => src/dead}/assertion_stack.cpp | 0 {lib => src/dead}/assertion_stack.h | 0 {lib => src/dead}/parameters.h | 0 {lib => src/dead}/smt_classifier.h | 0 {lib => src/dead}/st_cmds.h | 0 {lib => src/extra_cmds}/dbg_cmds.cpp | 0 {lib => src/extra_cmds}/dbg_cmds.h | 0 {lib => src/extra_cmds}/polynomial_cmds.cpp | 0 {lib => src/extra_cmds}/polynomial_cmds.h | 0 {lib => src/extra_cmds}/subpaving_cmds.cpp | 0 {lib => src/extra_cmds}/subpaving_cmds.h | 0 {lib => src/muz_qe}/datalog_parser.cpp | 0 {lib => src/muz_qe}/datalog_parser.h | 0 .../vsubst_tactic.cpp | 0 src/{arith_tactics => muz_qe}/vsubst_tactic.h | 0 42 files changed, 1 insertion(+), 38 deletions(-) delete mode 100644 lib/pattern_inference_params.cpp rename {lib => src/arith_tactics}/bv2int_rewriter.cpp (100%) rename {lib => src/arith_tactics}/bv2int_rewriter.h (100%) rename {lib => src/arith_tactics}/bv2real_rewriter.cpp (100%) rename {lib => src/arith_tactics}/bv2real_rewriter.h (100%) rename {lib => src/arith_tactics}/elim_term_ite_strategy.cpp (100%) rename {lib => src/arith_tactics}/elim_term_ite_strategy.h (100%) rename {lib => src/arith_tactics}/smt_formula_compiler.cpp (100%) rename {lib => src/arith_tactics}/smt_formula_compiler.h (100%) rename {lib => src/arith_tactics}/smt_solver_exp.cpp (100%) rename {lib => src/arith_tactics}/smt_solver_exp.h (100%) rename {lib => src/arith_tactics}/smt_solver_strategy.cpp (100%) rename {lib => src/arith_tactics}/smt_solver_strategy.h (100%) rename {lib => src/arith_tactics}/smt_solver_types.h (100%) rename {lib => src/assertion_set}/elim_distinct.cpp (100%) rename {lib => src/assertion_set}/elim_distinct.h (100%) rename {lib => src/assertion_set}/reduce_args.cpp (100%) rename {lib => src/assertion_set}/reduce_args.h (100%) rename {lib => src/assertion_set}/shallow_context_simplifier.cpp (100%) rename {lib => src/assertion_set}/shallow_context_simplifier.h (100%) rename {lib => src/core_tactics}/cofactor_elim_term_ite.cpp (100%) rename {lib => src/core_tactics}/cofactor_elim_term_ite.h (100%) rename {lib => src/core_tactics}/cofactor_term_ite_tactic.cpp (100%) rename {lib => src/core_tactics}/cofactor_term_ite_tactic.h (100%) rename {lib => src/core_tactics}/symmetry_reduce_tactic.cpp (100%) rename {lib => src/core_tactics}/symmetry_reduce_tactic.h (100%) rename {lib => src/dead}/assertion_stack.cpp (100%) rename {lib => src/dead}/assertion_stack.h (100%) rename {lib => src/dead}/parameters.h (100%) rename {lib => src/dead}/smt_classifier.h (100%) rename {lib => src/dead}/st_cmds.h (100%) rename {lib => src/extra_cmds}/dbg_cmds.cpp (100%) rename {lib => src/extra_cmds}/dbg_cmds.h (100%) rename {lib => src/extra_cmds}/polynomial_cmds.cpp (100%) rename {lib => src/extra_cmds}/polynomial_cmds.h (100%) rename {lib => src/extra_cmds}/subpaving_cmds.cpp (100%) rename {lib => src/extra_cmds}/subpaving_cmds.h (100%) rename {lib => src/muz_qe}/datalog_parser.cpp (100%) rename {lib => src/muz_qe}/datalog_parser.h (100%) rename src/{arith_tactics => muz_qe}/vsubst_tactic.cpp (100%) rename src/{arith_tactics => muz_qe}/vsubst_tactic.h (100%) diff --git a/lib/pattern_inference_params.cpp b/lib/pattern_inference_params.cpp deleted file mode 100644 index 38fc24dca..000000000 --- a/lib/pattern_inference_params.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/*++ -Copyright (c) 2006 Microsoft Corporation - -Module Name: - - pattern_inference_params.cpp - -Abstract: - - - -Author: - - Leonardo de Moura (leonardo) 2008-03-24. - -Revision History: - ---*/ -#include"pattern_inference_params.h" - -void pattern_inference_params::register_params(ini_params & p) { - p.register_unsigned_param("PI_MAX_MULTI_PATTERNS", m_pi_max_multi_patterns, - "when patterns are not provided, the prover uses a heuristic to infer them. This option sets the threshold on the number of extra multi-patterns that can be created. By default, the prover creates at most one multi-pattern when there is no unary pattern"); - p.register_bool_param("PI_BLOCK_LOOOP_PATTERNS", m_pi_block_loop_patterns, - "block looping patterns during pattern inference"); - p.register_int_param("PI_ARITH", 0, 2, reinterpret_cast(m_pi_arith), - "0 - do not infer patterns with arithmetic terms, 1 - use patterns with arithmetic terms if there is no other pattern, 2 - always use patterns with arithmetic terms."); - p.register_bool_param("PI_USE_DATABASE", m_pi_use_database); - p.register_unsigned_param("PI_ARITH_WEIGHT", m_pi_arith_weight, "default weight for quantifiers where the only available pattern has nested arithmetic terms."); - p.register_unsigned_param("PI_NON_NESTED_ARITH_WEIGHT", m_pi_non_nested_arith_weight, "default weight for quantifiers where the only available pattern has non nested arithmetic terms."); - p.register_bool_param("PI_PULL_QUANTIFIERS", m_pi_pull_quantifiers, "pull nested quantifiers, if no pattern was found."); - p.register_int_param("PI_NOPAT_WEIGHT", m_pi_nopat_weight, "set weight of quantifiers without patterns, if negative the weight is not changed."); - p.register_bool_param("PI_AVOID_SKOLEMS", m_pi_avoid_skolems); - p.register_bool_param("PI_WARNINGS", m_pi_warnings, "enable/disable warning messages in the pattern inference module."); -} - - diff --git a/mk_make.py b/mk_make.py index 723fe4027..785275a0c 100644 --- a/mk_make.py +++ b/mk_make.py @@ -53,7 +53,7 @@ add_lib('smt', ['assertion_set', 'bit_blaster', 'macros', 'normal_forms', 'frame 'substitution', 'grobner', 'euclid', 'proof_checker', 'pattern', 'parser_util']) add_lib('user_plugin', ['smt']) add_lib('core_tactics', ['framework', 'normal_forms']) -add_lib('arith_tactics', ['core_tactics', 'assertion_set']) +add_lib('arith_tactics', ['core_tactics', 'assertion_set', 'sat']) add_lib('sat_tactic', ['framework', 'sat']) add_lib('sat_strategy', ['assertion_set', 'sat_tactic']) # TODO: split muz_qe into muz, qe. Perhaps, we should also consider breaking muz into muz and pdr. diff --git a/lib/bv2int_rewriter.cpp b/src/arith_tactics/bv2int_rewriter.cpp similarity index 100% rename from lib/bv2int_rewriter.cpp rename to src/arith_tactics/bv2int_rewriter.cpp diff --git a/lib/bv2int_rewriter.h b/src/arith_tactics/bv2int_rewriter.h similarity index 100% rename from lib/bv2int_rewriter.h rename to src/arith_tactics/bv2int_rewriter.h diff --git a/lib/bv2real_rewriter.cpp b/src/arith_tactics/bv2real_rewriter.cpp similarity index 100% rename from lib/bv2real_rewriter.cpp rename to src/arith_tactics/bv2real_rewriter.cpp diff --git a/lib/bv2real_rewriter.h b/src/arith_tactics/bv2real_rewriter.h similarity index 100% rename from lib/bv2real_rewriter.h rename to src/arith_tactics/bv2real_rewriter.h diff --git a/lib/elim_term_ite_strategy.cpp b/src/arith_tactics/elim_term_ite_strategy.cpp similarity index 100% rename from lib/elim_term_ite_strategy.cpp rename to src/arith_tactics/elim_term_ite_strategy.cpp diff --git a/lib/elim_term_ite_strategy.h b/src/arith_tactics/elim_term_ite_strategy.h similarity index 100% rename from lib/elim_term_ite_strategy.h rename to src/arith_tactics/elim_term_ite_strategy.h diff --git a/lib/smt_formula_compiler.cpp b/src/arith_tactics/smt_formula_compiler.cpp similarity index 100% rename from lib/smt_formula_compiler.cpp rename to src/arith_tactics/smt_formula_compiler.cpp diff --git a/lib/smt_formula_compiler.h b/src/arith_tactics/smt_formula_compiler.h similarity index 100% rename from lib/smt_formula_compiler.h rename to src/arith_tactics/smt_formula_compiler.h diff --git a/lib/smt_solver_exp.cpp b/src/arith_tactics/smt_solver_exp.cpp similarity index 100% rename from lib/smt_solver_exp.cpp rename to src/arith_tactics/smt_solver_exp.cpp diff --git a/lib/smt_solver_exp.h b/src/arith_tactics/smt_solver_exp.h similarity index 100% rename from lib/smt_solver_exp.h rename to src/arith_tactics/smt_solver_exp.h diff --git a/lib/smt_solver_strategy.cpp b/src/arith_tactics/smt_solver_strategy.cpp similarity index 100% rename from lib/smt_solver_strategy.cpp rename to src/arith_tactics/smt_solver_strategy.cpp diff --git a/lib/smt_solver_strategy.h b/src/arith_tactics/smt_solver_strategy.h similarity index 100% rename from lib/smt_solver_strategy.h rename to src/arith_tactics/smt_solver_strategy.h diff --git a/lib/smt_solver_types.h b/src/arith_tactics/smt_solver_types.h similarity index 100% rename from lib/smt_solver_types.h rename to src/arith_tactics/smt_solver_types.h diff --git a/lib/elim_distinct.cpp b/src/assertion_set/elim_distinct.cpp similarity index 100% rename from lib/elim_distinct.cpp rename to src/assertion_set/elim_distinct.cpp diff --git a/lib/elim_distinct.h b/src/assertion_set/elim_distinct.h similarity index 100% rename from lib/elim_distinct.h rename to src/assertion_set/elim_distinct.h diff --git a/lib/reduce_args.cpp b/src/assertion_set/reduce_args.cpp similarity index 100% rename from lib/reduce_args.cpp rename to src/assertion_set/reduce_args.cpp diff --git a/lib/reduce_args.h b/src/assertion_set/reduce_args.h similarity index 100% rename from lib/reduce_args.h rename to src/assertion_set/reduce_args.h diff --git a/lib/shallow_context_simplifier.cpp b/src/assertion_set/shallow_context_simplifier.cpp similarity index 100% rename from lib/shallow_context_simplifier.cpp rename to src/assertion_set/shallow_context_simplifier.cpp diff --git a/lib/shallow_context_simplifier.h b/src/assertion_set/shallow_context_simplifier.h similarity index 100% rename from lib/shallow_context_simplifier.h rename to src/assertion_set/shallow_context_simplifier.h diff --git a/lib/cofactor_elim_term_ite.cpp b/src/core_tactics/cofactor_elim_term_ite.cpp similarity index 100% rename from lib/cofactor_elim_term_ite.cpp rename to src/core_tactics/cofactor_elim_term_ite.cpp diff --git a/lib/cofactor_elim_term_ite.h b/src/core_tactics/cofactor_elim_term_ite.h similarity index 100% rename from lib/cofactor_elim_term_ite.h rename to src/core_tactics/cofactor_elim_term_ite.h diff --git a/lib/cofactor_term_ite_tactic.cpp b/src/core_tactics/cofactor_term_ite_tactic.cpp similarity index 100% rename from lib/cofactor_term_ite_tactic.cpp rename to src/core_tactics/cofactor_term_ite_tactic.cpp diff --git a/lib/cofactor_term_ite_tactic.h b/src/core_tactics/cofactor_term_ite_tactic.h similarity index 100% rename from lib/cofactor_term_ite_tactic.h rename to src/core_tactics/cofactor_term_ite_tactic.h diff --git a/lib/symmetry_reduce_tactic.cpp b/src/core_tactics/symmetry_reduce_tactic.cpp similarity index 100% rename from lib/symmetry_reduce_tactic.cpp rename to src/core_tactics/symmetry_reduce_tactic.cpp diff --git a/lib/symmetry_reduce_tactic.h b/src/core_tactics/symmetry_reduce_tactic.h similarity index 100% rename from lib/symmetry_reduce_tactic.h rename to src/core_tactics/symmetry_reduce_tactic.h diff --git a/lib/assertion_stack.cpp b/src/dead/assertion_stack.cpp similarity index 100% rename from lib/assertion_stack.cpp rename to src/dead/assertion_stack.cpp diff --git a/lib/assertion_stack.h b/src/dead/assertion_stack.h similarity index 100% rename from lib/assertion_stack.h rename to src/dead/assertion_stack.h diff --git a/lib/parameters.h b/src/dead/parameters.h similarity index 100% rename from lib/parameters.h rename to src/dead/parameters.h diff --git a/lib/smt_classifier.h b/src/dead/smt_classifier.h similarity index 100% rename from lib/smt_classifier.h rename to src/dead/smt_classifier.h diff --git a/lib/st_cmds.h b/src/dead/st_cmds.h similarity index 100% rename from lib/st_cmds.h rename to src/dead/st_cmds.h diff --git a/lib/dbg_cmds.cpp b/src/extra_cmds/dbg_cmds.cpp similarity index 100% rename from lib/dbg_cmds.cpp rename to src/extra_cmds/dbg_cmds.cpp diff --git a/lib/dbg_cmds.h b/src/extra_cmds/dbg_cmds.h similarity index 100% rename from lib/dbg_cmds.h rename to src/extra_cmds/dbg_cmds.h diff --git a/lib/polynomial_cmds.cpp b/src/extra_cmds/polynomial_cmds.cpp similarity index 100% rename from lib/polynomial_cmds.cpp rename to src/extra_cmds/polynomial_cmds.cpp diff --git a/lib/polynomial_cmds.h b/src/extra_cmds/polynomial_cmds.h similarity index 100% rename from lib/polynomial_cmds.h rename to src/extra_cmds/polynomial_cmds.h diff --git a/lib/subpaving_cmds.cpp b/src/extra_cmds/subpaving_cmds.cpp similarity index 100% rename from lib/subpaving_cmds.cpp rename to src/extra_cmds/subpaving_cmds.cpp diff --git a/lib/subpaving_cmds.h b/src/extra_cmds/subpaving_cmds.h similarity index 100% rename from lib/subpaving_cmds.h rename to src/extra_cmds/subpaving_cmds.h diff --git a/lib/datalog_parser.cpp b/src/muz_qe/datalog_parser.cpp similarity index 100% rename from lib/datalog_parser.cpp rename to src/muz_qe/datalog_parser.cpp diff --git a/lib/datalog_parser.h b/src/muz_qe/datalog_parser.h similarity index 100% rename from lib/datalog_parser.h rename to src/muz_qe/datalog_parser.h diff --git a/src/arith_tactics/vsubst_tactic.cpp b/src/muz_qe/vsubst_tactic.cpp similarity index 100% rename from src/arith_tactics/vsubst_tactic.cpp rename to src/muz_qe/vsubst_tactic.cpp diff --git a/src/arith_tactics/vsubst_tactic.h b/src/muz_qe/vsubst_tactic.h similarity index 100% rename from src/arith_tactics/vsubst_tactic.h rename to src/muz_qe/vsubst_tactic.h From 6d25a3bd2b546d6f87c3745625a45e4f0af01f07 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 15:33:49 -0700 Subject: [PATCH 19/54] Added Visual Solution Generation Signed-off-by: Leonardo de Moura --- mk_make.py | 2 ++ mk_util.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 51 insertions(+), 7 deletions(-) diff --git a/mk_make.py b/mk_make.py index 785275a0c..79c5b8c9f 100644 --- a/mk_make.py +++ b/mk_make.py @@ -61,3 +61,5 @@ add_lib('muz_qe', ['smt', 'sat', 'smt2parser']) add_lib('aig', ['framework', 'assertion_set']) # TODO: delete SMT 1.0 frontend add_lib('smtparser', ['api_headers', 'smt', 'spc']) + +mk_vs_solution() diff --git a/mk_util.py b/mk_util.py index 8935b54b3..2ccc92f3b 100644 --- a/mk_util.py +++ b/mk_util.py @@ -35,9 +35,15 @@ VS_COMMON_OPTIONS='WIN32' VS_DBG_OPTIONS='_DEBUG' VS_RELEASE_OPTIONS='NDEBUG' +GUI = 0 +Name2GUI = {} + +def mk_gui_str(id): + return '4D2F40D8-E5F9-473B-B548-%012d' % id + HEADERS = [] LIBS = [] -LIB_DEPS = {} +DEPS = {} class MKException(Exception): def __init__(self, value): @@ -72,9 +78,6 @@ def vs_header(f): '\n' '\n') -GUI = 0 -Name2GUI = {} - def vs_project_configurations(f, name): global GUI, Name2GUI f.write(' \n') @@ -87,7 +90,7 @@ def vs_project_configurations(f, name): f.write(' \n') f.write(' \n') - f.write(' {00000000-0000-0000-000--%s}\n' % GUI) + f.write(' {%s}\n' % mk_gui_str(GUI)) f.write(' %s\n' % name) f.write(' Win32Proj\n') f.write(' \n') @@ -198,7 +201,7 @@ def find_all_deps(name, deps): if dep in LIBS: if not (dep in new_deps): new_deps.append(dep) - for dep_dep in LIB_DEPS[dep]: + for dep_dep in DEPS[dep]: if not (dep_dep in new_deps): new_deps.append(dep_dep) elif dep in HEADERS: @@ -212,7 +215,7 @@ def add_lib(name, deps): check_new_component(name) LIBS.append(name) deps = find_all_deps(name, deps) - LIB_DEPS[name] = deps + DEPS[name] = deps print "Dependencies for '%s': %s" % (name, deps) module_dir = module_build_dir(name) @@ -226,3 +229,42 @@ def add_lib(name, deps): add_vs_cpps(vs_proj, name) vs_footer(vs_proj) +def is_lib(name): + # Add DLL dependency + return name in LIBS + +def mk_vs_solution(): + sln = open('%s%sz3.sln' % (BUILD_DIR, os.sep), 'w') + sln.write('\n') + sln.write("Microsoft Visual Studio Solution File, Format Version 11.00\n") + sln.write("# Visual Studio 2010\n") + modules = LIBS + for module in modules: + gui = Name2GUI[module] + deps = DEPS[module] + sln.write('Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "%s", "%s%s%s.vcxproj", "{%s}"\n' % + (module, module, os.sep, module, mk_gui_str(gui))) + if len(deps) > 0: + sln.write(' ProjectSection(ProjectDependencies) = postProject\n') + for dep in deps: + if is_lib(dep): + i = Name2GUI[dep] + sln.write(' {%s} = {%s}\n' % (mk_gui_str(i), mk_gui_str(i))) + sln.write(' EndProjectSection\n') + sln.write('EndProject\n') + sln.write('Global\n') + sln.write('GlobalSection(SolutionConfigurationPlatforms) = preSolution\n') + for mode in MODES: + for platform in PLATFORMS: + sln.write(' %s|%s = %s|%s\n' % (mode, platform, mode, platform)) + sln.write('EndGlobalSection\n') + sln.write('GlobalSection(ProjectConfigurationPlatforms) = postSolution\n') + for module in modules: + gui = Name2GUI[module] + for mode in MODES: + for platform in PLATFORMS: + sln.write(' {%s}.%s|%s.ActiveCfg = %s|%s\n' % (mk_gui_str(gui), mode, platform, mode, platform)) + sln.write(' {%s}.%s|%s.Build.0 = %s|%s\n' % (mk_gui_str(gui), mode, platform, mode, platform)) + sln.write('EndGlobalSection\n') + + print "Visual Solution was generated." From 00e94e1653e2406b8f8d2de1e0d35143f7eadde4 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 15:35:30 -0700 Subject: [PATCH 20/54] Moved scripts to scripts dir Signed-off-by: Leonardo de Moura --- mk_make.py => scripts/mk_make.py | 0 mk_util.py => scripts/mk_util.py | 0 update_api.py => scripts/update_api.py | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename mk_make.py => scripts/mk_make.py (100%) rename mk_util.py => scripts/mk_util.py (100%) rename update_api.py => scripts/update_api.py (100%) diff --git a/mk_make.py b/scripts/mk_make.py similarity index 100% rename from mk_make.py rename to scripts/mk_make.py diff --git a/mk_util.py b/scripts/mk_util.py similarity index 100% rename from mk_util.py rename to scripts/mk_util.py diff --git a/update_api.py b/scripts/update_api.py similarity index 100% rename from update_api.py rename to scripts/update_api.py From c4711ac472cd3a42e94013a780a0a7827280b56a Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 16:03:12 -0700 Subject: [PATCH 21/54] checkpoint Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 2 +- scripts/mk_util.py | 4 ++-- {lib => src/core_tactics}/elim_term_ite_tactic.cpp | 0 {lib => src/core_tactics}/elim_term_ite_tactic.h | 0 {lib => src/core_tactics}/reduce_args_tactic.cpp | 0 {lib => src/core_tactics}/reduce_args_tactic.h | 0 6 files changed, 3 insertions(+), 3 deletions(-) rename {lib => src/core_tactics}/elim_term_ite_tactic.cpp (100%) rename {lib => src/core_tactics}/elim_term_ite_tactic.h (100%) rename {lib => src/core_tactics}/reduce_args_tactic.cpp (100%) rename {lib => src/core_tactics}/reduce_args_tactic.h (100%) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 79c5b8c9f..35d1b3457 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -1,7 +1,7 @@ ############################################ # Copyright (c) 2012 Microsoft Corporation # -# Scripts for generate Makefiles and Visual +# Scripts for generating Makefiles and Visual # Studio project files. # # Author: Leonardo de Moura (leonardo) diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 2ccc92f3b..658f266c2 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -1,8 +1,8 @@ ############################################ # Copyright (c) 2012 Microsoft Corporation # -# Auxiliary scripts for generate Makefiles and Visual -# Studio project files. +# Auxiliary scripts for generating Makefiles +# and Visual Studio project files. # # Author: Leonardo de Moura (leonardo) ############################################ diff --git a/lib/elim_term_ite_tactic.cpp b/src/core_tactics/elim_term_ite_tactic.cpp similarity index 100% rename from lib/elim_term_ite_tactic.cpp rename to src/core_tactics/elim_term_ite_tactic.cpp diff --git a/lib/elim_term_ite_tactic.h b/src/core_tactics/elim_term_ite_tactic.h similarity index 100% rename from lib/elim_term_ite_tactic.h rename to src/core_tactics/elim_term_ite_tactic.h diff --git a/lib/reduce_args_tactic.cpp b/src/core_tactics/reduce_args_tactic.cpp similarity index 100% rename from lib/reduce_args_tactic.cpp rename to src/core_tactics/reduce_args_tactic.cpp diff --git a/lib/reduce_args_tactic.h b/src/core_tactics/reduce_args_tactic.h similarity index 100% rename from lib/reduce_args_tactic.h rename to src/core_tactics/reduce_args_tactic.h From ffaf88798d7d4af64ad412c196cd667b5cac8397 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 17:31:45 -0700 Subject: [PATCH 22/54] preparing to split framework Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 2 +- src/framework/cmd_context.cpp | 1 + src/framework/cmd_context.h | 15 +++--- src/framework/goal.cpp | 41 +++------------ src/framework/goal.h | 13 ++--- src/framework/tactic.cpp | 93 +++++------------------------------ src/framework/tactic.h | 12 +++-- src/framework/tactic_cmds.cpp | 2 + 8 files changed, 42 insertions(+), 137 deletions(-) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 35d1b3457..6d00b5761 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -8,7 +8,7 @@ ############################################ from mk_util import * -set_build_dir('build-test') +set_build_dir('build') set_src_dir('src') set_modes(['Debug', 'Release']) set_platforms(['Win32', 'x64']) diff --git a/src/framework/cmd_context.cpp b/src/framework/cmd_context.cpp index 1eb0f63e7..5e80863de 100644 --- a/src/framework/cmd_context.cpp +++ b/src/framework/cmd_context.cpp @@ -1601,3 +1601,4 @@ std::ostream & operator<<(std::ostream & out, cmd_context::status st) { } return out; } + diff --git a/src/framework/cmd_context.h b/src/framework/cmd_context.h index 017f26428..08122f7d2 100644 --- a/src/framework/cmd_context.h +++ b/src/framework/cmd_context.h @@ -23,6 +23,7 @@ Notes: #include #include"ast.h" +#include"ast_printer.h" #include"pdecl.h" #include"dictionary.h" #include"solver.h" @@ -111,7 +112,7 @@ struct builtin_decl { builtin_decl(family_id fid, decl_kind k, builtin_decl * n = 0):m_fid(fid), m_decl(k), m_next(n) {} }; -class cmd_context : public progress_callback, public tactic_manager { +class cmd_context : public progress_callback, public tactic_manager, public ast_printer_context { public: enum status { UNSAT, SAT, UNKNOWN @@ -329,8 +330,8 @@ public: void reset_user_tactics(); void set_regular_stream(char const * name) { m_regular.set(name); } void set_diagnostic_stream(char const * name); - std::ostream & regular_stream() { return *m_regular; } - std::ostream & diagnostic_stream() { return *m_diagnostic; } + virtual std::ostream & regular_stream() { return *m_regular; } + virtual std::ostream & diagnostic_stream() { return *m_diagnostic; } char const * get_regular_stream_name() const { return m_regular.name(); } char const * get_diagnostic_stream_name() const { return m_diagnostic.name(); } typedef dictionary::iterator cmd_iterator; @@ -385,10 +386,10 @@ public: void pp(func_decl * f, format_ns::format_ref & r) const; void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) const; void pp(expr * n, format_ns::format_ref & r) const; - void display(std::ostream & out, sort * s, unsigned indent = 0) const; - void display(std::ostream & out, expr * n, unsigned indent, unsigned num_vars, char const * var_prefix, sbuffer & var_names) const; - void display(std::ostream & out, expr * n, unsigned indent = 0) const; - void display(std::ostream & out, func_decl * f, unsigned indent = 0) const; + virtual void display(std::ostream & out, sort * s, unsigned indent = 0) const; + virtual void display(std::ostream & out, expr * n, unsigned indent, unsigned num_vars, char const * var_prefix, sbuffer & var_names) const; + virtual void display(std::ostream & out, expr * n, unsigned indent = 0) const; + virtual void display(std::ostream & out, func_decl * f, unsigned indent = 0) const; // dump assertions in out using the pretty printer. void dump_assertions(std::ostream & out) const; diff --git a/src/framework/goal.cpp b/src/framework/goal.cpp index a84b34dd5..6897097be 100644 --- a/src/framework/goal.cpp +++ b/src/framework/goal.cpp @@ -17,7 +17,6 @@ Revision History: --*/ #include"goal.h" -#include"cmd_context.h" #include"ast_ll_pp.h" #include"ast_smt2_pp.h" #include"for_each_expr.h" @@ -235,17 +234,17 @@ void goal::reset() { m_inconsistent = false; } -void goal::display(cmd_context & ctx, std::ostream & out) const { +void goal::display(ast_printer & prn, std::ostream & out) const { out << "(goal"; unsigned sz = size(); for (unsigned i = 0; i < sz; i++) { out << "\n "; - ctx.display(out, form(i), 2); + prn.display(out, form(i), 2); } out << "\n :precision " << prec() << " :depth " << depth() << ")" << std::endl; } -void goal::display_with_dependencies(cmd_context & ctx, std::ostream & out) const { +void goal::display_with_dependencies(ast_printer & prn, std::ostream & out) const { ptr_vector deps; obj_hashtable to_pp; out << "(goal"; @@ -267,7 +266,7 @@ void goal::display_with_dependencies(cmd_context & ctx, std::ostream & out) cons } } out << "\n "; - ctx.display(out, form(i), 2); + prn.display(out, form(i), 2); } if (!to_pp.empty()) { out << "\n :dependencies-definitions ("; @@ -276,7 +275,7 @@ void goal::display_with_dependencies(cmd_context & ctx, std::ostream & out) cons for (; it != end; ++it) { expr * d = *it; out << "\n (#" << d->get_id() << "\n "; - ctx.display(out, d, 2); + prn.display(out, d, 2); out << ")"; } out << ")"; @@ -308,11 +307,11 @@ void goal::display_with_dependencies(std::ostream & out) const { out << "\n :precision " << prec() << " :depth " << depth() << ")" << std::endl; } -void goal::display(cmd_context & ctx) const { +void goal::display(ast_printer_context & ctx) const { display(ctx, ctx.regular_stream()); } -void goal::display_with_dependencies(cmd_context & ctx) const { +void goal::display_with_dependencies(ast_printer_context & ctx) const { display_with_dependencies(ctx, ctx.regular_stream()); } @@ -546,32 +545,6 @@ bool goal::is_well_sorted() const { return true; } -/** - \brief Assert expressions from ctx into t. -*/ -void assert_exprs_from(cmd_context const & ctx, goal & t) { - if (ctx.produce_proofs() && ctx.produce_unsat_cores()) - throw cmd_exception("Frontend does not support simultaneous generation of proofs and unsat cores"); - ast_manager & m = t.m(); - bool proofs_enabled = t.proofs_enabled(); - ptr_vector::const_iterator it = ctx.begin_assertions(); - ptr_vector::const_iterator end = ctx.end_assertions(); - for (; it != end; ++it) { - t.assert_expr(*it, proofs_enabled ? m.mk_asserted(*it) : 0, 0); - } - if (ctx.produce_unsat_cores()) { - SASSERT(!ctx.produce_proofs()); - it = ctx.begin_assumptions(); - end = ctx.end_assumptions(); - for (; it != end; ++it) { - t.assert_expr(*it, 0, m.mk_leaf(*it)); - } - } - else { - SASSERT(ctx.begin_assumptions() == ctx.end_assumptions()); - } -} - /** \brief Translate the assertion set to a new one that uses a different ast_manager. */ diff --git a/src/framework/goal.h b/src/framework/goal.h index 61c7e2081..c1dcaa6f6 100644 --- a/src/framework/goal.h +++ b/src/framework/goal.h @@ -30,13 +30,12 @@ Revision History: #include"ast.h" #include"ast_translation.h" +#include"ast_printer.h" #include"for_each_expr.h" #include"ref.h" #include"ref_vector.h" #include"ref_buffer.h" -class cmd_context; - class goal { public: enum precision { @@ -172,14 +171,14 @@ public: void elim_true(); void elim_redundancies(); - void display(cmd_context & ctx, std::ostream & out) const; - void display(cmd_context & ctx) const; + void display(ast_printer & prn, std::ostream & out) const; + void display(ast_printer_context & ctx) const; void display(std::ostream & out) const; void display_ll(std::ostream & out) const; void display_as_and(std::ostream & out) const; void display_dimacs(std::ostream & out) const; - void display_with_dependencies(cmd_context & ctx, std::ostream & out) const; - void display_with_dependencies(cmd_context & ctx) const; + void display_with_dependencies(ast_printer & prn, std::ostream & out) const; + void display_with_dependencies(ast_printer_context & ctx) const; void display_with_dependencies(std::ostream & out) const; bool sat_preserved() const { @@ -220,8 +219,6 @@ inline bool is_decided_sat(GoalCollection const & c) { return c.size() == 1 && c template inline bool is_decided_unsat(GoalCollection const & c) { return c.size() == 1 && c[0]->is_decided_unsat(); } -void assert_exprs_from(cmd_context const & ctx, goal & t); - template void for_each_expr_at(ForEachProc& proc, goal const & s) { expr_mark visited; diff --git a/src/framework/tactic.cpp b/src/framework/tactic.cpp index cc2f3bc3f..d5ef15499 100644 --- a/src/framework/tactic.cpp +++ b/src/framework/tactic.cpp @@ -81,25 +81,17 @@ void report_tactic_progress(char const * id, unsigned val) { } } - -class skip_tactic : public tactic { -public: - virtual void operator()(goal_ref const & in, - goal_ref_buffer & result, - model_converter_ref & mc, - proof_converter_ref & pc, - expr_dependency_ref & core) { - result.reset(); - result.push_back(in.get()); - mc = 0; - pc = 0; - core = 0; - } - - virtual void cleanup() {} - - virtual tactic * translate(ast_manager & m) { return this; } -}; +void skip_tactic::operator()(goal_ref const & in, + goal_ref_buffer & result, + model_converter_ref & mc, + proof_converter_ref & pc, + expr_dependency_ref & core) { + result.reset(); + result.push_back(in.get()); + mc = 0; + pc = 0; + core = 0; +} tactic * mk_skip_tactic() { return alloc(skip_tactic); @@ -163,69 +155,6 @@ tactic * mk_trace_tactic(char const * tag) { return alloc(trace_tactic, tag); } -class echo_tactic : public skip_tactic { - cmd_context & m_ctx; - char const * m_msg; - bool m_newline; -public: - echo_tactic(cmd_context & ctx, char const * msg, bool newline):m_ctx(ctx), m_msg(msg), m_newline(newline) {} - - virtual void operator()(goal_ref const & in, - goal_ref_buffer & result, - model_converter_ref & mc, - proof_converter_ref & pc, - expr_dependency_ref & core) { - #pragma omp critical (echo_tactic) - { - m_ctx.diagnostic_stream() << m_msg; - if (m_newline) - m_ctx.diagnostic_stream() << std::endl; - } - skip_tactic::operator()(in, result, mc, pc, core); - } -}; - -tactic * mk_echo_tactic(cmd_context & ctx, char const * msg, bool newline) { - return alloc(echo_tactic, ctx, msg, newline); -} - -class probe_value_tactic : public skip_tactic { - cmd_context & m_ctx; - char const * m_msg; - probe * m_p; - bool m_newline; -public: - probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline):m_ctx(ctx), m_msg(msg), m_p(p), m_newline(newline) { - SASSERT(m_p); - m_p->inc_ref(); - } - - ~probe_value_tactic() { - m_p->dec_ref(); - } - - virtual void operator()(goal_ref const & in, - goal_ref_buffer & result, - model_converter_ref & mc, - proof_converter_ref & pc, - expr_dependency_ref & core) { - double val = (*m_p)(*(in.get())).get_value(); - #pragma omp critical (probe_value_tactic) - { - if (m_msg) - m_ctx.diagnostic_stream() << m_msg << " "; - m_ctx.diagnostic_stream() << val; - if (m_newline) - m_ctx.diagnostic_stream() << std::endl; - } - skip_tactic::operator()(in, result, mc, pc, core); - } -}; - -tactic * mk_probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline) { - return alloc(probe_value_tactic, ctx, msg, p, newline); -} - class fail_if_undecided_tactic : public skip_tactic { public: fail_if_undecided_tactic() {} diff --git a/src/framework/tactic.h b/src/framework/tactic.h index 2b3a34ca6..fb443cd41 100644 --- a/src/framework/tactic.h +++ b/src/framework/tactic.h @@ -117,17 +117,19 @@ public: void report_tactic_progress(char const * id, unsigned val); +class skip_tactic : public tactic { +public: + virtual void operator()(goal_ref const & in, goal_ref_buffer & result, model_converter_ref & mc, proof_converter_ref & pc, expr_dependency_ref & core); + virtual void cleanup() {} + virtual tactic * translate(ast_manager & m) { return this; } +}; + tactic * mk_skip_tactic(); tactic * mk_fail_tactic(); tactic * mk_fail_if_undecided_tactic(); tactic * mk_report_verbose_tactic(char const * msg, unsigned lvl); tactic * mk_trace_tactic(char const * tag); -tactic * mk_echo_tactic(cmd_context & ctx, char const * msg, bool newline = true); -// Display the value returned by p in the diagnostic_stream -class probe; -tactic * mk_probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline = true); - class tactic_factory { public: diff --git a/src/framework/tactic_cmds.cpp b/src/framework/tactic_cmds.cpp index c7351d455..f6d9a5e5f 100644 --- a/src/framework/tactic_cmds.cpp +++ b/src/framework/tactic_cmds.cpp @@ -30,6 +30,8 @@ Notes: #include"tactical.h" #include"probe.h" #include"check_sat_result.h" +#include"cmd_context_to_goal.h" +#include"echo_tactic.h" tactic_cmd::~tactic_cmd() { dealloc(m_factory); From 56ab7a74953609c787f6f0e946a39efb7fa87008 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 18:12:34 -0700 Subject: [PATCH 23/54] checkpoint Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 3 +- .../der_tactic.cpp | 0 src/{framework => core_tactics}/der_tactic.h | 0 src/framework/cmd_context.h | 8 +- src/{framework => model}/model_smt2_pp.cpp | 74 ++++--------------- src/{framework => model}/model_smt2_pp.h | 5 +- src/{framework => tactic}/converter.h | 0 .../extension_model_converter.cpp | 0 .../extension_model_converter.h | 0 .../filter_model_converter.cpp | 0 .../filter_model_converter.h | 0 src/{framework => tactic}/goal.cpp | 0 src/{framework => tactic}/goal.h | 0 .../goal_shared_occs.cpp | 0 src/{framework => tactic}/goal_shared_occs.h | 0 src/{framework => tactic}/goal_util.cpp | 0 src/{framework => tactic}/goal_util.h | 0 src/{framework => tactic}/model_converter.cpp | 0 src/{framework => tactic}/model_converter.h | 0 src/{framework => tactic}/num_occurs_goal.cpp | 0 src/{framework => tactic}/num_occurs_goal.h | 0 src/{framework => tactic}/probe.cpp | 0 src/{framework => tactic}/probe.h | 0 src/{framework => tactic}/proof_converter.cpp | 0 src/{framework => tactic}/proof_converter.h | 0 src/{framework => tactic}/tactic.cpp | 1 - src/{framework => tactic}/tactic.h | 0 src/{framework => tactic}/tactical.cpp | 0 src/{framework => tactic}/tactical.h | 0 29 files changed, 25 insertions(+), 66 deletions(-) rename src/{framework => core_tactics}/der_tactic.cpp (100%) rename src/{framework => core_tactics}/der_tactic.h (100%) rename src/{framework => model}/model_smt2_pp.cpp (77%) rename src/{framework => model}/model_smt2_pp.h (70%) rename src/{framework => tactic}/converter.h (100%) rename src/{framework => tactic}/extension_model_converter.cpp (100%) rename src/{framework => tactic}/extension_model_converter.h (100%) rename src/{framework => tactic}/filter_model_converter.cpp (100%) rename src/{framework => tactic}/filter_model_converter.h (100%) rename src/{framework => tactic}/goal.cpp (100%) rename src/{framework => tactic}/goal.h (100%) rename src/{framework => tactic}/goal_shared_occs.cpp (100%) rename src/{framework => tactic}/goal_shared_occs.h (100%) rename src/{framework => tactic}/goal_util.cpp (100%) rename src/{framework => tactic}/goal_util.h (100%) rename src/{framework => tactic}/model_converter.cpp (100%) rename src/{framework => tactic}/model_converter.h (100%) rename src/{framework => tactic}/num_occurs_goal.cpp (100%) rename src/{framework => tactic}/num_occurs_goal.h (100%) rename src/{framework => tactic}/probe.cpp (100%) rename src/{framework => tactic}/probe.h (100%) rename src/{framework => tactic}/proof_converter.cpp (100%) rename src/{framework => tactic}/proof_converter.h (100%) rename src/{framework => tactic}/tactic.cpp (99%) rename src/{framework => tactic}/tactic.h (100%) rename src/{framework => tactic}/tactical.cpp (100%) rename src/{framework => tactic}/tactical.h (100%) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 6d00b5761..22ad87dea 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -31,10 +31,11 @@ add_lib('simplifier', ['rewriter']) # Model module should not depend on simplifier module. # We must replace all occurrences of simplifier with rewriter. add_lib('model', ['rewriter', 'simplifier']) +add_lib('tactic', ['ast', 'model']) # Old (non-modular) parameter framework. It has been subsumed by util\params.h. # However, it is still used by many old components. add_lib('old_params', ['model', 'simplifier']) -add_lib('framework', ['rewriter', 'model', 'old_params', 'simplifier']) +add_lib('framework', ['tactic', 'rewriter', 'model', 'old_params', 'simplifier']) # Assertion set is the old tactic framework used in Z3 3.x. It will be deleted as soon as we finish the porting old # code to the new tactic framework. add_lib('assertion_set', ['framework']) diff --git a/src/framework/der_tactic.cpp b/src/core_tactics/der_tactic.cpp similarity index 100% rename from src/framework/der_tactic.cpp rename to src/core_tactics/der_tactic.cpp diff --git a/src/framework/der_tactic.h b/src/core_tactics/der_tactic.h similarity index 100% rename from src/framework/der_tactic.h rename to src/core_tactics/der_tactic.h diff --git a/src/framework/cmd_context.h b/src/framework/cmd_context.h index 08122f7d2..d730ba002 100644 --- a/src/framework/cmd_context.h +++ b/src/framework/cmd_context.h @@ -280,6 +280,7 @@ public: bool has_manager() const { return m_manager != 0; } ast_manager & m() const { if (!m_manager) const_cast(this)->init_manager(); return *m_manager; } + virtual ast_manager & get_ast_manager() { return m(); } pdecl_manager & pm() const { if (!m_pmanager) const_cast(this)->init_manager(); return *m_pmanager; } sexpr_manager & sm() const { if (!m_sexpr_manager) const_cast(this)->m_sexpr_manager = alloc(sexpr_manager); return *m_sexpr_manager; } front_end_params & params() const { return m_params; } @@ -383,9 +384,10 @@ public: } format_ns::format * pp(sort * s) const; - void pp(func_decl * f, format_ns::format_ref & r) const; - void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) const; - void pp(expr * n, format_ns::format_ref & r) const; + virtual void pp(sort * s, format_ns::format_ref & r) const { r = pp(s); } + virtual void pp(func_decl * f, format_ns::format_ref & r) const; + virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) const; + virtual void pp(expr * n, format_ns::format_ref & r) const; virtual void display(std::ostream & out, sort * s, unsigned indent = 0) const; virtual void display(std::ostream & out, expr * n, unsigned indent, unsigned num_vars, char const * var_prefix, sbuffer & var_names) const; virtual void display(std::ostream & out, expr * n, unsigned indent = 0) const; diff --git a/src/framework/model_smt2_pp.cpp b/src/model/model_smt2_pp.cpp similarity index 77% rename from src/framework/model_smt2_pp.cpp rename to src/model/model_smt2_pp.cpp index 031c5d151..1a639b5f1 100644 --- a/src/framework/model_smt2_pp.cpp +++ b/src/model/model_smt2_pp.cpp @@ -17,6 +17,7 @@ Revision History: --*/ +#include #include"model_smt2_pp.h" #include"ast_smt2_pp.h" #include"func_decl_dependencies.h" @@ -47,53 +48,8 @@ static unsigned pp_symbol(std::ostream & out, symbol const & s) { #define TAB_SZ 2 -class model_smt2_pp_ctx { -public: - virtual ast_manager & m() const = 0; - virtual void display(std::ostream & out, sort * s, unsigned indent = 0) = 0; - virtual void display(std::ostream & out, expr * n, unsigned indent = 0) = 0; - virtual void pp(sort * s, format_ns::format_ref & r) = 0; - virtual void pp(func_decl * f, format_ns::format_ref & r) = 0; - virtual void pp(expr * n, format_ns::format_ref & r) = 0; - virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) = 0; -}; - -class model_smt2_pp_cmd_ctx : public model_smt2_pp_ctx { - cmd_context & m_ctx; -public: - model_smt2_pp_cmd_ctx(cmd_context & ctx):m_ctx(ctx) {} - virtual ast_manager & m() const { return m_ctx.m(); } - virtual void display(std::ostream & out, sort * s, unsigned indent = 0) { m_ctx.display(out, s, indent); } - virtual void display(std::ostream & out, expr * n, unsigned indent = 0) { m_ctx.display(out, n, indent); } - virtual void pp(sort * s, format_ns::format_ref & r) { r = m_ctx.pp(s); } - virtual void pp(func_decl * f, format_ns::format_ref & r) { return m_ctx.pp(f, r); } - virtual void pp(expr * n, format_ns::format_ref & r) { return m_ctx.pp(n, r); } - virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) { - return m_ctx.pp(n, num_vars, var_prefix, r, var_names); - } -}; - -class model_smt2_pp_simple_ctx : public model_smt2_pp_ctx { - ast_manager & m_manager; - smt2_pp_environment_dbg m_env; -public: - model_smt2_pp_simple_ctx(ast_manager & m):m_manager(m), m_env(m) {} - virtual ast_manager & m() const { return m_manager; } - virtual void display(std::ostream & out, sort * s, unsigned indent = 0) { out << mk_ismt2_pp(s, m(), indent); } - virtual void display(std::ostream & out, expr * n, unsigned indent = 0) { out << mk_ismt2_pp(n, m(), indent); } - virtual void pp(sort * s, format_ns::format_ref & r) { mk_smt2_format(s, m_env, get_pp_default_params(), r); } - virtual void pp(func_decl * f, format_ns::format_ref & r) { mk_smt2_format(f, m_env, get_pp_default_params(), r); } - virtual void pp(expr * n, format_ns::format_ref & r) { - sbuffer buf; - mk_smt2_format(n, m_env, get_pp_default_params(), 0, 0, r, buf); - } - virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) { - mk_smt2_format(n, m_env, get_pp_default_params(), num_vars, var_prefix, r, var_names); - } -}; - -static void pp_uninterp_sorts(std::ostream & out, model_smt2_pp_ctx & ctx, model_core const & md, unsigned indent) { - ast_manager & m = ctx.m(); +static void pp_uninterp_sorts(std::ostream & out, ast_printer_context & ctx, model_core const & md, unsigned indent) { + ast_manager & m = ctx.get_ast_manager(); ptr_buffer f_conds; unsigned num = md.get_num_uninterpreted_sorts(); for (unsigned i = 0; i < num; i++) { @@ -179,7 +135,7 @@ static void pp_uninterp_sorts(std::ostream & out, model_smt2_pp_ctx & ctx, model } } -static void pp_consts(std::ostream & out, model_smt2_pp_ctx & ctx, model_core const & md, unsigned indent) { +static void pp_consts(std::ostream & out, ast_printer_context & ctx, model_core const & md, unsigned indent) { unsigned num = md.get_num_constants(); for (unsigned i = 0; i < num; i++) { func_decl * c = md.get_constant(i); @@ -233,8 +189,8 @@ void sort_fun_decls(ast_manager & m, model_core const & md, ptr_buffer var_names; ptr_buffer f_var_names; ptr_buffer f_arg_decls; @@ -333,16 +289,16 @@ static void pp_funs(std::ostream & out, model_smt2_pp_ctx & ctx, model_core cons } } -void model_smt2_pp(std::ostream & out, cmd_context & ctx, model_core const & m, unsigned indent) { - model_smt2_pp_cmd_ctx _ctx(ctx); - pp_uninterp_sorts(out, _ctx, m, indent); - pp_consts(out, _ctx, m, indent); - pp_funs(out, _ctx, m, indent); +void model_smt2_pp(std::ostream & out, ast_printer_context & ctx, model_core const & m, unsigned indent) { + pp_uninterp_sorts(out, ctx, m, indent); + pp_consts(out, ctx, m, indent); + pp_funs(out, ctx, m, indent); } void model_smt2_pp(std::ostream & out, ast_manager & m, model_core const & md, unsigned indent) { - model_smt2_pp_simple_ctx _ctx(m); - pp_uninterp_sorts(out, _ctx, md, indent); - pp_consts(out, _ctx, md, indent); - pp_funs(out, _ctx, md, indent); + scoped_ptr ctx; + ctx = mk_simple_ast_printer_context(m); + pp_uninterp_sorts(out, *(ctx.get()), md, indent); + pp_consts(out, *(ctx.get()), md, indent); + pp_funs(out, *(ctx.get()), md, indent); } diff --git a/src/framework/model_smt2_pp.h b/src/model/model_smt2_pp.h similarity index 70% rename from src/framework/model_smt2_pp.h rename to src/model/model_smt2_pp.h index 29a7cddf2..0b76a8bed 100644 --- a/src/framework/model_smt2_pp.h +++ b/src/model/model_smt2_pp.h @@ -20,9 +20,10 @@ Revision History: #ifndef _MODEL_SMT2_PP_H_ #define _MODEL_SMT2_PP_H_ -#include"cmd_context.h" +#include"ast_printer.h" +#include"model_core.h" -void model_smt2_pp(std::ostream & out, cmd_context & ctx, model_core const & m, unsigned indent); +void model_smt2_pp(std::ostream & out, ast_printer_context & ctx, model_core const & m, unsigned indent); void model_smt2_pp(std::ostream & out, ast_manager & m, model_core const & md, unsigned indent); #endif diff --git a/src/framework/converter.h b/src/tactic/converter.h similarity index 100% rename from src/framework/converter.h rename to src/tactic/converter.h diff --git a/src/framework/extension_model_converter.cpp b/src/tactic/extension_model_converter.cpp similarity index 100% rename from src/framework/extension_model_converter.cpp rename to src/tactic/extension_model_converter.cpp diff --git a/src/framework/extension_model_converter.h b/src/tactic/extension_model_converter.h similarity index 100% rename from src/framework/extension_model_converter.h rename to src/tactic/extension_model_converter.h diff --git a/src/framework/filter_model_converter.cpp b/src/tactic/filter_model_converter.cpp similarity index 100% rename from src/framework/filter_model_converter.cpp rename to src/tactic/filter_model_converter.cpp diff --git a/src/framework/filter_model_converter.h b/src/tactic/filter_model_converter.h similarity index 100% rename from src/framework/filter_model_converter.h rename to src/tactic/filter_model_converter.h diff --git a/src/framework/goal.cpp b/src/tactic/goal.cpp similarity index 100% rename from src/framework/goal.cpp rename to src/tactic/goal.cpp diff --git a/src/framework/goal.h b/src/tactic/goal.h similarity index 100% rename from src/framework/goal.h rename to src/tactic/goal.h diff --git a/src/framework/goal_shared_occs.cpp b/src/tactic/goal_shared_occs.cpp similarity index 100% rename from src/framework/goal_shared_occs.cpp rename to src/tactic/goal_shared_occs.cpp diff --git a/src/framework/goal_shared_occs.h b/src/tactic/goal_shared_occs.h similarity index 100% rename from src/framework/goal_shared_occs.h rename to src/tactic/goal_shared_occs.h diff --git a/src/framework/goal_util.cpp b/src/tactic/goal_util.cpp similarity index 100% rename from src/framework/goal_util.cpp rename to src/tactic/goal_util.cpp diff --git a/src/framework/goal_util.h b/src/tactic/goal_util.h similarity index 100% rename from src/framework/goal_util.h rename to src/tactic/goal_util.h diff --git a/src/framework/model_converter.cpp b/src/tactic/model_converter.cpp similarity index 100% rename from src/framework/model_converter.cpp rename to src/tactic/model_converter.cpp diff --git a/src/framework/model_converter.h b/src/tactic/model_converter.h similarity index 100% rename from src/framework/model_converter.h rename to src/tactic/model_converter.h diff --git a/src/framework/num_occurs_goal.cpp b/src/tactic/num_occurs_goal.cpp similarity index 100% rename from src/framework/num_occurs_goal.cpp rename to src/tactic/num_occurs_goal.cpp diff --git a/src/framework/num_occurs_goal.h b/src/tactic/num_occurs_goal.h similarity index 100% rename from src/framework/num_occurs_goal.h rename to src/tactic/num_occurs_goal.h diff --git a/src/framework/probe.cpp b/src/tactic/probe.cpp similarity index 100% rename from src/framework/probe.cpp rename to src/tactic/probe.cpp diff --git a/src/framework/probe.h b/src/tactic/probe.h similarity index 100% rename from src/framework/probe.h rename to src/tactic/probe.h diff --git a/src/framework/proof_converter.cpp b/src/tactic/proof_converter.cpp similarity index 100% rename from src/framework/proof_converter.cpp rename to src/tactic/proof_converter.cpp diff --git a/src/framework/proof_converter.h b/src/tactic/proof_converter.h similarity index 100% rename from src/framework/proof_converter.h rename to src/tactic/proof_converter.h diff --git a/src/framework/tactic.cpp b/src/tactic/tactic.cpp similarity index 99% rename from src/framework/tactic.cpp rename to src/tactic/tactic.cpp index d5ef15499..4bf9e48f4 100644 --- a/src/framework/tactic.cpp +++ b/src/tactic/tactic.cpp @@ -21,7 +21,6 @@ Notes: #include"probe.h" #include"stopwatch.h" #include"model_v2_pp.h" -#include"cmd_context.h" void tactic::cancel() { #pragma omp critical (tactic_cancel) diff --git a/src/framework/tactic.h b/src/tactic/tactic.h similarity index 100% rename from src/framework/tactic.h rename to src/tactic/tactic.h diff --git a/src/framework/tactical.cpp b/src/tactic/tactical.cpp similarity index 100% rename from src/framework/tactical.cpp rename to src/tactic/tactical.cpp diff --git a/src/framework/tactical.h b/src/tactic/tactical.h similarity index 100% rename from src/framework/tactical.h rename to src/tactic/tactical.h From 39d6628be91d175c4d19fb2c705424306f322ae7 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 18:23:20 -0700 Subject: [PATCH 24/54] checkpoint Signed-off-by: Leonardo de Moura --- src/ast/ast_printer.cpp | 52 +++++++++++++++++ src/ast/ast_printer.h | 57 ++++++++++++++++++ src/framework/README | 3 +- src/framework/cmd_context_to_goal.cpp | 46 +++++++++++++++ src/framework/cmd_context_to_goal.h | 24 ++++++++ src/framework/echo_tactic.cpp | 84 +++++++++++++++++++++++++++ src/framework/echo_tactic.h | 30 ++++++++++ 7 files changed, 295 insertions(+), 1 deletion(-) create mode 100644 src/ast/ast_printer.cpp create mode 100644 src/ast/ast_printer.h create mode 100644 src/framework/cmd_context_to_goal.cpp create mode 100644 src/framework/cmd_context_to_goal.h create mode 100644 src/framework/echo_tactic.cpp create mode 100644 src/framework/echo_tactic.h diff --git a/src/ast/ast_printer.cpp b/src/ast/ast_printer.cpp new file mode 100644 index 000000000..015075d9b --- /dev/null +++ b/src/ast/ast_printer.cpp @@ -0,0 +1,52 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + ast_printer.cpp + +Abstract: + + Abstract AST printer + +Author: + + Leonardo de Moura (leonardo) 2012-10-21 + +Revision History: + +--*/ +#include"ast_printer.h" +#include"pp.h" + +class simple_ast_printer_context : public ast_printer_context { + ast_manager & m_manager; + smt2_pp_environment_dbg m_env; +public: + simple_ast_printer_context(ast_manager & m):m_manager(m), m_env(m) {} + virtual ~simple_ast_printer_context() {} + ast_manager & m() const { return m_manager; } + virtual ast_manager & get_ast_manager() { return m_manager; } + virtual void display(std::ostream & out, sort * s, unsigned indent = 0) { out << mk_ismt2_pp(s, m(), indent); } + virtual void display(std::ostream & out, expr * n, unsigned indent = 0) { out << mk_ismt2_pp(n, m(), indent); } + virtual void display(std::ostream & out, func_decl * f, unsigned indent = 0) const { + out << f->get_name(); + } + virtual void pp(sort * s, format_ns::format_ref & r) { mk_smt2_format(s, m_env, get_pp_default_params(), r); } + virtual void pp(func_decl * f, format_ns::format_ref & r) { mk_smt2_format(f, m_env, get_pp_default_params(), r); } + virtual void pp(expr * n, format_ns::format_ref & r) { + sbuffer buf; + mk_smt2_format(n, m_env, get_pp_default_params(), 0, 0, r, buf); + } + virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) { + mk_smt2_format(n, m_env, get_pp_default_params(), num_vars, var_prefix, r, var_names); + } + virtual void display(std::ostream & out, expr * n, unsigned indent, unsigned num_vars, char const * var_prefix, sbuffer & var_names) const { + NOT_IMPLEMENTED_YET(); + } + +}; + +ast_printer_context * mk_simple_ast_printer_context(ast_manager & m) { + return alloc(simple_ast_printer_context, m); +} diff --git a/src/ast/ast_printer.h b/src/ast/ast_printer.h new file mode 100644 index 000000000..3566c62bb --- /dev/null +++ b/src/ast/ast_printer.h @@ -0,0 +1,57 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + ast_printer.h + +Abstract: + + Abstract AST printer + +Author: + + Leonardo de Moura (leonardo) 2012-10-21 + +Revision History: + +--*/ +#ifndef _AST_PRINTER_H_ +#define _AST_PRINTER_H_ + +#include"ast.h" +#include"ast_smt2_pp.h" + +class ast_printer { +public: + virtual ~ast_printer() {} + virtual void pp(sort * s, format_ns::format_ref & r) const { UNREACHABLE(); } + virtual void pp(func_decl * f, format_ns::format_ref & r) const { UNREACHABLE(); } + virtual void pp(expr * n, unsigned num_vars, char const * var_prefix, format_ns::format_ref & r, sbuffer & var_names) const { UNREACHABLE(); } + virtual void pp(expr * n, format_ns::format_ref & r) const { UNREACHABLE(); } + virtual void display(std::ostream & out, sort * s, unsigned indent = 0) const { + out << "#" << s->get_id() << "\n"; + } + virtual void display(std::ostream & out, expr * n, unsigned indent, unsigned num_vars, char const * var_prefix, sbuffer & var_names) const { + out << "#" << n->get_id() << "\n"; + } + virtual void display(std::ostream & out, expr * n, unsigned indent = 0) const { + out << "#" << n->get_id() << "\n"; + } + virtual void display(std::ostream & out, func_decl * f, unsigned indent = 0) const { + out << "#" << f->get_id() << "\n"; + } +}; + +class ast_printer_context : public ast_printer { +public: + virtual ~ast_printer_context() {} + virtual ast_manager & get_ast_manager() = 0; + virtual std::ostream & regular_stream() { return std::cout; } + virtual std::ostream & diagnostic_stream() { return std::cerr; } +}; + + +ast_printer_context * mk_simple_ast_printer_context(ast_manager & m); + +#endif diff --git a/src/framework/README b/src/framework/README index 695db970b..c44a00690 100644 --- a/src/framework/README +++ b/src/framework/README @@ -1 +1,2 @@ -tactic and command context frameworks. \ No newline at end of file +Command context provides the infrastructure for executing commands in front-ends such as SMT-LIB 2.0. +It is also provides the solver abstraction to plugin solvers in this kind of front-end. \ No newline at end of file diff --git a/src/framework/cmd_context_to_goal.cpp b/src/framework/cmd_context_to_goal.cpp new file mode 100644 index 000000000..21f8445d5 --- /dev/null +++ b/src/framework/cmd_context_to_goal.cpp @@ -0,0 +1,46 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + cmd_context_to_goal.cpp + +Abstract: + Procedure for copying the assertions in the + command context to a goal object. + +Author: + + Leonardo (leonardo) 2012-10-21 + +Notes: + +--*/ +#include"cmd_context.h" +#include"goal.h" + +/** + \brief Assert expressions from ctx into t. +*/ +void assert_exprs_from(cmd_context const & ctx, goal & t) { + if (ctx.produce_proofs() && ctx.produce_unsat_cores()) + throw cmd_exception("Frontend does not support simultaneous generation of proofs and unsat cores"); + ast_manager & m = t.m(); + bool proofs_enabled = t.proofs_enabled(); + ptr_vector::const_iterator it = ctx.begin_assertions(); + ptr_vector::const_iterator end = ctx.end_assertions(); + for (; it != end; ++it) { + t.assert_expr(*it, proofs_enabled ? m.mk_asserted(*it) : 0, 0); + } + if (ctx.produce_unsat_cores()) { + SASSERT(!ctx.produce_proofs()); + it = ctx.begin_assumptions(); + end = ctx.end_assumptions(); + for (; it != end; ++it) { + t.assert_expr(*it, 0, m.mk_leaf(*it)); + } + } + else { + SASSERT(ctx.begin_assumptions() == ctx.end_assumptions()); + } +} diff --git a/src/framework/cmd_context_to_goal.h b/src/framework/cmd_context_to_goal.h new file mode 100644 index 000000000..2bc27baa7 --- /dev/null +++ b/src/framework/cmd_context_to_goal.h @@ -0,0 +1,24 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + cmd_context_to_goal.h + +Abstract: + Procedure for copying the assertions in the + command context to a goal object. + +Author: + + Leonardo (leonardo) 2012-10-21 + +Notes: + +--*/ +#ifndef _CMD_CONTEXT_TO_GOAL_H_ +#define _CMD_CONTEXT_TO_GOAL_H_ + +void assert_exprs_from(cmd_context const & ctx, goal & t); + +#endif diff --git a/src/framework/echo_tactic.cpp b/src/framework/echo_tactic.cpp new file mode 100644 index 000000000..10d671542 --- /dev/null +++ b/src/framework/echo_tactic.cpp @@ -0,0 +1,84 @@ +/*++ +Copyright (c) 2011 Microsoft Corporation + +Module Name: + + echo_tactic.h + +Abstract: + + Tactic and probe for dumping data. + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#include"tactic.h" +#include"probe.h" +#include"cmd_context.h" + +class echo_tactic : public skip_tactic { + cmd_context & m_ctx; + char const * m_msg; + bool m_newline; +public: + echo_tactic(cmd_context & ctx, char const * msg, bool newline):m_ctx(ctx), m_msg(msg), m_newline(newline) {} + + virtual void operator()(goal_ref const & in, + goal_ref_buffer & result, + model_converter_ref & mc, + proof_converter_ref & pc, + expr_dependency_ref & core) { + #pragma omp critical (echo_tactic) + { + m_ctx.diagnostic_stream() << m_msg; + if (m_newline) + m_ctx.diagnostic_stream() << std::endl; + } + skip_tactic::operator()(in, result, mc, pc, core); + } +}; + +tactic * mk_echo_tactic(cmd_context & ctx, char const * msg, bool newline) { + return alloc(echo_tactic, ctx, msg, newline); +} + +class probe_value_tactic : public skip_tactic { + cmd_context & m_ctx; + char const * m_msg; + probe * m_p; + bool m_newline; +public: + probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline):m_ctx(ctx), m_msg(msg), m_p(p), m_newline(newline) { + SASSERT(m_p); + m_p->inc_ref(); + } + + ~probe_value_tactic() { + m_p->dec_ref(); + } + + virtual void operator()(goal_ref const & in, + goal_ref_buffer & result, + model_converter_ref & mc, + proof_converter_ref & pc, + expr_dependency_ref & core) { + double val = (*m_p)(*(in.get())).get_value(); + #pragma omp critical (probe_value_tactic) + { + if (m_msg) + m_ctx.diagnostic_stream() << m_msg << " "; + m_ctx.diagnostic_stream() << val; + if (m_newline) + m_ctx.diagnostic_stream() << std::endl; + } + skip_tactic::operator()(in, result, mc, pc, core); + } +}; + +tactic * mk_probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline) { + return alloc(probe_value_tactic, ctx, msg, p, newline); +} diff --git a/src/framework/echo_tactic.h b/src/framework/echo_tactic.h new file mode 100644 index 000000000..8760820bd --- /dev/null +++ b/src/framework/echo_tactic.h @@ -0,0 +1,30 @@ +/*++ +Copyright (c) 2011 Microsoft Corporation + +Module Name: + + echo_tactic.h + +Abstract: + + Tactic and probe for dumping data. + +Author: + + Leonardo (leonardo) 2012-10-20 + +Notes: + +--*/ +#ifndef _ECHO_TACTICS_H_ +#define _ECHO_TACTICS_H_ + +class cmd_context; +class tactic; +class probe; + +tactic * mk_echo_tactic(cmd_context & ctx, char const * msg, bool newline = true); +// Display the value returned by p in the diagnostic_stream +tactic * mk_probe_value_tactic(cmd_context & ctx, char const * msg, probe * p, bool newline = true); + +#endif From f6c89ba1d36a6aa1ae91557abd96783640db46f3 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 18:32:35 -0700 Subject: [PATCH 25/54] checkpoint Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 18 +++++++++--------- src/{framework => cmd_context}/README | 0 src/{framework => cmd_context}/basic_cmds.cpp | 0 src/{framework => cmd_context}/basic_cmds.h | 0 src/{framework => cmd_context}/check_logic.cpp | 0 src/{framework => cmd_context}/check_logic.h | 0 .../check_sat_result.h | 0 src/{framework => cmd_context}/cmd_context.cpp | 0 src/{framework => cmd_context}/cmd_context.h | 0 .../cmd_context_to_goal.cpp | 0 .../cmd_context_to_goal.h | 0 src/{framework => cmd_context}/cmd_util.cpp | 0 src/{framework => cmd_context}/cmd_util.h | 0 src/{framework => cmd_context}/echo_tactic.cpp | 0 src/{framework => cmd_context}/echo_tactic.h | 0 src/{framework => cmd_context}/eval_cmd.cpp | 0 src/{framework => cmd_context}/eval_cmd.h | 0 .../parametric_cmd.cpp | 0 .../parametric_cmd.h | 0 src/{framework => cmd_context}/pdecl.cpp | 0 src/{framework => cmd_context}/pdecl.h | 0 .../progress_callback.h | 0 .../simplify_cmd.cpp | 0 src/{framework => cmd_context}/simplify_cmd.h | 0 src/{framework => cmd_context}/solver.cpp | 0 src/{framework => cmd_context}/solver.h | 0 .../strategic_solver.cpp | 0 .../strategic_solver.h | 0 .../tactic2solver.cpp | 0 src/{framework => cmd_context}/tactic2solver.h | 0 src/{framework => cmd_context}/tactic_cmds.cpp | 0 src/{framework => cmd_context}/tactic_cmds.h | 0 .../tactic_manager.cpp | 0 .../tactic_manager.h | 0 34 files changed, 9 insertions(+), 9 deletions(-) rename src/{framework => cmd_context}/README (100%) rename src/{framework => cmd_context}/basic_cmds.cpp (100%) rename src/{framework => cmd_context}/basic_cmds.h (100%) rename src/{framework => cmd_context}/check_logic.cpp (100%) rename src/{framework => cmd_context}/check_logic.h (100%) rename src/{framework => cmd_context}/check_sat_result.h (100%) rename src/{framework => cmd_context}/cmd_context.cpp (100%) rename src/{framework => cmd_context}/cmd_context.h (100%) rename src/{framework => cmd_context}/cmd_context_to_goal.cpp (100%) rename src/{framework => cmd_context}/cmd_context_to_goal.h (100%) rename src/{framework => cmd_context}/cmd_util.cpp (100%) rename src/{framework => cmd_context}/cmd_util.h (100%) rename src/{framework => cmd_context}/echo_tactic.cpp (100%) rename src/{framework => cmd_context}/echo_tactic.h (100%) rename src/{framework => cmd_context}/eval_cmd.cpp (100%) rename src/{framework => cmd_context}/eval_cmd.h (100%) rename src/{framework => cmd_context}/parametric_cmd.cpp (100%) rename src/{framework => cmd_context}/parametric_cmd.h (100%) rename src/{framework => cmd_context}/pdecl.cpp (100%) rename src/{framework => cmd_context}/pdecl.h (100%) rename src/{framework => cmd_context}/progress_callback.h (100%) rename src/{framework => cmd_context}/simplify_cmd.cpp (100%) rename src/{framework => cmd_context}/simplify_cmd.h (100%) rename src/{framework => cmd_context}/solver.cpp (100%) rename src/{framework => cmd_context}/solver.h (100%) rename src/{framework => cmd_context}/strategic_solver.cpp (100%) rename src/{framework => cmd_context}/strategic_solver.h (100%) rename src/{framework => cmd_context}/tactic2solver.cpp (100%) rename src/{framework => cmd_context}/tactic2solver.h (100%) rename src/{framework => cmd_context}/tactic_cmds.cpp (100%) rename src/{framework => cmd_context}/tactic_cmds.h (100%) rename src/{framework => cmd_context}/tactic_manager.cpp (100%) rename src/{framework => cmd_context}/tactic_manager.h (100%) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 22ad87dea..052e44028 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -35,31 +35,31 @@ add_lib('tactic', ['ast', 'model']) # Old (non-modular) parameter framework. It has been subsumed by util\params.h. # However, it is still used by many old components. add_lib('old_params', ['model', 'simplifier']) -add_lib('framework', ['tactic', 'rewriter', 'model', 'old_params', 'simplifier']) +add_lib('cmd_context', ['tactic', 'rewriter', 'model', 'old_params', 'simplifier']) # Assertion set is the old tactic framework used in Z3 3.x. It will be deleted as soon as we finish the porting old # code to the new tactic framework. -add_lib('assertion_set', ['framework']) +add_lib('assertion_set', ['cmd_context']) add_lib('substitution', ['ast']) -add_lib('normal_forms', ['framework', 'assertion_set']) +add_lib('normal_forms', ['tactic', 'assertion_set']) add_lib('pattern', ['normal_forms']) add_lib('spc', ['simplifier', 'substitution', 'old_params', 'pattern']) add_lib('parser_util', ['ast']) -add_lib('smt2parser', ['framework', 'parser_util']) +add_lib('smt2parser', ['cmd_context', 'parser_util']) add_lib('macros', ['simplifier', 'old_params']) add_lib('grobner', ['ast']) add_lib('euclid', ['util']) add_lib('proof_checker', ['rewriter', 'spc']) -add_lib('bit_blaster', ['rewriter', 'simplifier', 'old_params', 'framework', 'assertion_set']) -add_lib('smt', ['assertion_set', 'bit_blaster', 'macros', 'normal_forms', 'framework', +add_lib('bit_blaster', ['rewriter', 'simplifier', 'old_params', 'tactic', 'assertion_set']) +add_lib('smt', ['assertion_set', 'bit_blaster', 'macros', 'normal_forms', 'cmd_context', 'substitution', 'grobner', 'euclid', 'proof_checker', 'pattern', 'parser_util']) add_lib('user_plugin', ['smt']) -add_lib('core_tactics', ['framework', 'normal_forms']) +add_lib('core_tactics', ['tactic', 'normal_forms']) add_lib('arith_tactics', ['core_tactics', 'assertion_set', 'sat']) -add_lib('sat_tactic', ['framework', 'sat']) +add_lib('sat_tactic', ['tactic', 'sat']) add_lib('sat_strategy', ['assertion_set', 'sat_tactic']) # TODO: split muz_qe into muz, qe. Perhaps, we should also consider breaking muz into muz and pdr. add_lib('muz_qe', ['smt', 'sat', 'smt2parser']) -add_lib('aig', ['framework', 'assertion_set']) +add_lib('aig', ['cmd_context', 'assertion_set']) # TODO: delete SMT 1.0 frontend add_lib('smtparser', ['api_headers', 'smt', 'spc']) diff --git a/src/framework/README b/src/cmd_context/README similarity index 100% rename from src/framework/README rename to src/cmd_context/README diff --git a/src/framework/basic_cmds.cpp b/src/cmd_context/basic_cmds.cpp similarity index 100% rename from src/framework/basic_cmds.cpp rename to src/cmd_context/basic_cmds.cpp diff --git a/src/framework/basic_cmds.h b/src/cmd_context/basic_cmds.h similarity index 100% rename from src/framework/basic_cmds.h rename to src/cmd_context/basic_cmds.h diff --git a/src/framework/check_logic.cpp b/src/cmd_context/check_logic.cpp similarity index 100% rename from src/framework/check_logic.cpp rename to src/cmd_context/check_logic.cpp diff --git a/src/framework/check_logic.h b/src/cmd_context/check_logic.h similarity index 100% rename from src/framework/check_logic.h rename to src/cmd_context/check_logic.h diff --git a/src/framework/check_sat_result.h b/src/cmd_context/check_sat_result.h similarity index 100% rename from src/framework/check_sat_result.h rename to src/cmd_context/check_sat_result.h diff --git a/src/framework/cmd_context.cpp b/src/cmd_context/cmd_context.cpp similarity index 100% rename from src/framework/cmd_context.cpp rename to src/cmd_context/cmd_context.cpp diff --git a/src/framework/cmd_context.h b/src/cmd_context/cmd_context.h similarity index 100% rename from src/framework/cmd_context.h rename to src/cmd_context/cmd_context.h diff --git a/src/framework/cmd_context_to_goal.cpp b/src/cmd_context/cmd_context_to_goal.cpp similarity index 100% rename from src/framework/cmd_context_to_goal.cpp rename to src/cmd_context/cmd_context_to_goal.cpp diff --git a/src/framework/cmd_context_to_goal.h b/src/cmd_context/cmd_context_to_goal.h similarity index 100% rename from src/framework/cmd_context_to_goal.h rename to src/cmd_context/cmd_context_to_goal.h diff --git a/src/framework/cmd_util.cpp b/src/cmd_context/cmd_util.cpp similarity index 100% rename from src/framework/cmd_util.cpp rename to src/cmd_context/cmd_util.cpp diff --git a/src/framework/cmd_util.h b/src/cmd_context/cmd_util.h similarity index 100% rename from src/framework/cmd_util.h rename to src/cmd_context/cmd_util.h diff --git a/src/framework/echo_tactic.cpp b/src/cmd_context/echo_tactic.cpp similarity index 100% rename from src/framework/echo_tactic.cpp rename to src/cmd_context/echo_tactic.cpp diff --git a/src/framework/echo_tactic.h b/src/cmd_context/echo_tactic.h similarity index 100% rename from src/framework/echo_tactic.h rename to src/cmd_context/echo_tactic.h diff --git a/src/framework/eval_cmd.cpp b/src/cmd_context/eval_cmd.cpp similarity index 100% rename from src/framework/eval_cmd.cpp rename to src/cmd_context/eval_cmd.cpp diff --git a/src/framework/eval_cmd.h b/src/cmd_context/eval_cmd.h similarity index 100% rename from src/framework/eval_cmd.h rename to src/cmd_context/eval_cmd.h diff --git a/src/framework/parametric_cmd.cpp b/src/cmd_context/parametric_cmd.cpp similarity index 100% rename from src/framework/parametric_cmd.cpp rename to src/cmd_context/parametric_cmd.cpp diff --git a/src/framework/parametric_cmd.h b/src/cmd_context/parametric_cmd.h similarity index 100% rename from src/framework/parametric_cmd.h rename to src/cmd_context/parametric_cmd.h diff --git a/src/framework/pdecl.cpp b/src/cmd_context/pdecl.cpp similarity index 100% rename from src/framework/pdecl.cpp rename to src/cmd_context/pdecl.cpp diff --git a/src/framework/pdecl.h b/src/cmd_context/pdecl.h similarity index 100% rename from src/framework/pdecl.h rename to src/cmd_context/pdecl.h diff --git a/src/framework/progress_callback.h b/src/cmd_context/progress_callback.h similarity index 100% rename from src/framework/progress_callback.h rename to src/cmd_context/progress_callback.h diff --git a/src/framework/simplify_cmd.cpp b/src/cmd_context/simplify_cmd.cpp similarity index 100% rename from src/framework/simplify_cmd.cpp rename to src/cmd_context/simplify_cmd.cpp diff --git a/src/framework/simplify_cmd.h b/src/cmd_context/simplify_cmd.h similarity index 100% rename from src/framework/simplify_cmd.h rename to src/cmd_context/simplify_cmd.h diff --git a/src/framework/solver.cpp b/src/cmd_context/solver.cpp similarity index 100% rename from src/framework/solver.cpp rename to src/cmd_context/solver.cpp diff --git a/src/framework/solver.h b/src/cmd_context/solver.h similarity index 100% rename from src/framework/solver.h rename to src/cmd_context/solver.h diff --git a/src/framework/strategic_solver.cpp b/src/cmd_context/strategic_solver.cpp similarity index 100% rename from src/framework/strategic_solver.cpp rename to src/cmd_context/strategic_solver.cpp diff --git a/src/framework/strategic_solver.h b/src/cmd_context/strategic_solver.h similarity index 100% rename from src/framework/strategic_solver.h rename to src/cmd_context/strategic_solver.h diff --git a/src/framework/tactic2solver.cpp b/src/cmd_context/tactic2solver.cpp similarity index 100% rename from src/framework/tactic2solver.cpp rename to src/cmd_context/tactic2solver.cpp diff --git a/src/framework/tactic2solver.h b/src/cmd_context/tactic2solver.h similarity index 100% rename from src/framework/tactic2solver.h rename to src/cmd_context/tactic2solver.h diff --git a/src/framework/tactic_cmds.cpp b/src/cmd_context/tactic_cmds.cpp similarity index 100% rename from src/framework/tactic_cmds.cpp rename to src/cmd_context/tactic_cmds.cpp diff --git a/src/framework/tactic_cmds.h b/src/cmd_context/tactic_cmds.h similarity index 100% rename from src/framework/tactic_cmds.h rename to src/cmd_context/tactic_cmds.h diff --git a/src/framework/tactic_manager.cpp b/src/cmd_context/tactic_manager.cpp similarity index 100% rename from src/framework/tactic_manager.cpp rename to src/cmd_context/tactic_manager.cpp diff --git a/src/framework/tactic_manager.h b/src/cmd_context/tactic_manager.h similarity index 100% rename from src/framework/tactic_manager.h rename to src/cmd_context/tactic_manager.h From 6fd63cd05a881aa70c3ca1280ab3367f8e96d7ea Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 20:04:34 -0700 Subject: [PATCH 26/54] checkpoint Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 10 +++++++++- {lib => src/arith_tactics}/factor_tactic.cpp | 0 {lib => src/arith_tactics}/factor_tactic.h | 0 {lib => src/arith_tactics}/smt_arith.cpp | 0 {lib => src/arith_tactics}/smt_arith.h | 0 {lib => src/ast}/expr2dot.cpp | 0 {lib => src/ast}/expr2dot.h | 0 {lib => src/ast}/expr2polynomial.cpp | 0 {lib => src/ast}/expr2polynomial.h | 0 {lib => src/bv_tactics}/bv_size_reduction_tactic.cpp | 0 {lib => src/bv_tactics}/bv_size_reduction_tactic.h | 0 {lib => src/bv_tactics}/max_bv_sharing_tactic.cpp | 0 {lib => src/bv_tactics}/max_bv_sharing_tactic.h | 0 {lib => src/dead}/contains_var.h | 0 {lib => src/dead}/lru_cache.cpp | 0 {lib => src/dead}/lru_cache.h | 0 {lib => src/fpa}/fpa2bv_converter.cpp | 0 {lib => src/fpa}/fpa2bv_converter.h | 0 {lib => src/fpa}/fpa2bv_tactic.cpp | 0 {lib => src/fpa}/fpa2bv_tactic.h | 0 {lib => src/fpa}/qffpa_tactic.cpp | 0 {lib => src/fpa}/qffpa_tactic.h | 0 {lib => src/fuzzing}/expr_delta.cpp | 0 {lib => src/fuzzing}/expr_delta.h | 0 {lib => src/fuzzing}/expr_rand.cpp | 0 {lib => src/fuzzing}/expr_rand.h | 0 {lib => src/nlsat_tactic}/goal2nlsat.cpp | 0 {lib => src/nlsat_tactic}/goal2nlsat.h | 0 {lib => src/nlsat_tactic}/nlsat_tactic.cpp | 0 {lib => src/nlsat_tactic}/nlsat_tactic.h | 0 {lib => src/nlsat_tactic}/qfnra_nlsat_tactic.cpp | 0 {lib => src/nlsat_tactic}/qfnra_nlsat_tactic.h | 0 {lib => src/sat}/dimacs.cpp | 0 {lib => src/sat}/dimacs.h | 0 {lib => src/sls_tactic}/sls_strategy.h | 0 {lib => src/sls_tactic}/sls_tactic.cpp | 0 {lib => src/sls_tactic}/sls_tactic.h | 0 {lib => src/smt}/smt_implied_equalities.cpp | 0 {lib => src/smt}/smt_implied_equalities.h | 0 {lib => src/smt_tactic}/smt_tactic.cpp | 0 {lib => src/smt_tactic}/smt_tactic.h | 0 {lib => src/smtlogic_tactics}/nra_tactic.cpp | 0 {lib => src/smtlogic_tactics}/nra_tactic.h | 0 {lib => src/smtlogic_tactics}/qfaufbv_tactic.cpp | 0 {lib => src/smtlogic_tactics}/qfaufbv_tactic.h | 0 {lib => src/smtlogic_tactics}/qfauflia_tactic.cpp | 0 {lib => src/smtlogic_tactics}/qfauflia_tactic.h | 0 {lib => src/smtlogic_tactics}/qfbv_tactic.cpp | 0 {lib => src/smtlogic_tactics}/qfbv_tactic.h | 0 {lib => src/smtlogic_tactics}/qfidl_tactic.cpp | 0 {lib => src/smtlogic_tactics}/qfidl_tactic.h | 0 {lib => src/smtlogic_tactics}/qflia_tactic.cpp | 0 {lib => src/smtlogic_tactics}/qflia_tactic.h | 0 {lib => src/smtlogic_tactics}/qflra_tactic.cpp | 0 {lib => src/smtlogic_tactics}/qflra_tactic.h | 0 {lib => src/smtlogic_tactics}/qfnia_tactic.cpp | 0 {lib => src/smtlogic_tactics}/qfnia_tactic.h | 0 {lib => src/smtlogic_tactics}/qfnra_tactic.cpp | 0 {lib => src/smtlogic_tactics}/qfnra_tactic.h | 0 {lib => src/smtlogic_tactics}/qfuf_tactic.cpp | 0 {lib => src/smtlogic_tactics}/qfuf_tactic.h | 0 {lib => src/smtlogic_tactics}/qfufbv_tactic.cpp | 0 {lib => src/smtlogic_tactics}/qfufbv_tactic.h | 0 {lib => src/smtlogic_tactics}/quant_tactics.cpp | 0 {lib => src/smtlogic_tactics}/quant_tactics.h | 0 {lib => src/subpaving_tactic}/expr2subpaving.cpp | 0 {lib => src/subpaving_tactic}/expr2subpaving.h | 0 {lib => src/subpaving_tactic}/subpaving_tactic.cpp | 0 {lib => src/subpaving_tactic}/subpaving_tactic.h | 0 69 files changed, 9 insertions(+), 1 deletion(-) rename {lib => src/arith_tactics}/factor_tactic.cpp (100%) rename {lib => src/arith_tactics}/factor_tactic.h (100%) rename {lib => src/arith_tactics}/smt_arith.cpp (100%) rename {lib => src/arith_tactics}/smt_arith.h (100%) rename {lib => src/ast}/expr2dot.cpp (100%) rename {lib => src/ast}/expr2dot.h (100%) rename {lib => src/ast}/expr2polynomial.cpp (100%) rename {lib => src/ast}/expr2polynomial.h (100%) rename {lib => src/bv_tactics}/bv_size_reduction_tactic.cpp (100%) rename {lib => src/bv_tactics}/bv_size_reduction_tactic.h (100%) rename {lib => src/bv_tactics}/max_bv_sharing_tactic.cpp (100%) rename {lib => src/bv_tactics}/max_bv_sharing_tactic.h (100%) rename {lib => src/dead}/contains_var.h (100%) rename {lib => src/dead}/lru_cache.cpp (100%) rename {lib => src/dead}/lru_cache.h (100%) rename {lib => src/fpa}/fpa2bv_converter.cpp (100%) rename {lib => src/fpa}/fpa2bv_converter.h (100%) rename {lib => src/fpa}/fpa2bv_tactic.cpp (100%) rename {lib => src/fpa}/fpa2bv_tactic.h (100%) rename {lib => src/fpa}/qffpa_tactic.cpp (100%) rename {lib => src/fpa}/qffpa_tactic.h (100%) rename {lib => src/fuzzing}/expr_delta.cpp (100%) rename {lib => src/fuzzing}/expr_delta.h (100%) rename {lib => src/fuzzing}/expr_rand.cpp (100%) rename {lib => src/fuzzing}/expr_rand.h (100%) rename {lib => src/nlsat_tactic}/goal2nlsat.cpp (100%) rename {lib => src/nlsat_tactic}/goal2nlsat.h (100%) rename {lib => src/nlsat_tactic}/nlsat_tactic.cpp (100%) rename {lib => src/nlsat_tactic}/nlsat_tactic.h (100%) rename {lib => src/nlsat_tactic}/qfnra_nlsat_tactic.cpp (100%) rename {lib => src/nlsat_tactic}/qfnra_nlsat_tactic.h (100%) rename {lib => src/sat}/dimacs.cpp (100%) rename {lib => src/sat}/dimacs.h (100%) rename {lib => src/sls_tactic}/sls_strategy.h (100%) rename {lib => src/sls_tactic}/sls_tactic.cpp (100%) rename {lib => src/sls_tactic}/sls_tactic.h (100%) rename {lib => src/smt}/smt_implied_equalities.cpp (100%) rename {lib => src/smt}/smt_implied_equalities.h (100%) rename {lib => src/smt_tactic}/smt_tactic.cpp (100%) rename {lib => src/smt_tactic}/smt_tactic.h (100%) rename {lib => src/smtlogic_tactics}/nra_tactic.cpp (100%) rename {lib => src/smtlogic_tactics}/nra_tactic.h (100%) rename {lib => src/smtlogic_tactics}/qfaufbv_tactic.cpp (100%) rename {lib => src/smtlogic_tactics}/qfaufbv_tactic.h (100%) rename {lib => src/smtlogic_tactics}/qfauflia_tactic.cpp (100%) rename {lib => src/smtlogic_tactics}/qfauflia_tactic.h (100%) rename {lib => src/smtlogic_tactics}/qfbv_tactic.cpp (100%) rename {lib => src/smtlogic_tactics}/qfbv_tactic.h (100%) rename {lib => src/smtlogic_tactics}/qfidl_tactic.cpp (100%) rename {lib => src/smtlogic_tactics}/qfidl_tactic.h (100%) rename {lib => src/smtlogic_tactics}/qflia_tactic.cpp (100%) rename {lib => src/smtlogic_tactics}/qflia_tactic.h (100%) rename {lib => src/smtlogic_tactics}/qflra_tactic.cpp (100%) rename {lib => src/smtlogic_tactics}/qflra_tactic.h (100%) rename {lib => src/smtlogic_tactics}/qfnia_tactic.cpp (100%) rename {lib => src/smtlogic_tactics}/qfnia_tactic.h (100%) rename {lib => src/smtlogic_tactics}/qfnra_tactic.cpp (100%) rename {lib => src/smtlogic_tactics}/qfnra_tactic.h (100%) rename {lib => src/smtlogic_tactics}/qfuf_tactic.cpp (100%) rename {lib => src/smtlogic_tactics}/qfuf_tactic.h (100%) rename {lib => src/smtlogic_tactics}/qfufbv_tactic.cpp (100%) rename {lib => src/smtlogic_tactics}/qfufbv_tactic.h (100%) rename {lib => src/smtlogic_tactics}/quant_tactics.cpp (100%) rename {lib => src/smtlogic_tactics}/quant_tactics.h (100%) rename {lib => src/subpaving_tactic}/expr2subpaving.cpp (100%) rename {lib => src/subpaving_tactic}/expr2subpaving.h (100%) rename {lib => src/subpaving_tactic}/subpaving_tactic.cpp (100%) rename {lib => src/subpaving_tactic}/subpaving_tactic.h (100%) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 052e44028..3e9f673cf 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -54,9 +54,17 @@ add_lib('smt', ['assertion_set', 'bit_blaster', 'macros', 'normal_forms', 'cmd_c 'substitution', 'grobner', 'euclid', 'proof_checker', 'pattern', 'parser_util']) add_lib('user_plugin', ['smt']) add_lib('core_tactics', ['tactic', 'normal_forms']) -add_lib('arith_tactics', ['core_tactics', 'assertion_set', 'sat']) add_lib('sat_tactic', ['tactic', 'sat']) add_lib('sat_strategy', ['assertion_set', 'sat_tactic']) +add_lib('arith_tactics', ['core_tactics', 'assertion_set', 'sat', 'sat_strategy']) +add_lib('nlsat_tactic', ['nlsat', 'sat_tactic', 'arith_tactics']) +add_lib('subpaving_tactic', ['core_tactics', 'subpaving']) +add_lib('bv_tactics', ['tactic']) +add_lib('fuzzing', ['ast']) +add_lib('fpa', ['core_tactics', 'bit_blaster', 'sat_tactic']) +add_lib('smt_tactic', ['smt']) +add_lib('sls_tactic', ['tactic', 'normal_forms', 'core_tactics', 'bv_tactics']) +add_lib('smtlogic_tactics', ['arith_tactics', 'bv_tactics', 'nlsat_tactic', 'smt_tactic']) # TODO: split muz_qe into muz, qe. Perhaps, we should also consider breaking muz into muz and pdr. add_lib('muz_qe', ['smt', 'sat', 'smt2parser']) add_lib('aig', ['cmd_context', 'assertion_set']) diff --git a/lib/factor_tactic.cpp b/src/arith_tactics/factor_tactic.cpp similarity index 100% rename from lib/factor_tactic.cpp rename to src/arith_tactics/factor_tactic.cpp diff --git a/lib/factor_tactic.h b/src/arith_tactics/factor_tactic.h similarity index 100% rename from lib/factor_tactic.h rename to src/arith_tactics/factor_tactic.h diff --git a/lib/smt_arith.cpp b/src/arith_tactics/smt_arith.cpp similarity index 100% rename from lib/smt_arith.cpp rename to src/arith_tactics/smt_arith.cpp diff --git a/lib/smt_arith.h b/src/arith_tactics/smt_arith.h similarity index 100% rename from lib/smt_arith.h rename to src/arith_tactics/smt_arith.h diff --git a/lib/expr2dot.cpp b/src/ast/expr2dot.cpp similarity index 100% rename from lib/expr2dot.cpp rename to src/ast/expr2dot.cpp diff --git a/lib/expr2dot.h b/src/ast/expr2dot.h similarity index 100% rename from lib/expr2dot.h rename to src/ast/expr2dot.h diff --git a/lib/expr2polynomial.cpp b/src/ast/expr2polynomial.cpp similarity index 100% rename from lib/expr2polynomial.cpp rename to src/ast/expr2polynomial.cpp diff --git a/lib/expr2polynomial.h b/src/ast/expr2polynomial.h similarity index 100% rename from lib/expr2polynomial.h rename to src/ast/expr2polynomial.h diff --git a/lib/bv_size_reduction_tactic.cpp b/src/bv_tactics/bv_size_reduction_tactic.cpp similarity index 100% rename from lib/bv_size_reduction_tactic.cpp rename to src/bv_tactics/bv_size_reduction_tactic.cpp diff --git a/lib/bv_size_reduction_tactic.h b/src/bv_tactics/bv_size_reduction_tactic.h similarity index 100% rename from lib/bv_size_reduction_tactic.h rename to src/bv_tactics/bv_size_reduction_tactic.h diff --git a/lib/max_bv_sharing_tactic.cpp b/src/bv_tactics/max_bv_sharing_tactic.cpp similarity index 100% rename from lib/max_bv_sharing_tactic.cpp rename to src/bv_tactics/max_bv_sharing_tactic.cpp diff --git a/lib/max_bv_sharing_tactic.h b/src/bv_tactics/max_bv_sharing_tactic.h similarity index 100% rename from lib/max_bv_sharing_tactic.h rename to src/bv_tactics/max_bv_sharing_tactic.h diff --git a/lib/contains_var.h b/src/dead/contains_var.h similarity index 100% rename from lib/contains_var.h rename to src/dead/contains_var.h diff --git a/lib/lru_cache.cpp b/src/dead/lru_cache.cpp similarity index 100% rename from lib/lru_cache.cpp rename to src/dead/lru_cache.cpp diff --git a/lib/lru_cache.h b/src/dead/lru_cache.h similarity index 100% rename from lib/lru_cache.h rename to src/dead/lru_cache.h diff --git a/lib/fpa2bv_converter.cpp b/src/fpa/fpa2bv_converter.cpp similarity index 100% rename from lib/fpa2bv_converter.cpp rename to src/fpa/fpa2bv_converter.cpp diff --git a/lib/fpa2bv_converter.h b/src/fpa/fpa2bv_converter.h similarity index 100% rename from lib/fpa2bv_converter.h rename to src/fpa/fpa2bv_converter.h diff --git a/lib/fpa2bv_tactic.cpp b/src/fpa/fpa2bv_tactic.cpp similarity index 100% rename from lib/fpa2bv_tactic.cpp rename to src/fpa/fpa2bv_tactic.cpp diff --git a/lib/fpa2bv_tactic.h b/src/fpa/fpa2bv_tactic.h similarity index 100% rename from lib/fpa2bv_tactic.h rename to src/fpa/fpa2bv_tactic.h diff --git a/lib/qffpa_tactic.cpp b/src/fpa/qffpa_tactic.cpp similarity index 100% rename from lib/qffpa_tactic.cpp rename to src/fpa/qffpa_tactic.cpp diff --git a/lib/qffpa_tactic.h b/src/fpa/qffpa_tactic.h similarity index 100% rename from lib/qffpa_tactic.h rename to src/fpa/qffpa_tactic.h diff --git a/lib/expr_delta.cpp b/src/fuzzing/expr_delta.cpp similarity index 100% rename from lib/expr_delta.cpp rename to src/fuzzing/expr_delta.cpp diff --git a/lib/expr_delta.h b/src/fuzzing/expr_delta.h similarity index 100% rename from lib/expr_delta.h rename to src/fuzzing/expr_delta.h diff --git a/lib/expr_rand.cpp b/src/fuzzing/expr_rand.cpp similarity index 100% rename from lib/expr_rand.cpp rename to src/fuzzing/expr_rand.cpp diff --git a/lib/expr_rand.h b/src/fuzzing/expr_rand.h similarity index 100% rename from lib/expr_rand.h rename to src/fuzzing/expr_rand.h diff --git a/lib/goal2nlsat.cpp b/src/nlsat_tactic/goal2nlsat.cpp similarity index 100% rename from lib/goal2nlsat.cpp rename to src/nlsat_tactic/goal2nlsat.cpp diff --git a/lib/goal2nlsat.h b/src/nlsat_tactic/goal2nlsat.h similarity index 100% rename from lib/goal2nlsat.h rename to src/nlsat_tactic/goal2nlsat.h diff --git a/lib/nlsat_tactic.cpp b/src/nlsat_tactic/nlsat_tactic.cpp similarity index 100% rename from lib/nlsat_tactic.cpp rename to src/nlsat_tactic/nlsat_tactic.cpp diff --git a/lib/nlsat_tactic.h b/src/nlsat_tactic/nlsat_tactic.h similarity index 100% rename from lib/nlsat_tactic.h rename to src/nlsat_tactic/nlsat_tactic.h diff --git a/lib/qfnra_nlsat_tactic.cpp b/src/nlsat_tactic/qfnra_nlsat_tactic.cpp similarity index 100% rename from lib/qfnra_nlsat_tactic.cpp rename to src/nlsat_tactic/qfnra_nlsat_tactic.cpp diff --git a/lib/qfnra_nlsat_tactic.h b/src/nlsat_tactic/qfnra_nlsat_tactic.h similarity index 100% rename from lib/qfnra_nlsat_tactic.h rename to src/nlsat_tactic/qfnra_nlsat_tactic.h diff --git a/lib/dimacs.cpp b/src/sat/dimacs.cpp similarity index 100% rename from lib/dimacs.cpp rename to src/sat/dimacs.cpp diff --git a/lib/dimacs.h b/src/sat/dimacs.h similarity index 100% rename from lib/dimacs.h rename to src/sat/dimacs.h diff --git a/lib/sls_strategy.h b/src/sls_tactic/sls_strategy.h similarity index 100% rename from lib/sls_strategy.h rename to src/sls_tactic/sls_strategy.h diff --git a/lib/sls_tactic.cpp b/src/sls_tactic/sls_tactic.cpp similarity index 100% rename from lib/sls_tactic.cpp rename to src/sls_tactic/sls_tactic.cpp diff --git a/lib/sls_tactic.h b/src/sls_tactic/sls_tactic.h similarity index 100% rename from lib/sls_tactic.h rename to src/sls_tactic/sls_tactic.h diff --git a/lib/smt_implied_equalities.cpp b/src/smt/smt_implied_equalities.cpp similarity index 100% rename from lib/smt_implied_equalities.cpp rename to src/smt/smt_implied_equalities.cpp diff --git a/lib/smt_implied_equalities.h b/src/smt/smt_implied_equalities.h similarity index 100% rename from lib/smt_implied_equalities.h rename to src/smt/smt_implied_equalities.h diff --git a/lib/smt_tactic.cpp b/src/smt_tactic/smt_tactic.cpp similarity index 100% rename from lib/smt_tactic.cpp rename to src/smt_tactic/smt_tactic.cpp diff --git a/lib/smt_tactic.h b/src/smt_tactic/smt_tactic.h similarity index 100% rename from lib/smt_tactic.h rename to src/smt_tactic/smt_tactic.h diff --git a/lib/nra_tactic.cpp b/src/smtlogic_tactics/nra_tactic.cpp similarity index 100% rename from lib/nra_tactic.cpp rename to src/smtlogic_tactics/nra_tactic.cpp diff --git a/lib/nra_tactic.h b/src/smtlogic_tactics/nra_tactic.h similarity index 100% rename from lib/nra_tactic.h rename to src/smtlogic_tactics/nra_tactic.h diff --git a/lib/qfaufbv_tactic.cpp b/src/smtlogic_tactics/qfaufbv_tactic.cpp similarity index 100% rename from lib/qfaufbv_tactic.cpp rename to src/smtlogic_tactics/qfaufbv_tactic.cpp diff --git a/lib/qfaufbv_tactic.h b/src/smtlogic_tactics/qfaufbv_tactic.h similarity index 100% rename from lib/qfaufbv_tactic.h rename to src/smtlogic_tactics/qfaufbv_tactic.h diff --git a/lib/qfauflia_tactic.cpp b/src/smtlogic_tactics/qfauflia_tactic.cpp similarity index 100% rename from lib/qfauflia_tactic.cpp rename to src/smtlogic_tactics/qfauflia_tactic.cpp diff --git a/lib/qfauflia_tactic.h b/src/smtlogic_tactics/qfauflia_tactic.h similarity index 100% rename from lib/qfauflia_tactic.h rename to src/smtlogic_tactics/qfauflia_tactic.h diff --git a/lib/qfbv_tactic.cpp b/src/smtlogic_tactics/qfbv_tactic.cpp similarity index 100% rename from lib/qfbv_tactic.cpp rename to src/smtlogic_tactics/qfbv_tactic.cpp diff --git a/lib/qfbv_tactic.h b/src/smtlogic_tactics/qfbv_tactic.h similarity index 100% rename from lib/qfbv_tactic.h rename to src/smtlogic_tactics/qfbv_tactic.h diff --git a/lib/qfidl_tactic.cpp b/src/smtlogic_tactics/qfidl_tactic.cpp similarity index 100% rename from lib/qfidl_tactic.cpp rename to src/smtlogic_tactics/qfidl_tactic.cpp diff --git a/lib/qfidl_tactic.h b/src/smtlogic_tactics/qfidl_tactic.h similarity index 100% rename from lib/qfidl_tactic.h rename to src/smtlogic_tactics/qfidl_tactic.h diff --git a/lib/qflia_tactic.cpp b/src/smtlogic_tactics/qflia_tactic.cpp similarity index 100% rename from lib/qflia_tactic.cpp rename to src/smtlogic_tactics/qflia_tactic.cpp diff --git a/lib/qflia_tactic.h b/src/smtlogic_tactics/qflia_tactic.h similarity index 100% rename from lib/qflia_tactic.h rename to src/smtlogic_tactics/qflia_tactic.h diff --git a/lib/qflra_tactic.cpp b/src/smtlogic_tactics/qflra_tactic.cpp similarity index 100% rename from lib/qflra_tactic.cpp rename to src/smtlogic_tactics/qflra_tactic.cpp diff --git a/lib/qflra_tactic.h b/src/smtlogic_tactics/qflra_tactic.h similarity index 100% rename from lib/qflra_tactic.h rename to src/smtlogic_tactics/qflra_tactic.h diff --git a/lib/qfnia_tactic.cpp b/src/smtlogic_tactics/qfnia_tactic.cpp similarity index 100% rename from lib/qfnia_tactic.cpp rename to src/smtlogic_tactics/qfnia_tactic.cpp diff --git a/lib/qfnia_tactic.h b/src/smtlogic_tactics/qfnia_tactic.h similarity index 100% rename from lib/qfnia_tactic.h rename to src/smtlogic_tactics/qfnia_tactic.h diff --git a/lib/qfnra_tactic.cpp b/src/smtlogic_tactics/qfnra_tactic.cpp similarity index 100% rename from lib/qfnra_tactic.cpp rename to src/smtlogic_tactics/qfnra_tactic.cpp diff --git a/lib/qfnra_tactic.h b/src/smtlogic_tactics/qfnra_tactic.h similarity index 100% rename from lib/qfnra_tactic.h rename to src/smtlogic_tactics/qfnra_tactic.h diff --git a/lib/qfuf_tactic.cpp b/src/smtlogic_tactics/qfuf_tactic.cpp similarity index 100% rename from lib/qfuf_tactic.cpp rename to src/smtlogic_tactics/qfuf_tactic.cpp diff --git a/lib/qfuf_tactic.h b/src/smtlogic_tactics/qfuf_tactic.h similarity index 100% rename from lib/qfuf_tactic.h rename to src/smtlogic_tactics/qfuf_tactic.h diff --git a/lib/qfufbv_tactic.cpp b/src/smtlogic_tactics/qfufbv_tactic.cpp similarity index 100% rename from lib/qfufbv_tactic.cpp rename to src/smtlogic_tactics/qfufbv_tactic.cpp diff --git a/lib/qfufbv_tactic.h b/src/smtlogic_tactics/qfufbv_tactic.h similarity index 100% rename from lib/qfufbv_tactic.h rename to src/smtlogic_tactics/qfufbv_tactic.h diff --git a/lib/quant_tactics.cpp b/src/smtlogic_tactics/quant_tactics.cpp similarity index 100% rename from lib/quant_tactics.cpp rename to src/smtlogic_tactics/quant_tactics.cpp diff --git a/lib/quant_tactics.h b/src/smtlogic_tactics/quant_tactics.h similarity index 100% rename from lib/quant_tactics.h rename to src/smtlogic_tactics/quant_tactics.h diff --git a/lib/expr2subpaving.cpp b/src/subpaving_tactic/expr2subpaving.cpp similarity index 100% rename from lib/expr2subpaving.cpp rename to src/subpaving_tactic/expr2subpaving.cpp diff --git a/lib/expr2subpaving.h b/src/subpaving_tactic/expr2subpaving.h similarity index 100% rename from lib/expr2subpaving.h rename to src/subpaving_tactic/expr2subpaving.h diff --git a/lib/subpaving_tactic.cpp b/src/subpaving_tactic/subpaving_tactic.cpp similarity index 100% rename from lib/subpaving_tactic.cpp rename to src/subpaving_tactic/subpaving_tactic.cpp diff --git a/lib/subpaving_tactic.h b/src/subpaving_tactic/subpaving_tactic.h similarity index 100% rename from lib/subpaving_tactic.h rename to src/subpaving_tactic/subpaving_tactic.h From 80b2df3621cc870d11fc409cd96461e9dfaf4b63 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 20:46:41 -0700 Subject: [PATCH 27/54] checkpoint Signed-off-by: Leonardo de Moura --- lib/lib.vcxproj | 1326 ----------------- scripts/mk_make.py | 6 +- src/{api_headers => api}/z3.h | 0 src/{api_headers => api}/z3_api.h | 0 {lib => src/api}/z3_internal.h | 0 src/{api_headers => api}/z3_internal_types.h | 0 {lib => src/api}/z3_logger.h | 0 src/{api_headers => api}/z3_macros.h | 0 {lib => src/api}/z3_poly.h | 0 {lib => src/api}/z3_private.h | 0 {lib => src/api}/z3_replayer.cpp | 0 {lib => src/api}/z3_replayer.h | 0 {lib => src/api}/z3_solver.cpp | 0 {lib => src/api}/z3_solver.h | 0 src/{api_headers => api}/z3_v1.h | 0 {lib => src/dead}/value_compiler_extension.h | 0 {lib => src/portfolio}/default_tactic.cpp | 0 {lib => src/portfolio}/default_tactic.h | 0 {lib => src/portfolio}/install_tactics.cpp | 2 +- {lib => src/portfolio}/install_tactics.h | 0 .../portfolio}/smt_strategic_solver.cpp | 0 {lib => src/portfolio}/smt_strategic_solver.h | 0 .../smt}/ctx_solver_simplify_tactic.cpp | 0 {lib => src/smt}/ctx_solver_simplify_tactic.h | 0 {lib => src/smt}/mk_database.sh | 0 {lib => src/smt}/ni_solver.cpp | 0 {lib => src/smt}/ni_solver.h | 0 {lib => src/ufbv_strategy}/ufbv_strategy.cpp | 3 +- {lib => src/ufbv_strategy}/ufbv_strategy.h | 0 29 files changed, 8 insertions(+), 1329 deletions(-) delete mode 100644 lib/lib.vcxproj rename src/{api_headers => api}/z3.h (100%) rename src/{api_headers => api}/z3_api.h (100%) rename {lib => src/api}/z3_internal.h (100%) rename src/{api_headers => api}/z3_internal_types.h (100%) rename {lib => src/api}/z3_logger.h (100%) rename src/{api_headers => api}/z3_macros.h (100%) rename {lib => src/api}/z3_poly.h (100%) rename {lib => src/api}/z3_private.h (100%) rename {lib => src/api}/z3_replayer.cpp (100%) rename {lib => src/api}/z3_replayer.h (100%) rename {lib => src/api}/z3_solver.cpp (100%) rename {lib => src/api}/z3_solver.h (100%) rename src/{api_headers => api}/z3_v1.h (100%) rename {lib => src/dead}/value_compiler_extension.h (100%) rename {lib => src/portfolio}/default_tactic.cpp (100%) rename {lib => src/portfolio}/default_tactic.h (100%) rename {lib => src/portfolio}/install_tactics.cpp (99%) rename {lib => src/portfolio}/install_tactics.h (100%) rename {lib => src/portfolio}/smt_strategic_solver.cpp (100%) rename {lib => src/portfolio}/smt_strategic_solver.h (100%) rename {lib => src/smt}/ctx_solver_simplify_tactic.cpp (100%) rename {lib => src/smt}/ctx_solver_simplify_tactic.h (100%) rename {lib => src/smt}/mk_database.sh (100%) rename {lib => src/smt}/ni_solver.cpp (100%) rename {lib => src/smt}/ni_solver.h (100%) rename {lib => src/ufbv_strategy}/ufbv_strategy.cpp (99%) rename {lib => src/ufbv_strategy}/ufbv_strategy.h (100%) diff --git a/lib/lib.vcxproj b/lib/lib.vcxproj deleted file mode 100644 index 92193faba..000000000 --- a/lib/lib.vcxproj +++ /dev/null @@ -1,1326 +0,0 @@ - - - - - commercial - Win32 - - - commercial - x64 - - - Debug - Win32 - - - Debug - x64 - - - external - Win32 - - - external - x64 - - - release_mt - Win32 - - - release_mt - x64 - - - Release - Win32 - - - Release - x64 - - - Trace - Win32 - - - Trace - x64 - - - - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E} - lib - Win32Proj - - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - Application - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - true - - - StaticLibrary - Unicode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - z3lib - - - - Disabled - WIN32;_DEBUG;Z3DEBUG;_LIB;_TRACE;_WINDOWS;ASYNC_COMMANDS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - - - Level3 - ProgramDatabase - StreamingSIMDExtensions2 - - - $(OutDir)z3lib.lib - %(AdditionalLibraryDirectories) - MachineX86 - - - - - X64 - - - Disabled - WIN32;Z3DEBUG;_DEBUG;_LIB;_TRACE;_WINDOWS;ASYNC_COMMANDS;_AMD64_;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - $(OutDir)z3lib.lib - %(AdditionalLibraryDirectories) - MachineX64 - - - - - Full - false - WIN32;NDEBUG;_LIB;_WINDOWS;ASYNC_COMMANDS;%(PreprocessorDefinitions) - MultiThreadedDLL - true - - - Level3 - ProgramDatabase - StreamingSIMDExtensions2 - - - $(OutDir)z3lib.lib - MachineX86 - - - - - X64 - - - MaxSpeed - false - WIN32;NDEBUG;_LIB;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - MachineX64 - - - - - false - WIN32;NDEBUG;_LIB;_WINDOWS;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - StreamingSIMDExtensions2 - - - - - X64 - - - WIN32;NDEBUG;_LIB;_WINDOWS;_TRACE;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - Full - false - _NO_OMP_;WIN32;NDEBUG;_LIB;_WINDOWS;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - false - StreamingSIMDExtensions2 - - - $(OutDir)z3lib.lib - false - - - - - Full - false - WIN32;NDEBUG;_LIB;_WINDOWS;_EXTERNAL_RELEASE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - StreamingSIMDExtensions2 - - - $(OutDir)z3lib.lib - - - - - Full - false - WIN32;NDEBUG;_LIB;_WINDOWS;_Z3_COMMERCIAL;_EXTERNAL_RELEASE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - StreamingSIMDExtensions2 - - - $(OutDir)z3lib.lib - - - - - X64 - - - MaxSpeed - false - _AMD64_;WIN32;NDEBUG;_LIB;_WINDOWS;_EXTERNAL_RELEASE;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - X64 - - - MaxSpeed - false - WIN32;NDEBUG;_LIB;_WINDOWS;_Z3_COMMERCIAL;_EXTERNAL_RELEASE;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - false - MultiThreaded - Level3 - Full - _NO_OMP_;_AMD64_;WIN32;NDEBUG;_LIB;_WINDOWS;%(PreprocessorDefinitions) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 3e9f673cf..1f4e4942e 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -65,10 +65,14 @@ add_lib('fpa', ['core_tactics', 'bit_blaster', 'sat_tactic']) add_lib('smt_tactic', ['smt']) add_lib('sls_tactic', ['tactic', 'normal_forms', 'core_tactics', 'bv_tactics']) add_lib('smtlogic_tactics', ['arith_tactics', 'bv_tactics', 'nlsat_tactic', 'smt_tactic']) +# TODO: rewrite ufbv_strategy as a tactic and move to smtlogic_tactics. +add_lib('ufbv_strategy', ['assertion_set', 'normal_forms', 'macros', 'smt_tactic', 'rewriter']) # TODO: split muz_qe into muz, qe. Perhaps, we should also consider breaking muz into muz and pdr. add_lib('muz_qe', ['smt', 'sat', 'smt2parser']) add_lib('aig', ['cmd_context', 'assertion_set']) +add_lib('portfolio', ['smtlogic_tactics', 'ufbv_strategy', 'fpa', 'aig', 'muz_qe', 'sls_tactic', 'subpaving_tactic']) # TODO: delete SMT 1.0 frontend -add_lib('smtparser', ['api_headers', 'smt', 'spc']) +add_lib('smtparser', ['api_headers', 'smt', 'spc', 'portfolio']) +add_lib('api', ['portfolio', 'user_plugin', 'smtparser']) mk_vs_solution() diff --git a/src/api_headers/z3.h b/src/api/z3.h similarity index 100% rename from src/api_headers/z3.h rename to src/api/z3.h diff --git a/src/api_headers/z3_api.h b/src/api/z3_api.h similarity index 100% rename from src/api_headers/z3_api.h rename to src/api/z3_api.h diff --git a/lib/z3_internal.h b/src/api/z3_internal.h similarity index 100% rename from lib/z3_internal.h rename to src/api/z3_internal.h diff --git a/src/api_headers/z3_internal_types.h b/src/api/z3_internal_types.h similarity index 100% rename from src/api_headers/z3_internal_types.h rename to src/api/z3_internal_types.h diff --git a/lib/z3_logger.h b/src/api/z3_logger.h similarity index 100% rename from lib/z3_logger.h rename to src/api/z3_logger.h diff --git a/src/api_headers/z3_macros.h b/src/api/z3_macros.h similarity index 100% rename from src/api_headers/z3_macros.h rename to src/api/z3_macros.h diff --git a/lib/z3_poly.h b/src/api/z3_poly.h similarity index 100% rename from lib/z3_poly.h rename to src/api/z3_poly.h diff --git a/lib/z3_private.h b/src/api/z3_private.h similarity index 100% rename from lib/z3_private.h rename to src/api/z3_private.h diff --git a/lib/z3_replayer.cpp b/src/api/z3_replayer.cpp similarity index 100% rename from lib/z3_replayer.cpp rename to src/api/z3_replayer.cpp diff --git a/lib/z3_replayer.h b/src/api/z3_replayer.h similarity index 100% rename from lib/z3_replayer.h rename to src/api/z3_replayer.h diff --git a/lib/z3_solver.cpp b/src/api/z3_solver.cpp similarity index 100% rename from lib/z3_solver.cpp rename to src/api/z3_solver.cpp diff --git a/lib/z3_solver.h b/src/api/z3_solver.h similarity index 100% rename from lib/z3_solver.h rename to src/api/z3_solver.h diff --git a/src/api_headers/z3_v1.h b/src/api/z3_v1.h similarity index 100% rename from src/api_headers/z3_v1.h rename to src/api/z3_v1.h diff --git a/lib/value_compiler_extension.h b/src/dead/value_compiler_extension.h similarity index 100% rename from lib/value_compiler_extension.h rename to src/dead/value_compiler_extension.h diff --git a/lib/default_tactic.cpp b/src/portfolio/default_tactic.cpp similarity index 100% rename from lib/default_tactic.cpp rename to src/portfolio/default_tactic.cpp diff --git a/lib/default_tactic.h b/src/portfolio/default_tactic.h similarity index 100% rename from lib/default_tactic.h rename to src/portfolio/default_tactic.h diff --git a/lib/install_tactics.cpp b/src/portfolio/install_tactics.cpp similarity index 99% rename from lib/install_tactics.cpp rename to src/portfolio/install_tactics.cpp index 36de7be76..1d3a37961 100644 --- a/lib/install_tactics.cpp +++ b/src/portfolio/install_tactics.cpp @@ -27,7 +27,7 @@ Notes: #include"bit_blaster_tactic.h" #include"bv1_blaster_tactic.h" -#include"der.h" +#include"der_tactic.h" #include"aig_tactic.h" #include"smt_tactic.h" #include"sat_tactic.h" diff --git a/lib/install_tactics.h b/src/portfolio/install_tactics.h similarity index 100% rename from lib/install_tactics.h rename to src/portfolio/install_tactics.h diff --git a/lib/smt_strategic_solver.cpp b/src/portfolio/smt_strategic_solver.cpp similarity index 100% rename from lib/smt_strategic_solver.cpp rename to src/portfolio/smt_strategic_solver.cpp diff --git a/lib/smt_strategic_solver.h b/src/portfolio/smt_strategic_solver.h similarity index 100% rename from lib/smt_strategic_solver.h rename to src/portfolio/smt_strategic_solver.h diff --git a/lib/ctx_solver_simplify_tactic.cpp b/src/smt/ctx_solver_simplify_tactic.cpp similarity index 100% rename from lib/ctx_solver_simplify_tactic.cpp rename to src/smt/ctx_solver_simplify_tactic.cpp diff --git a/lib/ctx_solver_simplify_tactic.h b/src/smt/ctx_solver_simplify_tactic.h similarity index 100% rename from lib/ctx_solver_simplify_tactic.h rename to src/smt/ctx_solver_simplify_tactic.h diff --git a/lib/mk_database.sh b/src/smt/mk_database.sh similarity index 100% rename from lib/mk_database.sh rename to src/smt/mk_database.sh diff --git a/lib/ni_solver.cpp b/src/smt/ni_solver.cpp similarity index 100% rename from lib/ni_solver.cpp rename to src/smt/ni_solver.cpp diff --git a/lib/ni_solver.h b/src/smt/ni_solver.h similarity index 100% rename from lib/ni_solver.h rename to src/smt/ni_solver.h diff --git a/lib/ufbv_strategy.cpp b/src/ufbv_strategy/ufbv_strategy.cpp similarity index 99% rename from lib/ufbv_strategy.cpp rename to src/ufbv_strategy/ufbv_strategy.cpp index 9b6b41704..37b36c020 100644 --- a/lib/ufbv_strategy.cpp +++ b/src/ufbv_strategy/ufbv_strategy.cpp @@ -17,8 +17,9 @@ Notes: --*/ #include"assertion_set_rewriter.h" +#include"smt_solver_strategy.h" #include"nnf.h" -#include"der.h" +#include"der_strategy.h" #include"distribute_forall.h" #include"macro_finder.h" #include"arith_simplifier_plugin.h" diff --git a/lib/ufbv_strategy.h b/src/ufbv_strategy/ufbv_strategy.h similarity index 100% rename from lib/ufbv_strategy.h rename to src/ufbv_strategy/ufbv_strategy.h From 78b11ccd8eb4828adf511109e97e3e64088cfb15 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 21:50:58 -0700 Subject: [PATCH 28/54] checkpoint Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 13 ++-- scripts/mk_util.py | 64 +++++++++++++++---- src/{smtparser => api}/expr_pattern_match.cpp | 0 src/{smtparser => api}/expr_pattern_match.h | 0 src/{smtparser => api}/smtlib.cpp | 0 src/{smtparser => api}/smtlib.h | 0 src/{smtparser => api}/smtlib_solver.cpp | 0 src/{smtparser => api}/smtlib_solver.h | 0 src/{smtparser => api}/smtparser.cpp | 0 src/{smtparser => api}/smtparser.h | 0 {shell => src/dead}/simple_sat.cpp | 0 {shell => src/dead}/simple_sat.h | 0 {shell => src/shell}/datalog_frontend.cpp | 0 {shell => src/shell}/datalog_frontend.h | 0 {shell => src/shell}/dimacs_frontend.cpp | 0 {shell => src/shell}/dimacs_frontend.h | 0 {shell => src/shell}/main.cpp | 0 {shell => src/shell}/options.h | 0 {shell => src/shell}/resource.h | 0 {shell => src/shell}/smtlib_frontend.cpp | 0 {shell => src/shell}/smtlib_frontend.h | 0 {shell => src/shell}/z3_log_frontend.cpp | 0 {shell => src/shell}/z3_log_frontend.h | 0 23 files changed, 58 insertions(+), 19 deletions(-) rename src/{smtparser => api}/expr_pattern_match.cpp (100%) rename src/{smtparser => api}/expr_pattern_match.h (100%) rename src/{smtparser => api}/smtlib.cpp (100%) rename src/{smtparser => api}/smtlib.h (100%) rename src/{smtparser => api}/smtlib_solver.cpp (100%) rename src/{smtparser => api}/smtlib_solver.h (100%) rename src/{smtparser => api}/smtparser.cpp (100%) rename src/{smtparser => api}/smtparser.h (100%) rename {shell => src/dead}/simple_sat.cpp (100%) rename {shell => src/dead}/simple_sat.h (100%) rename {shell => src/shell}/datalog_frontend.cpp (100%) rename {shell => src/shell}/datalog_frontend.h (100%) rename {shell => src/shell}/dimacs_frontend.cpp (100%) rename {shell => src/shell}/dimacs_frontend.h (100%) rename {shell => src/shell}/main.cpp (100%) rename {shell => src/shell}/options.h (100%) rename {shell => src/shell}/resource.h (100%) rename {shell => src/shell}/smtlib_frontend.cpp (100%) rename {shell => src/shell}/smtlib_frontend.h (100%) rename {shell => src/shell}/z3_log_frontend.cpp (100%) rename {shell => src/shell}/z3_log_frontend.h (100%) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 1f4e4942e..059382be4 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -63,16 +63,17 @@ add_lib('bv_tactics', ['tactic']) add_lib('fuzzing', ['ast']) add_lib('fpa', ['core_tactics', 'bit_blaster', 'sat_tactic']) add_lib('smt_tactic', ['smt']) +add_lib('extra_cmds', ['cmd_context', 'subpaving_tactic', 'arith_tactics']) add_lib('sls_tactic', ['tactic', 'normal_forms', 'core_tactics', 'bv_tactics']) -add_lib('smtlogic_tactics', ['arith_tactics', 'bv_tactics', 'nlsat_tactic', 'smt_tactic']) -# TODO: rewrite ufbv_strategy as a tactic and move to smtlogic_tactics. -add_lib('ufbv_strategy', ['assertion_set', 'normal_forms', 'macros', 'smt_tactic', 'rewriter']) +add_lib('aig', ['cmd_context', 'assertion_set']) # TODO: split muz_qe into muz, qe. Perhaps, we should also consider breaking muz into muz and pdr. add_lib('muz_qe', ['smt', 'sat', 'smt2parser']) -add_lib('aig', ['cmd_context', 'assertion_set']) +add_lib('smtlogic_tactics', ['arith_tactics', 'bv_tactics', 'nlsat_tactic', 'smt_tactic', 'aig', 'muz_qe']) +# TODO: rewrite ufbv_strategy as a tactic and move to smtlogic_tactics. +add_lib('ufbv_strategy', ['assertion_set', 'normal_forms', 'macros', 'smt_tactic', 'rewriter']) add_lib('portfolio', ['smtlogic_tactics', 'ufbv_strategy', 'fpa', 'aig', 'muz_qe', 'sls_tactic', 'subpaving_tactic']) # TODO: delete SMT 1.0 frontend -add_lib('smtparser', ['api_headers', 'smt', 'spc', 'portfolio']) -add_lib('api', ['portfolio', 'user_plugin', 'smtparser']) +add_lib('api', ['portfolio', 'user_plugin']) +add_exe('shell', ['api', 'sat', 'extra_cmds']) mk_vs_solution() diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 658f266c2..9e6853795 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -41,8 +41,10 @@ Name2GUI = {} def mk_gui_str(id): return '4D2F40D8-E5F9-473B-B548-%012d' % id +MODULES = [] HEADERS = [] LIBS = [] +EXES = [] DEPS = {} class MKException(Exception): @@ -73,6 +75,17 @@ def module_src_dir(name): def module_build_dir(name): return '%s%s%s' % (BUILD_DIR, os.sep, name) +LIB_KIND = 0 +EXE_KIND = 1 + +def get_extension(kind): + if kind == LIB_KIND: + return 'lib' + elif kind == EXE_KIND: + return 'exe' + else: + raise MKException('unknown kind %s' % kind) + def vs_header(f): f.write( '\n' @@ -98,11 +111,16 @@ def vs_project_configurations(f, name): Name2GUI[name] = GUI GUI = GUI + 1 -def vs_lib_configurations(f, name): +def vs_configurations(f, name, kind): for mode in MODES: for platform in PLATFORMS: f.write(' \n' % (mode, platform)) - f.write(' StaticLibrary\n') + if kind == LIB_KIND: + f.write(' StaticLibrary\n') + elif kind == EXE_KIND: + f.write(' Application\n') + else: + raise MKException("unknown kind %s" % kind) f.write(' Unicode\n') f.write(' false\n') f.write(' \n') @@ -125,10 +143,10 @@ def vs_lib_configurations(f, name): for mode in MODES: for platform in PLATFORMS: f.write(' %s\n' % (mode, platform, name)) - f.write(' .lib\n' % (mode, platform)) + f.write(' .%s\n' % (mode, platform, get_extension(kind))) f.write(' \n') -def vs_compilation_options(f, name, deps): +def vs_compilation_options(f, name, deps, kind): for mode in MODES: for platform in PLATFORMS: f.write(' \n' % (mode, platform)) @@ -163,12 +181,21 @@ def vs_compilation_options(f, name, deps): f.write('\n') f.write(' \n') f.write(' \n') - f.write(' $(OutDir)%s.lib\n' % name) + f.write(' $(OutDir)%s.%s\n' % (name, get_extension(kind))) f.write(' %(AdditionalLibraryDirectories)\n') if is_x64(platform): f.write(' MachineX64\n') else: f.write(' MachineX86\n') + if kind == EXE_KIND: + f.write('kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib') + for dep in deps: + f.write(';$(OutDir)%s.lib' % dep) + # if is_x64(platform): + # f.write(';..\%s\%s\%s\%s.lib' % (dep, platform, mode, dep)) + # else: + # f.write(';..\%s\%s\%s.lib' % (dep, mode, dep)) + f.write(';%(AdditionalDependencies)\n') f.write(' \n') f.write(' \n') @@ -187,7 +214,7 @@ def vs_footer(f): '\n') def check_new_component(name): - if (name in HEADERS) or (name in LIBS): + if (name in HEADERS) or (name in LIBS) or (name in EXES): raise MKException("Component '%s' was already defined" % name) # Add a directory containing only .h files @@ -211,9 +238,15 @@ def find_all_deps(name, deps): raise MKException("Unknown component '%s' at '%s'." % (dep, name)) return new_deps -def add_lib(name, deps): +def add_component(name, deps, kind): check_new_component(name) - LIBS.append(name) + if kind == LIB_KIND: + LIBS.append(name) + elif kind == EXE_KIND: + EXES.append(name) + else: + raise MKException("unknown kind %s" % kind) + MODULES.append(name) deps = find_all_deps(name, deps) DEPS[name] = deps print "Dependencies for '%s': %s" % (name, deps) @@ -224,11 +257,17 @@ def add_lib(name, deps): vs_proj = open('%s%s%s.vcxproj' % (module_dir, os.sep, name), 'w') vs_header(vs_proj) vs_project_configurations(vs_proj, name) - vs_lib_configurations(vs_proj, name) - vs_compilation_options(vs_proj, name, deps) + vs_configurations(vs_proj, name, kind) + vs_compilation_options(vs_proj, name, deps, kind) add_vs_cpps(vs_proj, name) vs_footer(vs_proj) +def add_lib(name, deps): + add_component(name, deps, LIB_KIND) + +def add_exe(name, deps): + add_component(name, deps, EXE_KIND) + def is_lib(name): # Add DLL dependency return name in LIBS @@ -238,8 +277,7 @@ def mk_vs_solution(): sln.write('\n') sln.write("Microsoft Visual Studio Solution File, Format Version 11.00\n") sln.write("# Visual Studio 2010\n") - modules = LIBS - for module in modules: + for module in MODULES: gui = Name2GUI[module] deps = DEPS[module] sln.write('Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "%s", "%s%s%s.vcxproj", "{%s}"\n' % @@ -259,7 +297,7 @@ def mk_vs_solution(): sln.write(' %s|%s = %s|%s\n' % (mode, platform, mode, platform)) sln.write('EndGlobalSection\n') sln.write('GlobalSection(ProjectConfigurationPlatforms) = postSolution\n') - for module in modules: + for module in MODULES: gui = Name2GUI[module] for mode in MODES: for platform in PLATFORMS: diff --git a/src/smtparser/expr_pattern_match.cpp b/src/api/expr_pattern_match.cpp similarity index 100% rename from src/smtparser/expr_pattern_match.cpp rename to src/api/expr_pattern_match.cpp diff --git a/src/smtparser/expr_pattern_match.h b/src/api/expr_pattern_match.h similarity index 100% rename from src/smtparser/expr_pattern_match.h rename to src/api/expr_pattern_match.h diff --git a/src/smtparser/smtlib.cpp b/src/api/smtlib.cpp similarity index 100% rename from src/smtparser/smtlib.cpp rename to src/api/smtlib.cpp diff --git a/src/smtparser/smtlib.h b/src/api/smtlib.h similarity index 100% rename from src/smtparser/smtlib.h rename to src/api/smtlib.h diff --git a/src/smtparser/smtlib_solver.cpp b/src/api/smtlib_solver.cpp similarity index 100% rename from src/smtparser/smtlib_solver.cpp rename to src/api/smtlib_solver.cpp diff --git a/src/smtparser/smtlib_solver.h b/src/api/smtlib_solver.h similarity index 100% rename from src/smtparser/smtlib_solver.h rename to src/api/smtlib_solver.h diff --git a/src/smtparser/smtparser.cpp b/src/api/smtparser.cpp similarity index 100% rename from src/smtparser/smtparser.cpp rename to src/api/smtparser.cpp diff --git a/src/smtparser/smtparser.h b/src/api/smtparser.h similarity index 100% rename from src/smtparser/smtparser.h rename to src/api/smtparser.h diff --git a/shell/simple_sat.cpp b/src/dead/simple_sat.cpp similarity index 100% rename from shell/simple_sat.cpp rename to src/dead/simple_sat.cpp diff --git a/shell/simple_sat.h b/src/dead/simple_sat.h similarity index 100% rename from shell/simple_sat.h rename to src/dead/simple_sat.h diff --git a/shell/datalog_frontend.cpp b/src/shell/datalog_frontend.cpp similarity index 100% rename from shell/datalog_frontend.cpp rename to src/shell/datalog_frontend.cpp diff --git a/shell/datalog_frontend.h b/src/shell/datalog_frontend.h similarity index 100% rename from shell/datalog_frontend.h rename to src/shell/datalog_frontend.h diff --git a/shell/dimacs_frontend.cpp b/src/shell/dimacs_frontend.cpp similarity index 100% rename from shell/dimacs_frontend.cpp rename to src/shell/dimacs_frontend.cpp diff --git a/shell/dimacs_frontend.h b/src/shell/dimacs_frontend.h similarity index 100% rename from shell/dimacs_frontend.h rename to src/shell/dimacs_frontend.h diff --git a/shell/main.cpp b/src/shell/main.cpp similarity index 100% rename from shell/main.cpp rename to src/shell/main.cpp diff --git a/shell/options.h b/src/shell/options.h similarity index 100% rename from shell/options.h rename to src/shell/options.h diff --git a/shell/resource.h b/src/shell/resource.h similarity index 100% rename from shell/resource.h rename to src/shell/resource.h diff --git a/shell/smtlib_frontend.cpp b/src/shell/smtlib_frontend.cpp similarity index 100% rename from shell/smtlib_frontend.cpp rename to src/shell/smtlib_frontend.cpp diff --git a/shell/smtlib_frontend.h b/src/shell/smtlib_frontend.h similarity index 100% rename from shell/smtlib_frontend.h rename to src/shell/smtlib_frontend.h diff --git a/shell/z3_log_frontend.cpp b/src/shell/z3_log_frontend.cpp similarity index 100% rename from shell/z3_log_frontend.cpp rename to src/shell/z3_log_frontend.cpp diff --git a/shell/z3_log_frontend.h b/src/shell/z3_log_frontend.h similarity index 100% rename from shell/z3_log_frontend.h rename to src/shell/z3_log_frontend.h From 63154b99c50b054f107492eadb3ccb223b66b183 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 21:52:11 -0700 Subject: [PATCH 29/54] checkpoint Signed-off-by: Leonardo de Moura --- shell/shell.rc | 102 ------- shell/shell.vcxproj | 641 -------------------------------------------- 2 files changed, 743 deletions(-) delete mode 100644 shell/shell.rc delete mode 100644 shell/shell.vcxproj diff --git a/shell/shell.rc b/shell/shell.rc deleted file mode 100644 index ce6ee41f9..000000000 --- a/shell/shell.rc +++ /dev/null @@ -1,102 +0,0 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 4,2,0,0 - PRODUCTVERSION 4,2,0,0 - FILEFLAGSMASK 0x17L -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "CompanyName", "Microsoft" - VALUE "FileDescription", "Z3 shell" - VALUE "FileVersion" "4,2,0,0" - VALUE "InternalName", "Z3 shell" - VALUE "LegalCopyright", "(c) Microsoft Corporation. All rights reserved." - VALUE "OriginalFilename", "z3.exe" - VALUE "ProductName", "Z3" - VALUE "ProductVersion", "4,2,0,0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/shell/shell.vcxproj b/shell/shell.vcxproj deleted file mode 100644 index f39027d06..000000000 --- a/shell/shell.vcxproj +++ /dev/null @@ -1,641 +0,0 @@ - - - - - commercial - Win32 - - - commercial - x64 - - - debug_opt - Win32 - - - debug_opt - x64 - - - Debug - Win32 - - - Debug - x64 - - - external - Win32 - - - external - x64 - - - release_mt - Win32 - - - release_mt - x64 - - - Release - Win32 - - - Release - x64 - - - Trace - Win32 - - - Trace - x64 - - - - {BF547582-F16D-4BE5-B9AB-8B6A9364B447} - shell - Win32Proj - - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(Configuration)\ - false - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - false - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - z3 - - - - Disabled - ..\lib;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;Z3DEBUG;_CONSOLE;_TRACE;_WINDOWS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - - - Level3 - EditAndContinue - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - %(DelayLoadDLLs) - true - Console - 8388608 - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - X64 - - - Disabled - ..\lib;%(AdditionalIncludeDirectories) - WIN32;Z3DEBUG;_DEBUG;_CONSOLE;_TRACE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - MachineX64 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;ASYNC_COMMANDS;%(PreprocessorDefinitions) - MultiThreadedDLL - true - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 33554432 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - MachineX64 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - X64 - - - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - MachineX64 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;Z3DEBUG;NDEBUG;_CONSOLE;_WINDOWS;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - X64 - - - ..\lib;%(AdditionalIncludeDirectories) - WIN32;Z3DEBUG;_CONSOLE;_WINDOWS;_DEBUG;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - MachineX64 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_EXTERNAL_RELEASE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_Z3_COMMERCIAL;_EXTERNAL_RELEASE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - false - - - MachineX86 - $(OutDir)z3shell.lib - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - _AMD64_;WIN32;NDEBUG;_CONSOLE;_WINDOWS;_EXTERNAL_RELEASE;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - MachineX64 - $(OutDir)z3shell.lib - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_Z3_COMMERCIAL;_EXTERNAL_RELEASE;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - psapi.lib;%(AdditionalDependencies) - $(OutDir)z3.exe - true - Console - 8388608 - true - true - MachineX64 - $(OutDir)z3shell.lib - - - - - - - - - - - - - - - - - - - - - {4a7e5a93-19d8-4382-8950-fb2edec7a76e} - false - - - - - - \ No newline at end of file From 142bf71b35f4835f8ad1c370dceb56bbee34a75e Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 22:04:19 -0700 Subject: [PATCH 30/54] checkpoint Signed-off-by: Leonardo de Moura --- src/api/api_solver.cpp | 1 + src/cmd_context/solver.cpp | 161 -------------------- src/cmd_context/solver.h | 2 - src/old_params/pattern_inference_params.cpp | 37 +++++ src/portfolio/smt_strategic_solver.cpp | 1 + 5 files changed, 39 insertions(+), 163 deletions(-) create mode 100644 src/old_params/pattern_inference_params.cpp diff --git a/src/api/api_solver.cpp b/src/api/api_solver.cpp index 1a4a2ef45..71a24c534 100644 --- a/src/api/api_solver.cpp +++ b/src/api/api_solver.cpp @@ -29,6 +29,7 @@ Revision History: #include"cancel_eh.h" #include"scoped_timer.h" #include"smt_strategic_solver.h" +#include"default_solver.h" extern "C" { diff --git a/src/cmd_context/solver.cpp b/src/cmd_context/solver.cpp index 12f1b76f3..59118c5ca 100644 --- a/src/cmd_context/solver.cpp +++ b/src/cmd_context/solver.cpp @@ -17,7 +17,6 @@ Notes: --*/ #include"solver.h" -// #include"smt_solver.h" unsigned solver::get_num_assertions() const { NOT_IMPLEMENTED_YET(); @@ -33,163 +32,3 @@ void solver::display(std::ostream & out) const { out << "(solver)"; } -#if 0 -class default_solver : public solver { - front_end_params * m_params; - smt::solver * m_context; -public: - default_solver():m_params(0), m_context(0) {} - - virtual ~default_solver() { - if (m_context != 0) - dealloc(m_context); - } - - virtual void set_front_end_params(front_end_params & p) { - m_params = &p; - } - - virtual void updt_params(params_ref const & p) { - if (m_context == 0) - return; - m_context->updt_params(p); - } - - virtual void collect_param_descrs(param_descrs & r) { - if (m_context == 0) { - ast_manager m; - m.register_decl_plugins(); - front_end_params p; - smt::solver s(m, p); - s.collect_param_descrs(r); - } - else { - m_context->collect_param_descrs(r); - } - } - - virtual void init(ast_manager & m, symbol const & logic) { - SASSERT(m_params); - reset(); - #pragma omp critical (solver) - { - m_context = alloc(smt::solver, m, *m_params); - } - if (logic != symbol::null) - m_context->set_logic(logic); - } - - virtual void collect_statistics(statistics & st) const { - if (m_context == 0) { - return; - } - else { - m_context->collect_statistics(st); - } - } - - virtual void reset() { - if (m_context != 0) { - #pragma omp critical (solver) - { - dealloc(m_context); - m_context = 0; - } - } - } - - virtual void assert_expr(expr * t) { - SASSERT(m_context); - m_context->assert_expr(t); - } - - virtual void push() { - SASSERT(m_context); - m_context->push(); - } - - virtual void pop(unsigned n) { - SASSERT(m_context); - m_context->pop(n); - } - - virtual unsigned get_scope_level() const { - if (m_context) - return m_context->get_scope_level(); - else - return 0; - } - - virtual lbool check_sat(unsigned num_assumptions, expr * const * assumptions) { - SASSERT(m_context); - return m_context->check(num_assumptions, assumptions); - } - - virtual void get_unsat_core(ptr_vector & r) { - SASSERT(m_context); - unsigned sz = m_context->get_unsat_core_size(); - for (unsigned i = 0; i < sz; i++) - r.push_back(m_context->get_unsat_core_expr(i)); - } - - virtual void get_model(model_ref & m) { - SASSERT(m_context); - m_context->get_model(m); - } - - virtual proof * get_proof() { - SASSERT(m_context); - return m_context->get_proof(); - } - - virtual std::string reason_unknown() const { - SASSERT(m_context); - return m_context->last_failure_as_string(); - } - - virtual void get_labels(svector & r) { - SASSERT(m_context); - buffer tmp; - m_context->get_relevant_labels(0, tmp); - r.append(tmp.size(), tmp.c_ptr()); - } - - virtual void set_cancel(bool f) { - #pragma omp critical (solver) - { - if (m_context) - m_context->set_cancel(f); - } - } - - virtual void set_progress_callback(progress_callback * callback) { - SASSERT(m_context); - m_context->set_progress_callback(callback); - } - - virtual unsigned get_num_assertions() const { - if (m_context) - return m_context->size(); - else - return 0; - } - - virtual expr * get_assertion(unsigned idx) const { - SASSERT(m_context); - SASSERT(idx < get_num_assertions()); - return m_context->get_formulas()[idx]; - } - - virtual void display(std::ostream & out) const { - if (m_context) - m_context->display(out); - else - out << "(solver)"; - } - -}; - -solver * mk_default_solver() { - return alloc(default_solver); -} -#endif diff --git a/src/cmd_context/solver.h b/src/cmd_context/solver.h index c7077a0a2..373f878bb 100644 --- a/src/cmd_context/solver.h +++ b/src/cmd_context/solver.h @@ -58,6 +58,4 @@ public: virtual void display(std::ostream & out) const; }; -solver * mk_default_solver(); - #endif diff --git a/src/old_params/pattern_inference_params.cpp b/src/old_params/pattern_inference_params.cpp new file mode 100644 index 000000000..38fc24dca --- /dev/null +++ b/src/old_params/pattern_inference_params.cpp @@ -0,0 +1,37 @@ +/*++ +Copyright (c) 2006 Microsoft Corporation + +Module Name: + + pattern_inference_params.cpp + +Abstract: + + + +Author: + + Leonardo de Moura (leonardo) 2008-03-24. + +Revision History: + +--*/ +#include"pattern_inference_params.h" + +void pattern_inference_params::register_params(ini_params & p) { + p.register_unsigned_param("PI_MAX_MULTI_PATTERNS", m_pi_max_multi_patterns, + "when patterns are not provided, the prover uses a heuristic to infer them. This option sets the threshold on the number of extra multi-patterns that can be created. By default, the prover creates at most one multi-pattern when there is no unary pattern"); + p.register_bool_param("PI_BLOCK_LOOOP_PATTERNS", m_pi_block_loop_patterns, + "block looping patterns during pattern inference"); + p.register_int_param("PI_ARITH", 0, 2, reinterpret_cast(m_pi_arith), + "0 - do not infer patterns with arithmetic terms, 1 - use patterns with arithmetic terms if there is no other pattern, 2 - always use patterns with arithmetic terms."); + p.register_bool_param("PI_USE_DATABASE", m_pi_use_database); + p.register_unsigned_param("PI_ARITH_WEIGHT", m_pi_arith_weight, "default weight for quantifiers where the only available pattern has nested arithmetic terms."); + p.register_unsigned_param("PI_NON_NESTED_ARITH_WEIGHT", m_pi_non_nested_arith_weight, "default weight for quantifiers where the only available pattern has non nested arithmetic terms."); + p.register_bool_param("PI_PULL_QUANTIFIERS", m_pi_pull_quantifiers, "pull nested quantifiers, if no pattern was found."); + p.register_int_param("PI_NOPAT_WEIGHT", m_pi_nopat_weight, "set weight of quantifiers without patterns, if negative the weight is not changed."); + p.register_bool_param("PI_AVOID_SKOLEMS", m_pi_avoid_skolems); + p.register_bool_param("PI_WARNINGS", m_pi_warnings, "enable/disable warning messages in the pattern inference module."); +} + + diff --git a/src/portfolio/smt_strategic_solver.cpp b/src/portfolio/smt_strategic_solver.cpp index 7776a95c2..00022368d 100644 --- a/src/portfolio/smt_strategic_solver.cpp +++ b/src/portfolio/smt_strategic_solver.cpp @@ -35,6 +35,7 @@ Notes: #include"ufbv_strategy.h" #include"st2tactic.h" #include"qffpa_tactic.h" +#include"default_solver.h" #define MK_ST2TACTIC_FACTORY(NAME, ST) \ class NAME : public tactic_factory { \ From 9359ab7ce534587367a8f13364e56291e65be4db Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 22:16:58 -0700 Subject: [PATCH 31/54] checkpoint Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 2 ++ src/{dead => array_property}/array_property_expander.cpp | 0 src/{dead => array_property}/array_property_expander.h | 0 src/{dead => array_property}/array_property_recognizer.cpp | 0 src/{dead => array_property}/array_property_recognizer.h | 0 {test => src/dead/test}/ackermanize.cpp | 0 {test => src/dead/test}/core_theory.cpp | 0 {test => src/dead/test}/dimacs.cpp | 0 {test => src/dead/test}/distinct.cpp | 0 {test => src/dead/test}/fingerprint.cpp | 0 {test => src/dead/test}/gate.cpp | 0 {test => src/dead/test}/interval_arithmetic.cpp | 0 {test => src/dead/test}/relevancy.cpp | 0 {test => src/dead/test}/sat.cpp | 0 {test => src/dead/test}/simplex_polynomial.cpp | 0 {test => src/dead/test}/template_models.cpp | 0 {test => src/dead/test}/th_propagation.cpp | 0 {test => src/dead/test}/trail.cpp | 0 {test => src/dead/test}/watch_list.cpp | 0 {test => src/test}/algebraic.cpp | 0 {test => src/test}/api.cpp | 0 {test => src/test}/api_bug.cpp | 0 {test => src/test}/arith_rewriter.cpp | 0 {test => src/test}/arith_simplifier_plugin.cpp | 0 {test => src/test}/array_property_expander.cpp | 0 {test => src/test}/ast.cpp | 0 {test => src/test}/ast_pp.cpp | 0 {test => src/test}/ast_smt_pp.cpp | 0 {test => src/test}/bit_blaster.cpp | 0 {test => src/test}/bit_vector.cpp | 0 {test => src/test}/bits.cpp | 0 {test => src/test}/buffer.cpp | 0 {test => src/test}/bv_simplifier_plugin.cpp | 0 {test => src/test}/chashtable.cpp | 0 {test => src/test}/check_assumptions.cpp | 0 {test => src/test}/datalog_parser.cpp | 0 {test => src/test}/diff_logic.cpp | 0 {test => src/test}/dl_context.cpp | 0 {test => src/test}/dl_product_relation.cpp | 0 {test => src/test}/dl_query.cpp | 0 {test => src/test}/dl_relation.cpp | 0 {test => src/test}/dl_rule_set.cpp | 0 {test => src/test}/dl_smt_relation.cpp | 0 {test => src/test}/dl_table.cpp | 0 {test => src/test}/dl_util.cpp | 0 {test => src/test}/escaped.cpp | 0 {test => src/test}/ex.cpp | 0 {test => src/test}/expr_context_simplifier.cpp | 0 {test => src/test}/expr_delta.cpp | 0 {test => src/test}/expr_pattern_match.cpp | 0 {test => src/test}/expr_rand.cpp | 0 {test => src/test}/ext_numeral.cpp | 0 {test => src/test}/f2n.cpp | 0 {test => src/test}/factor_rewriter.cpp | 0 {test => src/test}/for_each_file.cpp | 0 {test => src/test}/for_each_file.h | 0 {test => src/test}/fvi.cpp | 0 {test => src/test}/get_implied_equalities.cpp | 0 {test => src/test}/grobner.cpp | 0 {test => src/test}/hashtable.cpp | 0 {test => src/test}/heap.cpp | 0 {test => src/test}/horn_subsume_model_converter.cpp | 0 {test => src/test}/hwf.cpp | 0 {test => src/test}/im_float_config.h | 0 {test => src/test}/imdd.cpp | 0 {test => src/test}/inf_rational.cpp | 0 {test => src/test}/ini_file.cpp | 0 {test => src/test}/interval.cpp | 0 {test => src/test}/interval_skip_list.cpp | 0 {test => src/test}/list.cpp | 0 {test => src/test}/main.cpp | 0 {test => src/test}/map.cpp | 0 {test => src/test}/matcher.cpp | 0 {test => src/test}/memory.cpp | 0 {test => src/test}/model2expr.cpp | 0 {test => src/test}/model_retrieval.cpp | 0 {test => src/test}/mpbq.cpp | 0 {test => src/test}/mpf.cpp | 0 {test => src/test}/mpff.cpp | 0 {test => src/test}/mpfx.cpp | 0 {test => src/test}/mpq.cpp | 0 {test => src/test}/mpz.cpp | 0 {test => src/test}/nlarith_util.cpp | 0 {test => src/test}/nlsat.cpp | 0 {test => src/test}/no_overflow.cpp | 0 {test => src/test}/object_allocator.cpp | 0 {test => src/test}/old_interval.cpp | 0 {test => src/test}/optional.cpp | 0 {test => src/test}/par_dll.cpp | 0 {test => src/test}/parallel.cpp | 0 {test => src/test}/parray.cpp | 0 {test => src/test}/permutation.cpp | 0 {test => src/test}/polynomial.cpp | 0 {test => src/test}/polynomial_factorization.cpp | 0 {test => src/test}/prime_generator.cpp | 0 {test => src/test}/proof_checker.cpp | 0 {test => src/test}/qe_defs.cpp | 0 {test => src/test}/quant_elim.cpp | 0 {test => src/test}/quant_solve.cpp | 0 {test => src/test}/random.cpp | 0 {test => src/test}/rational.cpp | 0 {test => src/test}/region.cpp | 0 {test => src/test}/simple_parser.cpp | 0 {test => src/test}/simplifier.cpp | 0 {test => src/test}/small_object_allocator.cpp | 0 {test => src/test}/smt2print_parse.cpp | 0 {test => src/test}/smt_context.cpp | 0 {test => src/test}/smtparser.cpp | 0 {test => src/test}/splay_tree.cpp | 0 {test => src/test}/stack.cpp | 0 {test => src/test}/string_buffer.cpp | 0 {test => src/test}/substitution.cpp | 0 {test => src/test}/symbol.cpp | 0 {test => src/test}/symbol_table.cpp | 0 {test => src/test}/symmetry.cpp | 0 {test => src/test}/test_util.h | 0 {test => src/test}/theory_dl.cpp | 0 {test => src/test}/timeout.cpp | 0 {test => src/test}/total_order.cpp | 0 {test => src/test}/trigo.cpp | 0 {test => src/test}/uint_set.cpp | 0 {test => src/test}/upolynomial.cpp | 0 {test => src/test}/var_subst.cpp | 0 {test => src/test}/vector.cpp | 0 124 files changed, 2 insertions(+) rename src/{dead => array_property}/array_property_expander.cpp (100%) rename src/{dead => array_property}/array_property_expander.h (100%) rename src/{dead => array_property}/array_property_recognizer.cpp (100%) rename src/{dead => array_property}/array_property_recognizer.h (100%) rename {test => src/dead/test}/ackermanize.cpp (100%) rename {test => src/dead/test}/core_theory.cpp (100%) rename {test => src/dead/test}/dimacs.cpp (100%) rename {test => src/dead/test}/distinct.cpp (100%) rename {test => src/dead/test}/fingerprint.cpp (100%) rename {test => src/dead/test}/gate.cpp (100%) rename {test => src/dead/test}/interval_arithmetic.cpp (100%) rename {test => src/dead/test}/relevancy.cpp (100%) rename {test => src/dead/test}/sat.cpp (100%) rename {test => src/dead/test}/simplex_polynomial.cpp (100%) rename {test => src/dead/test}/template_models.cpp (100%) rename {test => src/dead/test}/th_propagation.cpp (100%) rename {test => src/dead/test}/trail.cpp (100%) rename {test => src/dead/test}/watch_list.cpp (100%) rename {test => src/test}/algebraic.cpp (100%) rename {test => src/test}/api.cpp (100%) rename {test => src/test}/api_bug.cpp (100%) rename {test => src/test}/arith_rewriter.cpp (100%) rename {test => src/test}/arith_simplifier_plugin.cpp (100%) rename {test => src/test}/array_property_expander.cpp (100%) rename {test => src/test}/ast.cpp (100%) rename {test => src/test}/ast_pp.cpp (100%) rename {test => src/test}/ast_smt_pp.cpp (100%) rename {test => src/test}/bit_blaster.cpp (100%) rename {test => src/test}/bit_vector.cpp (100%) rename {test => src/test}/bits.cpp (100%) rename {test => src/test}/buffer.cpp (100%) rename {test => src/test}/bv_simplifier_plugin.cpp (100%) rename {test => src/test}/chashtable.cpp (100%) rename {test => src/test}/check_assumptions.cpp (100%) rename {test => src/test}/datalog_parser.cpp (100%) rename {test => src/test}/diff_logic.cpp (100%) rename {test => src/test}/dl_context.cpp (100%) rename {test => src/test}/dl_product_relation.cpp (100%) rename {test => src/test}/dl_query.cpp (100%) rename {test => src/test}/dl_relation.cpp (100%) rename {test => src/test}/dl_rule_set.cpp (100%) rename {test => src/test}/dl_smt_relation.cpp (100%) rename {test => src/test}/dl_table.cpp (100%) rename {test => src/test}/dl_util.cpp (100%) rename {test => src/test}/escaped.cpp (100%) rename {test => src/test}/ex.cpp (100%) rename {test => src/test}/expr_context_simplifier.cpp (100%) rename {test => src/test}/expr_delta.cpp (100%) rename {test => src/test}/expr_pattern_match.cpp (100%) rename {test => src/test}/expr_rand.cpp (100%) rename {test => src/test}/ext_numeral.cpp (100%) rename {test => src/test}/f2n.cpp (100%) rename {test => src/test}/factor_rewriter.cpp (100%) rename {test => src/test}/for_each_file.cpp (100%) rename {test => src/test}/for_each_file.h (100%) rename {test => src/test}/fvi.cpp (100%) rename {test => src/test}/get_implied_equalities.cpp (100%) rename {test => src/test}/grobner.cpp (100%) rename {test => src/test}/hashtable.cpp (100%) rename {test => src/test}/heap.cpp (100%) rename {test => src/test}/horn_subsume_model_converter.cpp (100%) rename {test => src/test}/hwf.cpp (100%) rename {test => src/test}/im_float_config.h (100%) rename {test => src/test}/imdd.cpp (100%) rename {test => src/test}/inf_rational.cpp (100%) rename {test => src/test}/ini_file.cpp (100%) rename {test => src/test}/interval.cpp (100%) rename {test => src/test}/interval_skip_list.cpp (100%) rename {test => src/test}/list.cpp (100%) rename {test => src/test}/main.cpp (100%) rename {test => src/test}/map.cpp (100%) rename {test => src/test}/matcher.cpp (100%) rename {test => src/test}/memory.cpp (100%) rename {test => src/test}/model2expr.cpp (100%) rename {test => src/test}/model_retrieval.cpp (100%) rename {test => src/test}/mpbq.cpp (100%) rename {test => src/test}/mpf.cpp (100%) rename {test => src/test}/mpff.cpp (100%) rename {test => src/test}/mpfx.cpp (100%) rename {test => src/test}/mpq.cpp (100%) rename {test => src/test}/mpz.cpp (100%) rename {test => src/test}/nlarith_util.cpp (100%) rename {test => src/test}/nlsat.cpp (100%) rename {test => src/test}/no_overflow.cpp (100%) rename {test => src/test}/object_allocator.cpp (100%) rename {test => src/test}/old_interval.cpp (100%) rename {test => src/test}/optional.cpp (100%) rename {test => src/test}/par_dll.cpp (100%) rename {test => src/test}/parallel.cpp (100%) rename {test => src/test}/parray.cpp (100%) rename {test => src/test}/permutation.cpp (100%) rename {test => src/test}/polynomial.cpp (100%) rename {test => src/test}/polynomial_factorization.cpp (100%) rename {test => src/test}/prime_generator.cpp (100%) rename {test => src/test}/proof_checker.cpp (100%) rename {test => src/test}/qe_defs.cpp (100%) rename {test => src/test}/quant_elim.cpp (100%) rename {test => src/test}/quant_solve.cpp (100%) rename {test => src/test}/random.cpp (100%) rename {test => src/test}/rational.cpp (100%) rename {test => src/test}/region.cpp (100%) rename {test => src/test}/simple_parser.cpp (100%) rename {test => src/test}/simplifier.cpp (100%) rename {test => src/test}/small_object_allocator.cpp (100%) rename {test => src/test}/smt2print_parse.cpp (100%) rename {test => src/test}/smt_context.cpp (100%) rename {test => src/test}/smtparser.cpp (100%) rename {test => src/test}/splay_tree.cpp (100%) rename {test => src/test}/stack.cpp (100%) rename {test => src/test}/string_buffer.cpp (100%) rename {test => src/test}/substitution.cpp (100%) rename {test => src/test}/symbol.cpp (100%) rename {test => src/test}/symbol_table.cpp (100%) rename {test => src/test}/symmetry.cpp (100%) rename {test => src/test}/test_util.h (100%) rename {test => src/test}/theory_dl.cpp (100%) rename {test => src/test}/timeout.cpp (100%) rename {test => src/test}/total_order.cpp (100%) rename {test => src/test}/trigo.cpp (100%) rename {test => src/test}/uint_set.cpp (100%) rename {test => src/test}/upolynomial.cpp (100%) rename {test => src/test}/var_subst.cpp (100%) rename {test => src/test}/vector.cpp (100%) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 059382be4..4b6508f69 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -74,6 +74,8 @@ add_lib('ufbv_strategy', ['assertion_set', 'normal_forms', 'macros', 'smt_tactic add_lib('portfolio', ['smtlogic_tactics', 'ufbv_strategy', 'fpa', 'aig', 'muz_qe', 'sls_tactic', 'subpaving_tactic']) # TODO: delete SMT 1.0 frontend add_lib('api', ['portfolio', 'user_plugin']) +add_lib('array_property', ['ast', 'rewriter']) add_exe('shell', ['api', 'sat', 'extra_cmds']) +add_exe('test', ['api', 'fuzzing', 'array_property']) mk_vs_solution() diff --git a/src/dead/array_property_expander.cpp b/src/array_property/array_property_expander.cpp similarity index 100% rename from src/dead/array_property_expander.cpp rename to src/array_property/array_property_expander.cpp diff --git a/src/dead/array_property_expander.h b/src/array_property/array_property_expander.h similarity index 100% rename from src/dead/array_property_expander.h rename to src/array_property/array_property_expander.h diff --git a/src/dead/array_property_recognizer.cpp b/src/array_property/array_property_recognizer.cpp similarity index 100% rename from src/dead/array_property_recognizer.cpp rename to src/array_property/array_property_recognizer.cpp diff --git a/src/dead/array_property_recognizer.h b/src/array_property/array_property_recognizer.h similarity index 100% rename from src/dead/array_property_recognizer.h rename to src/array_property/array_property_recognizer.h diff --git a/test/ackermanize.cpp b/src/dead/test/ackermanize.cpp similarity index 100% rename from test/ackermanize.cpp rename to src/dead/test/ackermanize.cpp diff --git a/test/core_theory.cpp b/src/dead/test/core_theory.cpp similarity index 100% rename from test/core_theory.cpp rename to src/dead/test/core_theory.cpp diff --git a/test/dimacs.cpp b/src/dead/test/dimacs.cpp similarity index 100% rename from test/dimacs.cpp rename to src/dead/test/dimacs.cpp diff --git a/test/distinct.cpp b/src/dead/test/distinct.cpp similarity index 100% rename from test/distinct.cpp rename to src/dead/test/distinct.cpp diff --git a/test/fingerprint.cpp b/src/dead/test/fingerprint.cpp similarity index 100% rename from test/fingerprint.cpp rename to src/dead/test/fingerprint.cpp diff --git a/test/gate.cpp b/src/dead/test/gate.cpp similarity index 100% rename from test/gate.cpp rename to src/dead/test/gate.cpp diff --git a/test/interval_arithmetic.cpp b/src/dead/test/interval_arithmetic.cpp similarity index 100% rename from test/interval_arithmetic.cpp rename to src/dead/test/interval_arithmetic.cpp diff --git a/test/relevancy.cpp b/src/dead/test/relevancy.cpp similarity index 100% rename from test/relevancy.cpp rename to src/dead/test/relevancy.cpp diff --git a/test/sat.cpp b/src/dead/test/sat.cpp similarity index 100% rename from test/sat.cpp rename to src/dead/test/sat.cpp diff --git a/test/simplex_polynomial.cpp b/src/dead/test/simplex_polynomial.cpp similarity index 100% rename from test/simplex_polynomial.cpp rename to src/dead/test/simplex_polynomial.cpp diff --git a/test/template_models.cpp b/src/dead/test/template_models.cpp similarity index 100% rename from test/template_models.cpp rename to src/dead/test/template_models.cpp diff --git a/test/th_propagation.cpp b/src/dead/test/th_propagation.cpp similarity index 100% rename from test/th_propagation.cpp rename to src/dead/test/th_propagation.cpp diff --git a/test/trail.cpp b/src/dead/test/trail.cpp similarity index 100% rename from test/trail.cpp rename to src/dead/test/trail.cpp diff --git a/test/watch_list.cpp b/src/dead/test/watch_list.cpp similarity index 100% rename from test/watch_list.cpp rename to src/dead/test/watch_list.cpp diff --git a/test/algebraic.cpp b/src/test/algebraic.cpp similarity index 100% rename from test/algebraic.cpp rename to src/test/algebraic.cpp diff --git a/test/api.cpp b/src/test/api.cpp similarity index 100% rename from test/api.cpp rename to src/test/api.cpp diff --git a/test/api_bug.cpp b/src/test/api_bug.cpp similarity index 100% rename from test/api_bug.cpp rename to src/test/api_bug.cpp diff --git a/test/arith_rewriter.cpp b/src/test/arith_rewriter.cpp similarity index 100% rename from test/arith_rewriter.cpp rename to src/test/arith_rewriter.cpp diff --git a/test/arith_simplifier_plugin.cpp b/src/test/arith_simplifier_plugin.cpp similarity index 100% rename from test/arith_simplifier_plugin.cpp rename to src/test/arith_simplifier_plugin.cpp diff --git a/test/array_property_expander.cpp b/src/test/array_property_expander.cpp similarity index 100% rename from test/array_property_expander.cpp rename to src/test/array_property_expander.cpp diff --git a/test/ast.cpp b/src/test/ast.cpp similarity index 100% rename from test/ast.cpp rename to src/test/ast.cpp diff --git a/test/ast_pp.cpp b/src/test/ast_pp.cpp similarity index 100% rename from test/ast_pp.cpp rename to src/test/ast_pp.cpp diff --git a/test/ast_smt_pp.cpp b/src/test/ast_smt_pp.cpp similarity index 100% rename from test/ast_smt_pp.cpp rename to src/test/ast_smt_pp.cpp diff --git a/test/bit_blaster.cpp b/src/test/bit_blaster.cpp similarity index 100% rename from test/bit_blaster.cpp rename to src/test/bit_blaster.cpp diff --git a/test/bit_vector.cpp b/src/test/bit_vector.cpp similarity index 100% rename from test/bit_vector.cpp rename to src/test/bit_vector.cpp diff --git a/test/bits.cpp b/src/test/bits.cpp similarity index 100% rename from test/bits.cpp rename to src/test/bits.cpp diff --git a/test/buffer.cpp b/src/test/buffer.cpp similarity index 100% rename from test/buffer.cpp rename to src/test/buffer.cpp diff --git a/test/bv_simplifier_plugin.cpp b/src/test/bv_simplifier_plugin.cpp similarity index 100% rename from test/bv_simplifier_plugin.cpp rename to src/test/bv_simplifier_plugin.cpp diff --git a/test/chashtable.cpp b/src/test/chashtable.cpp similarity index 100% rename from test/chashtable.cpp rename to src/test/chashtable.cpp diff --git a/test/check_assumptions.cpp b/src/test/check_assumptions.cpp similarity index 100% rename from test/check_assumptions.cpp rename to src/test/check_assumptions.cpp diff --git a/test/datalog_parser.cpp b/src/test/datalog_parser.cpp similarity index 100% rename from test/datalog_parser.cpp rename to src/test/datalog_parser.cpp diff --git a/test/diff_logic.cpp b/src/test/diff_logic.cpp similarity index 100% rename from test/diff_logic.cpp rename to src/test/diff_logic.cpp diff --git a/test/dl_context.cpp b/src/test/dl_context.cpp similarity index 100% rename from test/dl_context.cpp rename to src/test/dl_context.cpp diff --git a/test/dl_product_relation.cpp b/src/test/dl_product_relation.cpp similarity index 100% rename from test/dl_product_relation.cpp rename to src/test/dl_product_relation.cpp diff --git a/test/dl_query.cpp b/src/test/dl_query.cpp similarity index 100% rename from test/dl_query.cpp rename to src/test/dl_query.cpp diff --git a/test/dl_relation.cpp b/src/test/dl_relation.cpp similarity index 100% rename from test/dl_relation.cpp rename to src/test/dl_relation.cpp diff --git a/test/dl_rule_set.cpp b/src/test/dl_rule_set.cpp similarity index 100% rename from test/dl_rule_set.cpp rename to src/test/dl_rule_set.cpp diff --git a/test/dl_smt_relation.cpp b/src/test/dl_smt_relation.cpp similarity index 100% rename from test/dl_smt_relation.cpp rename to src/test/dl_smt_relation.cpp diff --git a/test/dl_table.cpp b/src/test/dl_table.cpp similarity index 100% rename from test/dl_table.cpp rename to src/test/dl_table.cpp diff --git a/test/dl_util.cpp b/src/test/dl_util.cpp similarity index 100% rename from test/dl_util.cpp rename to src/test/dl_util.cpp diff --git a/test/escaped.cpp b/src/test/escaped.cpp similarity index 100% rename from test/escaped.cpp rename to src/test/escaped.cpp diff --git a/test/ex.cpp b/src/test/ex.cpp similarity index 100% rename from test/ex.cpp rename to src/test/ex.cpp diff --git a/test/expr_context_simplifier.cpp b/src/test/expr_context_simplifier.cpp similarity index 100% rename from test/expr_context_simplifier.cpp rename to src/test/expr_context_simplifier.cpp diff --git a/test/expr_delta.cpp b/src/test/expr_delta.cpp similarity index 100% rename from test/expr_delta.cpp rename to src/test/expr_delta.cpp diff --git a/test/expr_pattern_match.cpp b/src/test/expr_pattern_match.cpp similarity index 100% rename from test/expr_pattern_match.cpp rename to src/test/expr_pattern_match.cpp diff --git a/test/expr_rand.cpp b/src/test/expr_rand.cpp similarity index 100% rename from test/expr_rand.cpp rename to src/test/expr_rand.cpp diff --git a/test/ext_numeral.cpp b/src/test/ext_numeral.cpp similarity index 100% rename from test/ext_numeral.cpp rename to src/test/ext_numeral.cpp diff --git a/test/f2n.cpp b/src/test/f2n.cpp similarity index 100% rename from test/f2n.cpp rename to src/test/f2n.cpp diff --git a/test/factor_rewriter.cpp b/src/test/factor_rewriter.cpp similarity index 100% rename from test/factor_rewriter.cpp rename to src/test/factor_rewriter.cpp diff --git a/test/for_each_file.cpp b/src/test/for_each_file.cpp similarity index 100% rename from test/for_each_file.cpp rename to src/test/for_each_file.cpp diff --git a/test/for_each_file.h b/src/test/for_each_file.h similarity index 100% rename from test/for_each_file.h rename to src/test/for_each_file.h diff --git a/test/fvi.cpp b/src/test/fvi.cpp similarity index 100% rename from test/fvi.cpp rename to src/test/fvi.cpp diff --git a/test/get_implied_equalities.cpp b/src/test/get_implied_equalities.cpp similarity index 100% rename from test/get_implied_equalities.cpp rename to src/test/get_implied_equalities.cpp diff --git a/test/grobner.cpp b/src/test/grobner.cpp similarity index 100% rename from test/grobner.cpp rename to src/test/grobner.cpp diff --git a/test/hashtable.cpp b/src/test/hashtable.cpp similarity index 100% rename from test/hashtable.cpp rename to src/test/hashtable.cpp diff --git a/test/heap.cpp b/src/test/heap.cpp similarity index 100% rename from test/heap.cpp rename to src/test/heap.cpp diff --git a/test/horn_subsume_model_converter.cpp b/src/test/horn_subsume_model_converter.cpp similarity index 100% rename from test/horn_subsume_model_converter.cpp rename to src/test/horn_subsume_model_converter.cpp diff --git a/test/hwf.cpp b/src/test/hwf.cpp similarity index 100% rename from test/hwf.cpp rename to src/test/hwf.cpp diff --git a/test/im_float_config.h b/src/test/im_float_config.h similarity index 100% rename from test/im_float_config.h rename to src/test/im_float_config.h diff --git a/test/imdd.cpp b/src/test/imdd.cpp similarity index 100% rename from test/imdd.cpp rename to src/test/imdd.cpp diff --git a/test/inf_rational.cpp b/src/test/inf_rational.cpp similarity index 100% rename from test/inf_rational.cpp rename to src/test/inf_rational.cpp diff --git a/test/ini_file.cpp b/src/test/ini_file.cpp similarity index 100% rename from test/ini_file.cpp rename to src/test/ini_file.cpp diff --git a/test/interval.cpp b/src/test/interval.cpp similarity index 100% rename from test/interval.cpp rename to src/test/interval.cpp diff --git a/test/interval_skip_list.cpp b/src/test/interval_skip_list.cpp similarity index 100% rename from test/interval_skip_list.cpp rename to src/test/interval_skip_list.cpp diff --git a/test/list.cpp b/src/test/list.cpp similarity index 100% rename from test/list.cpp rename to src/test/list.cpp diff --git a/test/main.cpp b/src/test/main.cpp similarity index 100% rename from test/main.cpp rename to src/test/main.cpp diff --git a/test/map.cpp b/src/test/map.cpp similarity index 100% rename from test/map.cpp rename to src/test/map.cpp diff --git a/test/matcher.cpp b/src/test/matcher.cpp similarity index 100% rename from test/matcher.cpp rename to src/test/matcher.cpp diff --git a/test/memory.cpp b/src/test/memory.cpp similarity index 100% rename from test/memory.cpp rename to src/test/memory.cpp diff --git a/test/model2expr.cpp b/src/test/model2expr.cpp similarity index 100% rename from test/model2expr.cpp rename to src/test/model2expr.cpp diff --git a/test/model_retrieval.cpp b/src/test/model_retrieval.cpp similarity index 100% rename from test/model_retrieval.cpp rename to src/test/model_retrieval.cpp diff --git a/test/mpbq.cpp b/src/test/mpbq.cpp similarity index 100% rename from test/mpbq.cpp rename to src/test/mpbq.cpp diff --git a/test/mpf.cpp b/src/test/mpf.cpp similarity index 100% rename from test/mpf.cpp rename to src/test/mpf.cpp diff --git a/test/mpff.cpp b/src/test/mpff.cpp similarity index 100% rename from test/mpff.cpp rename to src/test/mpff.cpp diff --git a/test/mpfx.cpp b/src/test/mpfx.cpp similarity index 100% rename from test/mpfx.cpp rename to src/test/mpfx.cpp diff --git a/test/mpq.cpp b/src/test/mpq.cpp similarity index 100% rename from test/mpq.cpp rename to src/test/mpq.cpp diff --git a/test/mpz.cpp b/src/test/mpz.cpp similarity index 100% rename from test/mpz.cpp rename to src/test/mpz.cpp diff --git a/test/nlarith_util.cpp b/src/test/nlarith_util.cpp similarity index 100% rename from test/nlarith_util.cpp rename to src/test/nlarith_util.cpp diff --git a/test/nlsat.cpp b/src/test/nlsat.cpp similarity index 100% rename from test/nlsat.cpp rename to src/test/nlsat.cpp diff --git a/test/no_overflow.cpp b/src/test/no_overflow.cpp similarity index 100% rename from test/no_overflow.cpp rename to src/test/no_overflow.cpp diff --git a/test/object_allocator.cpp b/src/test/object_allocator.cpp similarity index 100% rename from test/object_allocator.cpp rename to src/test/object_allocator.cpp diff --git a/test/old_interval.cpp b/src/test/old_interval.cpp similarity index 100% rename from test/old_interval.cpp rename to src/test/old_interval.cpp diff --git a/test/optional.cpp b/src/test/optional.cpp similarity index 100% rename from test/optional.cpp rename to src/test/optional.cpp diff --git a/test/par_dll.cpp b/src/test/par_dll.cpp similarity index 100% rename from test/par_dll.cpp rename to src/test/par_dll.cpp diff --git a/test/parallel.cpp b/src/test/parallel.cpp similarity index 100% rename from test/parallel.cpp rename to src/test/parallel.cpp diff --git a/test/parray.cpp b/src/test/parray.cpp similarity index 100% rename from test/parray.cpp rename to src/test/parray.cpp diff --git a/test/permutation.cpp b/src/test/permutation.cpp similarity index 100% rename from test/permutation.cpp rename to src/test/permutation.cpp diff --git a/test/polynomial.cpp b/src/test/polynomial.cpp similarity index 100% rename from test/polynomial.cpp rename to src/test/polynomial.cpp diff --git a/test/polynomial_factorization.cpp b/src/test/polynomial_factorization.cpp similarity index 100% rename from test/polynomial_factorization.cpp rename to src/test/polynomial_factorization.cpp diff --git a/test/prime_generator.cpp b/src/test/prime_generator.cpp similarity index 100% rename from test/prime_generator.cpp rename to src/test/prime_generator.cpp diff --git a/test/proof_checker.cpp b/src/test/proof_checker.cpp similarity index 100% rename from test/proof_checker.cpp rename to src/test/proof_checker.cpp diff --git a/test/qe_defs.cpp b/src/test/qe_defs.cpp similarity index 100% rename from test/qe_defs.cpp rename to src/test/qe_defs.cpp diff --git a/test/quant_elim.cpp b/src/test/quant_elim.cpp similarity index 100% rename from test/quant_elim.cpp rename to src/test/quant_elim.cpp diff --git a/test/quant_solve.cpp b/src/test/quant_solve.cpp similarity index 100% rename from test/quant_solve.cpp rename to src/test/quant_solve.cpp diff --git a/test/random.cpp b/src/test/random.cpp similarity index 100% rename from test/random.cpp rename to src/test/random.cpp diff --git a/test/rational.cpp b/src/test/rational.cpp similarity index 100% rename from test/rational.cpp rename to src/test/rational.cpp diff --git a/test/region.cpp b/src/test/region.cpp similarity index 100% rename from test/region.cpp rename to src/test/region.cpp diff --git a/test/simple_parser.cpp b/src/test/simple_parser.cpp similarity index 100% rename from test/simple_parser.cpp rename to src/test/simple_parser.cpp diff --git a/test/simplifier.cpp b/src/test/simplifier.cpp similarity index 100% rename from test/simplifier.cpp rename to src/test/simplifier.cpp diff --git a/test/small_object_allocator.cpp b/src/test/small_object_allocator.cpp similarity index 100% rename from test/small_object_allocator.cpp rename to src/test/small_object_allocator.cpp diff --git a/test/smt2print_parse.cpp b/src/test/smt2print_parse.cpp similarity index 100% rename from test/smt2print_parse.cpp rename to src/test/smt2print_parse.cpp diff --git a/test/smt_context.cpp b/src/test/smt_context.cpp similarity index 100% rename from test/smt_context.cpp rename to src/test/smt_context.cpp diff --git a/test/smtparser.cpp b/src/test/smtparser.cpp similarity index 100% rename from test/smtparser.cpp rename to src/test/smtparser.cpp diff --git a/test/splay_tree.cpp b/src/test/splay_tree.cpp similarity index 100% rename from test/splay_tree.cpp rename to src/test/splay_tree.cpp diff --git a/test/stack.cpp b/src/test/stack.cpp similarity index 100% rename from test/stack.cpp rename to src/test/stack.cpp diff --git a/test/string_buffer.cpp b/src/test/string_buffer.cpp similarity index 100% rename from test/string_buffer.cpp rename to src/test/string_buffer.cpp diff --git a/test/substitution.cpp b/src/test/substitution.cpp similarity index 100% rename from test/substitution.cpp rename to src/test/substitution.cpp diff --git a/test/symbol.cpp b/src/test/symbol.cpp similarity index 100% rename from test/symbol.cpp rename to src/test/symbol.cpp diff --git a/test/symbol_table.cpp b/src/test/symbol_table.cpp similarity index 100% rename from test/symbol_table.cpp rename to src/test/symbol_table.cpp diff --git a/test/symmetry.cpp b/src/test/symmetry.cpp similarity index 100% rename from test/symmetry.cpp rename to src/test/symmetry.cpp diff --git a/test/test_util.h b/src/test/test_util.h similarity index 100% rename from test/test_util.h rename to src/test/test_util.h diff --git a/test/theory_dl.cpp b/src/test/theory_dl.cpp similarity index 100% rename from test/theory_dl.cpp rename to src/test/theory_dl.cpp diff --git a/test/timeout.cpp b/src/test/timeout.cpp similarity index 100% rename from test/timeout.cpp rename to src/test/timeout.cpp diff --git a/test/total_order.cpp b/src/test/total_order.cpp similarity index 100% rename from test/total_order.cpp rename to src/test/total_order.cpp diff --git a/test/trigo.cpp b/src/test/trigo.cpp similarity index 100% rename from test/trigo.cpp rename to src/test/trigo.cpp diff --git a/test/uint_set.cpp b/src/test/uint_set.cpp similarity index 100% rename from test/uint_set.cpp rename to src/test/uint_set.cpp diff --git a/test/upolynomial.cpp b/src/test/upolynomial.cpp similarity index 100% rename from test/upolynomial.cpp rename to src/test/upolynomial.cpp diff --git a/test/var_subst.cpp b/src/test/var_subst.cpp similarity index 100% rename from test/var_subst.cpp rename to src/test/var_subst.cpp diff --git a/test/vector.cpp b/src/test/vector.cpp similarity index 100% rename from test/vector.cpp rename to src/test/vector.cpp From 59fc7acc48ea84d7cb7114a63d6b8495bae2f5c9 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 22:21:33 -0700 Subject: [PATCH 32/54] checkpoint Signed-off-by: Leonardo de Moura --- test/buildpar.bat | 1 - test/test.vcxproj | 589 ---------------------------------------------- 2 files changed, 590 deletions(-) delete mode 100644 test/buildpar.bat delete mode 100644 test/test.vcxproj diff --git a/test/buildpar.bat b/test/buildpar.bat deleted file mode 100644 index 4e70ec32c..000000000 --- a/test/buildpar.bat +++ /dev/null @@ -1 +0,0 @@ -cl /I ..\lib /MDd /LD ..\test\par_dll.cpp /link ..\parallel_debug\z3lib.lib /lib ..\parallel_debug\msbig_rational.lib \ No newline at end of file diff --git a/test/test.vcxproj b/test/test.vcxproj deleted file mode 100644 index 8ba191476..000000000 --- a/test/test.vcxproj +++ /dev/null @@ -1,589 +0,0 @@ - - - - - commercial - Win32 - - - commercial - x64 - - - Debug - Win32 - - - Debug - x64 - - - external - Win32 - - - external - x64 - - - release_mt - Win32 - - - release_mt - x64 - - - Release - Win32 - - - Release - x64 - - - Trace - Win32 - - - Trace - x64 - - - - {21A10ECD-32E2-4F27-A03D-81D855A048CC} - test - Win32Proj - - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - - - Application - Unicode - true - - - Application - Unicode - true - - - Application - Unicode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - $(SolutionDir)$(Configuration)\ - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - $(Configuration)\ - false - false - $(SolutionDir)$(Platform)\$(Configuration)\ - $(SolutionDir)$(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - $(Platform)\$(Configuration)\ - false - false - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - AllRules.ruleset - - - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - Default - Neither - ..\lib;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;Z3DEBUG;_CONSOLE;_TRACE;_WINDOWS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - /debug /debugtype:cv,fixup %(AdditionalOptions) - $(OutDir)test.exe - true - Console - false - - - MachineX86 - - - - - X64 - - - Disabled - ..\lib;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;Z3DEBUG;_CONSOLE;_TRACE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - /debug /debugtype:cv,fixup %(AdditionalOptions) - $(OutDir)test.exe - true - Console - MachineX64 - - - - - MaxSpeed - AnySuitable - Speed - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - false - - - MachineX86 - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - MachineX64 - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_TRACE;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - false - - - MachineX86 - - - - - X64 - - - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_TRACE;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - MachineX64 - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreaded - - - Level3 - ProgramDatabase - - - true - Console - true - true - false - - - MachineX86 - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - false - - - MachineX86 - - - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - false - - - MachineX86 - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - _AMD64_;WIN32;NDEBUG;_CONSOLE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - MachineX64 - - - - - X64 - - - false - ..\lib;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_CONSOLE;_WINDOWS;_AMD64_;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {4a7e5a93-19d8-4382-8950-fb2edec7a76e} - false - - - - - - \ No newline at end of file From a33913979df463cca91be150ce8266742d2d055a Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sun, 21 Oct 2012 22:37:34 -0700 Subject: [PATCH 33/54] moved bit_blaster_tactic to bv_tactics Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 4 ++-- src/{bit_blaster => bv_tactics}/bit_blaster_tactic.cpp | 0 src/{bit_blaster => bv_tactics}/bit_blaster_tactic.h | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename src/{bit_blaster => bv_tactics}/bit_blaster_tactic.cpp (100%) rename src/{bit_blaster => bv_tactics}/bit_blaster_tactic.h (100%) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 4b6508f69..7376f0a3f 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -59,9 +59,9 @@ add_lib('sat_strategy', ['assertion_set', 'sat_tactic']) add_lib('arith_tactics', ['core_tactics', 'assertion_set', 'sat', 'sat_strategy']) add_lib('nlsat_tactic', ['nlsat', 'sat_tactic', 'arith_tactics']) add_lib('subpaving_tactic', ['core_tactics', 'subpaving']) -add_lib('bv_tactics', ['tactic']) +add_lib('bv_tactics', ['tactic', 'bit_blaster']) add_lib('fuzzing', ['ast']) -add_lib('fpa', ['core_tactics', 'bit_blaster', 'sat_tactic']) +add_lib('fpa', ['core_tactics', 'bv_tactics', 'sat_tactic']) add_lib('smt_tactic', ['smt']) add_lib('extra_cmds', ['cmd_context', 'subpaving_tactic', 'arith_tactics']) add_lib('sls_tactic', ['tactic', 'normal_forms', 'core_tactics', 'bv_tactics']) diff --git a/src/bit_blaster/bit_blaster_tactic.cpp b/src/bv_tactics/bit_blaster_tactic.cpp similarity index 100% rename from src/bit_blaster/bit_blaster_tactic.cpp rename to src/bv_tactics/bit_blaster_tactic.cpp diff --git a/src/bit_blaster/bit_blaster_tactic.h b/src/bv_tactics/bit_blaster_tactic.h similarity index 100% rename from src/bit_blaster/bit_blaster_tactic.h rename to src/bv_tactics/bit_blaster_tactic.h From e7e5d4c5bba202f1ca430dd8c413de6c755697ef Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Mon, 22 Oct 2012 06:01:04 -0700 Subject: [PATCH 34/54] missing files... Signed-off-by: Leonardo de Moura --- src/smt/default_solver.cpp | 179 +++++++++++++++++++++++++++++++++++++ src/smt/default_solver.h | 26 ++++++ 2 files changed, 205 insertions(+) create mode 100644 src/smt/default_solver.cpp create mode 100644 src/smt/default_solver.h diff --git a/src/smt/default_solver.cpp b/src/smt/default_solver.cpp new file mode 100644 index 000000000..16db274e9 --- /dev/null +++ b/src/smt/default_solver.cpp @@ -0,0 +1,179 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + default_solver.cpp + +Abstract: + + Wrapps smt::solver as a solver for cmd_context + +Author: + + Leonardo (leonardo) 2012-10-21 + +Notes: + +--*/ +#include"solver.h" +#include"smt_solver.h" + +class default_solver : public solver { + front_end_params * m_params; + smt::solver * m_context; +public: + default_solver():m_params(0), m_context(0) {} + + virtual ~default_solver() { + if (m_context != 0) + dealloc(m_context); + } + + virtual void set_front_end_params(front_end_params & p) { + m_params = &p; + } + + virtual void updt_params(params_ref const & p) { + if (m_context == 0) + return; + m_context->updt_params(p); + } + + virtual void collect_param_descrs(param_descrs & r) { + if (m_context == 0) { + ast_manager m; + m.register_decl_plugins(); + front_end_params p; + smt::solver s(m, p); + s.collect_param_descrs(r); + } + else { + m_context->collect_param_descrs(r); + } + } + + virtual void init(ast_manager & m, symbol const & logic) { + SASSERT(m_params); + reset(); + #pragma omp critical (solver) + { + m_context = alloc(smt::solver, m, *m_params); + } + if (logic != symbol::null) + m_context->set_logic(logic); + } + + virtual void collect_statistics(statistics & st) const { + if (m_context == 0) { + return; + } + else { + m_context->collect_statistics(st); + } + } + + virtual void reset() { + if (m_context != 0) { + #pragma omp critical (solver) + { + dealloc(m_context); + m_context = 0; + } + } + } + + virtual void assert_expr(expr * t) { + SASSERT(m_context); + m_context->assert_expr(t); + } + + virtual void push() { + SASSERT(m_context); + m_context->push(); + } + + virtual void pop(unsigned n) { + SASSERT(m_context); + m_context->pop(n); + } + + virtual unsigned get_scope_level() const { + if (m_context) + return m_context->get_scope_level(); + else + return 0; + } + + virtual lbool check_sat(unsigned num_assumptions, expr * const * assumptions) { + SASSERT(m_context); + return m_context->check(num_assumptions, assumptions); + } + + virtual void get_unsat_core(ptr_vector & r) { + SASSERT(m_context); + unsigned sz = m_context->get_unsat_core_size(); + for (unsigned i = 0; i < sz; i++) + r.push_back(m_context->get_unsat_core_expr(i)); + } + + virtual void get_model(model_ref & m) { + SASSERT(m_context); + m_context->get_model(m); + } + + virtual proof * get_proof() { + SASSERT(m_context); + return m_context->get_proof(); + } + + virtual std::string reason_unknown() const { + SASSERT(m_context); + return m_context->last_failure_as_string(); + } + + virtual void get_labels(svector & r) { + SASSERT(m_context); + buffer tmp; + m_context->get_relevant_labels(0, tmp); + r.append(tmp.size(), tmp.c_ptr()); + } + + virtual void set_cancel(bool f) { + #pragma omp critical (solver) + { + if (m_context) + m_context->set_cancel(f); + } + } + + virtual void set_progress_callback(progress_callback * callback) { + SASSERT(m_context); + m_context->set_progress_callback(callback); + } + + virtual unsigned get_num_assertions() const { + if (m_context) + return m_context->size(); + else + return 0; + } + + virtual expr * get_assertion(unsigned idx) const { + SASSERT(m_context); + SASSERT(idx < get_num_assertions()); + return m_context->get_formulas()[idx]; + } + + virtual void display(std::ostream & out) const { + if (m_context) + m_context->display(out); + else + out << "(solver)"; + } + +}; + +solver * mk_default_solver() { + return alloc(default_solver); +} diff --git a/src/smt/default_solver.h b/src/smt/default_solver.h new file mode 100644 index 000000000..170a55e56 --- /dev/null +++ b/src/smt/default_solver.h @@ -0,0 +1,26 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + default_solver.h + +Abstract: + + Wrapps smt::solver as a solver for cmd_context + +Author: + + Leonardo (leonardo) 2012-10-21 + +Notes: + +--*/ +#ifndef _DEFAULT_SOLVER_H_ +#define _DEFAULT_SOLVER_H_ + +class solver; + +solver * mk_default_solver(); + +#endif From efff6db567fdf2a25b3360e524bf9fc406ce90e8 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 12:12:59 -0700 Subject: [PATCH 35/54] checkpoint Signed-off-by: Leonardo de Moura --- scripts/dependencies.py | 85 ++++++ scripts/mk_exception.py | 12 + scripts/mk_make.py | 21 +- scripts/mk_util.py | 475 +++++++++++++----------------- scripts/mk_util_old.py | 308 +++++++++++++++++++ src/api/smtlib_solver.cpp | 1 - src/api/smtparser.cpp | 3 - src/muz_qe/pdr_farkas_learner.cpp | 1 - src/muz_qe/pdr_farkas_learner.h | 1 - src/sat/sat_clause.cpp | 2 +- src/smt/asserted_formulas.cpp | 1 - src/smt/asserted_formulas.h | 1 - src/{util => smt}/union_find.h | 0 src/{util => spc}/fvi.h | 0 src/{util => spc}/fvi_def.h | 0 src/test/api_bug.cpp | 4 +- src/test/par_dll.cpp | 2 +- src/test/parallel.cpp | 2 +- src/test/timeout.cpp | 2 +- src/util/hashtable.h | 2 +- src/util/instruction_count.cpp | 2 +- src/util/mpz.cpp | 11 +- src/util/nat_set.h | 2 +- src/util/util.cpp | 2 +- src/util/z3_omp.h | 2 +- 25 files changed, 636 insertions(+), 306 deletions(-) create mode 100644 scripts/dependencies.py create mode 100644 scripts/mk_exception.py create mode 100644 scripts/mk_util_old.py rename src/{util => smt}/union_find.h (100%) rename src/{util => spc}/fvi.h (100%) rename src/{util => spc}/fvi_def.h (100%) diff --git a/scripts/dependencies.py b/scripts/dependencies.py new file mode 100644 index 000000000..337d878ba --- /dev/null +++ b/scripts/dependencies.py @@ -0,0 +1,85 @@ +############################################ +# Copyright (c) 2012 Microsoft Corporation +# +# Scripts for extracting dependencies in +# C/C++ files +# +# Author: Leonardo de Moura (leonardo) +############################################ +import re +import os +import sets +from mk_exception import * + +# Return a list containing a file names included using '#include' in +# the given C/C++ file named fname. +def extract_c_includes(fname): + result = [] + # We look for well behaved #include directives + std_inc_pat = re.compile("[ \t]*#include[ \t]*\"(.*)\"[ \t]*") + system_inc_pat = re.compile("[ \t]*#include[ \t]*\<.*\>[ \t]*") + # We should generate and error for any occurrence of #include that does not match the previous pattern. + non_std_inc_pat = re.compile(".*#include.*") + + f = open(fname, 'r') + linenum = 1 + for line in f: + m1 = std_inc_pat.match(line) + if m1: + result.append(m1.group(1)) + elif not system_inc_pat.match(line) and non_std_inc_pat.match(line): + raise MKException("Invalid #include directive at '%s':%s" % (fname, line)) + linenum = linenum + 1 + return result + +# Return src_dir/path/fname +def mk_full_fname(src_dir, path, fname): + # return '%s%s%s%s%s' % (src_dir, os.sep, path, os.sep, fname) + return '%s/%s/%s' % (src_dir, path, fname) + +# Return True if the file src_dir/path/fname exists. +# Otherwise return False. +def has_file(src_dir, path, fname): + try: + with open(mk_full_fname(src_dir, path, fname)) as f: pass + return True + except IOError as e: + return False + +# Search a file named fname at: +# src_dir/path +# for each p in search_path +# src_dir/p +def find_file(src_dir, path, search_path, fname): + if has_file(src_dir, path, fname): + return mk_full_fname(src_dir, path, fname) + for path in search_path: + if has_file(src_dir, path, fname): + return mk_full_fname(src_dir, path, fname) + return None + +# Extract the dependency list of the C/C++ file fname (basename) +# located at path relative to src_dir. search_path is +# a list of paths relative to src_dir where we should look for +# include files. +# Remark: this method returns the transitive closure of the dependencies. +def extract_c_dependencies(src_dir, path, fname, search_path): + result = [] + processed = sets.Set() + full_fname = mk_full_fname(src_dir, path, fname) + processed.add(full_fname) + todo = [full_fname] + while todo: + curr = todo[-1] + todo.pop() + deps = extract_c_includes(curr) + for dep in deps: + full_dep = find_file(src_dir, path, search_path, dep) + if full_dep == None: + raise MKException("File '%s' was not found when processing '%s' for '%s'. Remark: system files should be included using #include<...>." % (dep, curr, fname)) + if not full_dep in processed: + processed.add(full_dep) + todo.append(full_dep) + result.append(full_dep) + return result + diff --git a/scripts/mk_exception.py b/scripts/mk_exception.py new file mode 100644 index 000000000..05558855d --- /dev/null +++ b/scripts/mk_exception.py @@ -0,0 +1,12 @@ +############################################ +# Copyright (c) 2012 Microsoft Corporation +# +# Author: Leonardo de Moura (leonardo) +############################################ + +class MKException(Exception): + def __init__(self, value): + self.value = value + def __str__(self): + return repr(self.value) + diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 7376f0a3f..f5d2556a9 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -8,15 +8,14 @@ ############################################ from mk_util import * -set_build_dir('build') -set_src_dir('src') -set_modes(['Debug', 'Release']) -set_platforms(['Win32', 'x64']) -set_vs_options('WIN32;_WINDOWS;ASYNC_COMMANDS', - 'Z3DEBUG;_TRACE;_DEBUG', - 'NDEBUG;_EXTERNAL_RELEASE') +# set_build_dir('build') +# set_src_dir('src') +# set_modes(['Debug', 'Release']) +# set_platforms(['Win32', 'x64']) +# set_vs_options('WIN32;_WINDOWS;ASYNC_COMMANDS', +# 'Z3DEBUG;_TRACE;_DEBUG', +# 'NDEBUG;_EXTERNAL_RELEASE') -add_header('api_headers') add_lib('util', []) add_lib('polynomial', ['util']) add_lib('sat', ['util']) @@ -75,7 +74,9 @@ add_lib('portfolio', ['smtlogic_tactics', 'ufbv_strategy', 'fpa', 'aig', 'muz_qe # TODO: delete SMT 1.0 frontend add_lib('api', ['portfolio', 'user_plugin']) add_lib('array_property', ['ast', 'rewriter']) -add_exe('shell', ['api', 'sat', 'extra_cmds']) +add_exe('shell', ['api', 'sat', 'extra_cmds'], exe_name='z3') add_exe('test', ['api', 'fuzzing', 'array_property']) -mk_vs_solution() +# mk_vs_solution() + +mk_makefile() diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 9e6853795..6ebc2720d 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -8,301 +8,242 @@ ############################################ import os import glob +import sets +from dependencies import * +from mk_exception import * BUILD_DIR='build' +REV_BUILD_DIR='..' SRC_DIR='src' -MODES=[] -PLATFORMS=[] +IS_WINDOW=False +CXX='g++' +MAKE='make' +if os.name == 'nt': + IS_WINDOW=True + CXX='cl' + MAKE='nmake' -def set_build_dir(d): - global BUILD_DIR - BUILD_DIR = d - mk_dir(BUILD_DIR) +LIB_KIND = 0 +EXE_KIND = 1 -def set_src_dir(d): - global SRC_DIR - SRC_DIR = d - -def set_modes(l): - global MODES - MODES=l - -def set_platforms(l): - global PLATFORMS - PLATFORMS=l - -VS_COMMON_OPTIONS='WIN32' -VS_DBG_OPTIONS='_DEBUG' -VS_RELEASE_OPTIONS='NDEBUG' - -GUI = 0 -Name2GUI = {} - -def mk_gui_str(id): - return '4D2F40D8-E5F9-473B-B548-%012d' % id - -MODULES = [] -HEADERS = [] -LIBS = [] -EXES = [] -DEPS = {} - -class MKException(Exception): - def __init__(self, value): - self.value = value - def __str__(self): - return repr(self.value) - -def set_vs_options(common, dbg, release): - global VS_COMMON_OPTIONS, VS_DBG_OPTIONS, VS_RELEASE_OPTIONS - VS_COMMON_OPTIONS = common - VS_DBG_OPTIONS = dbg - VS_RELEASE_OPTIONS = release - -def is_debug(mode): - return mode == 'Debug' - -def is_x64(platform): - return platform == 'x64' +# Given a path dir1/subdir2/subdir3 returns ../../.. +def reverse_path(p): + l = p.split('/') + n = len(l) + r = '..' + for i in range(1, n): + r = '%s/%s' % (r, '..') + return r def mk_dir(d): if not os.path.exists(d): os.makedirs(d) -def module_src_dir(name): - return '%s%s%s' % (SRC_DIR, os.sep, name) +def set_build_dir(d): + global BUILD_DIR + BUILD_DIR = d + REV_BUILD_DIR = reverse_path(d) -def module_build_dir(name): - return '%s%s%s' % (BUILD_DIR, os.sep, name) +_UNIQ_ID = 0 -LIB_KIND = 0 -EXE_KIND = 1 +def mk_fresh_name(prefix): + global _UNIQ_ID + r = '%s_%s' % (prefix, _UNIQ_ID) + _UNIQ_ID = _UNIQ_ID + 1 + return r -def get_extension(kind): - if kind == LIB_KIND: - return 'lib' - elif kind == EXE_KIND: - return 'exe' - else: - raise MKException('unknown kind %s' % kind) - -def vs_header(f): - f.write( -'\n' -'\n') - -def vs_project_configurations(f, name): - global GUI, Name2GUI - f.write(' \n') - for mode in MODES: - for platform in PLATFORMS: - f.write(' \n' % (mode, platform)) - f.write(' %s\n' % mode) - f.write(' %s\n' % platform) - f.write(' \n') - f.write(' \n') - - f.write(' \n') - f.write(' {%s}\n' % mk_gui_str(GUI)) - f.write(' %s\n' % name) - f.write(' Win32Proj\n') - f.write(' \n') - f.write(' \n') - Name2GUI[name] = GUI - GUI = GUI + 1 - -def vs_configurations(f, name, kind): - for mode in MODES: - for platform in PLATFORMS: - f.write(' \n' % (mode, platform)) - if kind == LIB_KIND: - f.write(' StaticLibrary\n') - elif kind == EXE_KIND: - f.write(' Application\n') - else: - raise MKException("unknown kind %s" % kind) - f.write(' Unicode\n') - f.write(' false\n') - f.write(' \n') - - f.write(' \n') - f.write(' \n') - f.write(' \n') - f.write(' \n') - f.write(' \n') - f.write(' \n') - - f.write(' \n') - for mode in MODES: - for platform in PLATFORMS: - if is_x64(platform): - f.write(' $(SolutionDir)$(Platform)\$(Configuration)\\n' % - (mode, platform)) - else: - f.write(' $(SolutionDir)$(Configuration)\\n' % (mode, platform)) - for mode in MODES: - for platform in PLATFORMS: - f.write(' %s\n' % (mode, platform, name)) - f.write(' .%s\n' % (mode, platform, get_extension(kind))) - f.write(' \n') - -def vs_compilation_options(f, name, deps, kind): - for mode in MODES: - for platform in PLATFORMS: - f.write(' \n' % (mode, platform)) - if is_x64(platform): - f.write(' \n') - f.write(' X64\n') - f.write(' \n') - f.write(' \n') - if is_debug(mode): - f.write(' Disabled\n') - else: - f.write(' Full\n') - options = VS_COMMON_OPTIONS - if is_debug(mode): - options = "%s;%s" % (options, VS_DBG_OPTIONS) - else: - options = "%s;%s" % (options, VS_RELEASE_OPTIONS) - if is_x64(platform): - options = "%s;_AMD64_" % options - f.write(' %s;%%(PreprocessorDefinitions)\n' % options) - if is_debug(mode): - f.write(' true\n') - f.write(' EnableFastChecks\n') - f.write(' Level3\n') - f.write(' MultiThreadedDebugDLL\n') - f.write(' true\n') - f.write(' ProgramDatabase\n') - f.write(' ') - f.write('..\..\src\%s' % name) - for dep in deps: - f.write(';..\..\src\%s' % dep) - f.write('\n') - f.write(' \n') - f.write(' \n') - f.write(' $(OutDir)%s.%s\n' % (name, get_extension(kind))) - f.write(' %(AdditionalLibraryDirectories)\n') - if is_x64(platform): - f.write(' MachineX64\n') - else: - f.write(' MachineX86\n') - if kind == EXE_KIND: - f.write('kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib') - for dep in deps: - f.write(';$(OutDir)%s.lib' % dep) - # if is_x64(platform): - # f.write(';..\%s\%s\%s\%s.lib' % (dep, platform, mode, dep)) - # else: - # f.write(';..\%s\%s\%s.lib' % (dep, mode, dep)) - f.write(';%(AdditionalDependencies)\n') - f.write(' \n') - f.write(' \n') - -def add_vs_cpps(f, name): - f.write(' \n') - srcs = module_src_dir(name) - for cppfile in glob.glob(os.path.join(srcs, '*.cpp')): - f.write(' \n' % (os.sep, os.sep, cppfile)) - f.write(' \n') - -def vs_footer(f): - f.write( -' \n' -' \n' -' \n' -'\n') - -def check_new_component(name): - if (name in HEADERS) or (name in LIBS) or (name in EXES): - raise MKException("Component '%s' was already defined" % name) - -# Add a directory containing only .h files -def add_header(name): - check_new_component(name) - HEADERS.append(name) +_Id = 0 +_Components = [] +_ComponentNames = sets.Set() +_Name2Component = {} +_Processed_Headers = sets.Set() def find_all_deps(name, deps): new_deps = [] for dep in deps: - if dep in LIBS: + if dep in _ComponentNames: if not (dep in new_deps): new_deps.append(dep) - for dep_dep in DEPS[dep]: + for dep_dep in _Name2Component[dep].deps: if not (dep_dep in new_deps): new_deps.append(dep_dep) - elif dep in HEADERS: - if not (dep in new_deps): - new_deps.append(dep) else: raise MKException("Unknown component '%s' at '%s'." % (dep, name)) return new_deps -def add_component(name, deps, kind): - check_new_component(name) - if kind == LIB_KIND: - LIBS.append(name) - elif kind == EXE_KIND: - EXES.append(name) - else: - raise MKException("unknown kind %s" % kind) - MODULES.append(name) - deps = find_all_deps(name, deps) - DEPS[name] = deps - print "Dependencies for '%s': %s" % (name, deps) +class Component: + def __init__(self, name, kind, path, deps): + global BUILD_DIR, SRC_DIR, REV_BUILD_DIR + if name in _ComponentNames: + raise MKException("Component '%s' was already defined." % name) + if path == None: + path = name + self.kind = kind + self.name = name + self.path = path + self.deps = find_all_deps(name, deps) + self.build_dir = path + self.src_dir = '%s/%s' % (SRC_DIR, path) + self.to_src_dir = '%s/%s' % (REV_BUILD_DIR, self.src_dir) - module_dir = module_build_dir(name) - mk_dir(module_dir) + # Find fname in the include paths for the given component. + # ownerfile is only used for creating error messages. + # That is, we were looking for fname when processing ownerfile + def find_file(self, fname, ownerfile): + global _Name2Component + full_fname = '%s/%s' % (self.src_dir, fname) + if os.path.exists(full_fname): + return self + for dep in self.deps: + c_dep = _Name2Component[dep] + full_fname = '%s/%s' % (c_dep.src_dir, fname) + if os.path.exists(full_fname): + return c_dep + raise MKException("Failed to find include file '%s' for '%s' when processing '%s'." % (fname, ownerfile, self.name)) - vs_proj = open('%s%s%s.vcxproj' % (module_dir, os.sep, name), 'w') - vs_header(vs_proj) - vs_project_configurations(vs_proj, name) - vs_configurations(vs_proj, name, kind) - vs_compilation_options(vs_proj, name, deps, kind) - add_vs_cpps(vs_proj, name) - vs_footer(vs_proj) + # Display all dependencies of file basename located in the given component directory. + # The result is displayed at out + def add_cpp_h_deps(self, out, basename): + includes = extract_c_includes('%s/%s' % (self.src_dir, basename)) + out.write('%s/%s' % (self.to_src_dir, basename)) + for include in includes: + owner = self.find_file(include, basename) + out.write(' %s/%s.node' % (owner.build_dir, include)) -def add_lib(name, deps): - add_component(name, deps, LIB_KIND) + # Add a rule for each #include directive in the file basename located at the current component. + def add_rule_for_each_include(self, out, basename): + fullname = '%s/%s' % (self.src_dir, basename) + includes = extract_c_includes(fullname) + for include in includes: + owner = self.find_file(include, fullname) + owner.add_h_rule(out, include) -def add_exe(name, deps): - add_component(name, deps, EXE_KIND) + # Display a Makefile rule for an include file located in the given component directory. + # 'include' is something of the form: ast.h, polynomial.h + # The rule displayed at out is of the form + # ast/ast_pp.h.node : ../src/util/ast_pp.h util/util.h.node ast/ast.h.node + # @echo "done" > ast/ast_pp.h.node + def add_h_rule(self, out, include): + include_src_path = '%s/%s' % (self.to_src_dir, include) + if include_src_path in _Processed_Headers: + return + _Processed_Headers.add(include_src_path) + self.add_rule_for_each_include(out, include) + include_node = '%s/%s.node' % (self.build_dir, include) + out.write('%s: ' % include_node) + self.add_cpp_h_deps(out, include) + out.write('\n') + out.write(' @echo done > %s\n' % include_node) -def is_lib(name): - # Add DLL dependency - return name in LIBS + def add_cpp_rules(self, out, include_defs, cppfile): + self.add_rule_for_each_include(out, cppfile) + objfile = '%s/%s.$(OBJ)' % (self.build_dir, os.path.splitext(cppfile)[0]) + srcfile = '%s/%s' % (self.to_src_dir, cppfile) + out.write('%s: ' % objfile) + self.add_cpp_h_deps(out, cppfile) + out.write('\n') + flags = 'CXXFLAGS_OPT' + out.write(' @$(CXX) $(%s) $(%s) $(CXXOUTFLAG)%s %s\n' % (include_defs, flags, objfile, srcfile)) -def mk_vs_solution(): - sln = open('%s%sz3.sln' % (BUILD_DIR, os.sep), 'w') - sln.write('\n') - sln.write("Microsoft Visual Studio Solution File, Format Version 11.00\n") - sln.write("# Visual Studio 2010\n") - for module in MODULES: - gui = Name2GUI[module] - deps = DEPS[module] - sln.write('Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "%s", "%s%s%s.vcxproj", "{%s}"\n' % - (module, module, os.sep, module, mk_gui_str(gui))) - if len(deps) > 0: - sln.write(' ProjectSection(ProjectDependencies) = postProject\n') - for dep in deps: - if is_lib(dep): - i = Name2GUI[dep] - sln.write(' {%s} = {%s}\n' % (mk_gui_str(i), mk_gui_str(i))) - sln.write(' EndProjectSection\n') - sln.write('EndProject\n') - sln.write('Global\n') - sln.write('GlobalSection(SolutionConfigurationPlatforms) = preSolution\n') - for mode in MODES: - for platform in PLATFORMS: - sln.write(' %s|%s = %s|%s\n' % (mode, platform, mode, platform)) - sln.write('EndGlobalSection\n') - sln.write('GlobalSection(ProjectConfigurationPlatforms) = postSolution\n') - for module in MODULES: - gui = Name2GUI[module] - for mode in MODES: - for platform in PLATFORMS: - sln.write(' {%s}.%s|%s.ActiveCfg = %s|%s\n' % (mk_gui_str(gui), mode, platform, mode, platform)) - sln.write(' {%s}.%s|%s.Build.0 = %s|%s\n' % (mk_gui_str(gui), mode, platform, mode, platform)) - sln.write('EndGlobalSection\n') - - print "Visual Solution was generated." + def mk_makefile(self, out): + include_defs = mk_fresh_name('includes') + out.write('%s =' % include_defs) + for dep in self.deps: + out.write(' -I%s' % _Name2Component[dep].to_src_dir) + out.write('\n') + mk_dir('%s/%s' % (BUILD_DIR, self.build_dir)) + for cppfile in glob.glob(os.path.join(self.src_dir, '*.cpp')): + cppfile = os.path.basename(cppfile) + self.add_cpp_rules(out, include_defs, cppfile) + +class LibComponent(Component): + def __init__(self, name, path, deps): + Component.__init__(self, name, LIB_KIND, path, deps) + + def mk_makefile(self, out): + Component.mk_makefile(self, out) + # generate rule for lib + objs = [] + for cppfile in glob.glob(os.path.join(self.src_dir, '*.cpp')): + cppfile = os.path.basename(cppfile) + objfile = '%s/%s.$(OBJ)' % (self.build_dir, os.path.splitext(cppfile)[0]) + objs.append(objfile) + + libfile = '%s/%s.$(LIB)' % (self.build_dir, self.name) + out.write('%s:' % libfile) + for obj in objs: + out.write(' ') + out.write(obj) + out.write('\n') + out.write(' @$(MKLIB) $(MKLIB_OPT) $(MKLIBOUTFLAG)%s' % libfile) + for obj in objs: + out.write(' ') + out.write(obj) + out.write('\n') + out.write('%s: %s\n\n' % (self.name, libfile)) + +class ExeComponent(Component): + def __init__(self, name, exe_name, path, deps): + Component.__init__(self, name, EXE_KIND, path, deps) + if exe_name == None: + exe_name = name + self.exe_name = exe_name + + def mk_makefile(self, out): + global _Name2Component + Component.mk_makefile(self, out) + # generate rule for exe + + exefile = '%s.$(EXE)' % self.exe_name + out.write('%s:' % exefile) + for dep in self.deps: + c_dep = _Name2Component[dep] + out.write(' %s/%s.lib' % (c_dep.build_dir, c_dep.name)) + objs = [] + for cppfile in glob.glob(os.path.join(self.src_dir, '*.cpp')): + cppfile = os.path.basename(cppfile) + objfile = '%s/%s.$(OBJ)' % (self.build_dir, os.path.splitext(cppfile)[0]) + objs.append(objfile) + for obj in objs: + out.write(' ') + out.write(obj) + out.write('\n') + out.write(' $(MKEXE) $(EXEOUTFLAG)%s $(EXEFLAGS_OPT)' % exefile) + for obj in objs: + out.write(' ') + out.write(obj) + for dep in self.deps: + c_dep = _Name2Component[dep] + out.write(' %s/%s.lib' % (c_dep.build_dir, c_dep.name)) + out.write('\n') + out.write('%s: %s\n\n' % (self.name, exefile)) + + +def reg_component(name, c): + global _Id, _Components, _ComponentNames, _Name2Component + c.id = _Id + _Id = _Id + 1 + _Components.append(c) + _ComponentNames.add(name) + _Name2Component[name] = c + +def add_lib(name, deps=[], path=None): + c = LibComponent(name, path, deps) + reg_component(name, c) + +def add_exe(name, deps=[], path=None, exe_name=None): + c = ExeComponent(name, exe_name, path, deps) + reg_component(name, c) + +def mk_makefile(): + mk_dir(BUILD_DIR) + out = open('%s/Makefile' % BUILD_DIR, 'w') + out.write('# Automatically generated file. Generator: scripts/mk_make.py\n') + out.write('include config.mk\n') + for c in _Components: + c.mk_makefile(out) + +# add_lib('util') +# add_lib('polynomial', ['util']) +# add_lib('ast', ['util', 'polynomial']) +# mk_makefile() diff --git a/scripts/mk_util_old.py b/scripts/mk_util_old.py new file mode 100644 index 000000000..5870af710 --- /dev/null +++ b/scripts/mk_util_old.py @@ -0,0 +1,308 @@ +############################################ +# Copyright (c) 2012 Microsoft Corporation +# +# Auxiliary scripts for generating Makefiles +# and Visual Studio project files. +# +# Author: Leonardo de Moura (leonardo) +############################################ +import os +import glob + +BUILD_DIR='build' +SRC_DIR='src' +MODES=[] +PLATFORMS=[] + +class MKException(Exception): + def __init__(self, value): + self.value = value + def __str__(self): + return repr(self.value) + +def set_build_dir(d): + global BUILD_DIR + BUILD_DIR = d + mk_dir(BUILD_DIR) + +def set_src_dir(d): + global SRC_DIR + SRC_DIR = d + +def set_modes(l): + global MODES + MODES=l + +def set_platforms(l): + global PLATFORMS + PLATFORMS=l + +VS_COMMON_OPTIONS='WIN32' +VS_DBG_OPTIONS='_DEBUG' +VS_RELEASE_OPTIONS='NDEBUG' + +GUI = 0 +Name2GUI = {} + +def mk_gui_str(id): + return '4D2F40D8-E5F9-473B-B548-%012d' % id + +MODULES = [] +HEADERS = [] +LIBS = [] +EXES = [] +DEPS = {} + +def set_vs_options(common, dbg, release): + global VS_COMMON_OPTIONS, VS_DBG_OPTIONS, VS_RELEASE_OPTIONS + VS_COMMON_OPTIONS = common + VS_DBG_OPTIONS = dbg + VS_RELEASE_OPTIONS = release + +def is_debug(mode): + return mode == 'Debug' + +def is_x64(platform): + return platform == 'x64' + +def mk_dir(d): + if not os.path.exists(d): + os.makedirs(d) + +def module_src_dir(name): + return '%s%s%s' % (SRC_DIR, os.sep, name) + +def module_build_dir(name): + return '%s%s%s' % (BUILD_DIR, os.sep, name) + +LIB_KIND = 0 +EXE_KIND = 1 + +def get_extension(kind): + if kind == LIB_KIND: + return 'lib' + elif kind == EXE_KIND: + return 'exe' + else: + raise MKException('unknown kind %s' % kind) + +def vs_header(f): + f.write( +'\n' +'\n') + +def vs_project_configurations(f, name): + global GUI, Name2GUI + f.write(' \n') + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + f.write(' %s\n' % mode) + f.write(' %s\n' % platform) + f.write(' \n') + f.write(' \n') + + f.write(' \n') + f.write(' {%s}\n' % mk_gui_str(GUI)) + f.write(' %s\n' % name) + f.write(' Win32Proj\n') + f.write(' \n') + f.write(' \n') + Name2GUI[name] = GUI + GUI = GUI + 1 + +def vs_configurations(f, name, kind): + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + if kind == LIB_KIND: + f.write(' StaticLibrary\n') + elif kind == EXE_KIND: + f.write(' Application\n') + else: + raise MKException("unknown kind %s" % kind) + f.write(' Unicode\n') + f.write(' false\n') + f.write(' \n') + + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + f.write(' \n') + + f.write(' \n') + for mode in MODES: + for platform in PLATFORMS: + if is_x64(platform): + f.write(' $(SolutionDir)$(Platform)\$(Configuration)\\n' % + (mode, platform)) + else: + f.write(' $(SolutionDir)$(Configuration)\\n' % (mode, platform)) + for mode in MODES: + for platform in PLATFORMS: + f.write(' %s\n' % (mode, platform, name)) + f.write(' .%s\n' % (mode, platform, get_extension(kind))) + f.write(' \n') + +def vs_compilation_options(f, name, deps, kind): + for mode in MODES: + for platform in PLATFORMS: + f.write(' \n' % (mode, platform)) + if is_x64(platform): + f.write(' \n') + f.write(' X64\n') + f.write(' \n') + f.write(' \n') + if is_debug(mode): + f.write(' Disabled\n') + else: + f.write(' Full\n') + options = VS_COMMON_OPTIONS + if is_debug(mode): + options = "%s;%s" % (options, VS_DBG_OPTIONS) + else: + options = "%s;%s" % (options, VS_RELEASE_OPTIONS) + if is_x64(platform): + options = "%s;_AMD64_" % options + f.write(' %s;%%(PreprocessorDefinitions)\n' % options) + if is_debug(mode): + f.write(' true\n') + f.write(' EnableFastChecks\n') + f.write(' Level3\n') + f.write(' MultiThreadedDebugDLL\n') + f.write(' true\n') + f.write(' ProgramDatabase\n') + f.write(' ') + f.write('..\..\src\%s' % name) + for dep in deps: + f.write(';..\..\src\%s' % dep) + f.write('\n') + f.write(' \n') + f.write(' \n') + f.write(' $(OutDir)%s.%s\n' % (name, get_extension(kind))) + f.write(' %(AdditionalLibraryDirectories)\n') + if is_x64(platform): + f.write(' MachineX64\n') + else: + f.write(' MachineX86\n') + if kind == EXE_KIND: + f.write('kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib') + for dep in deps: + f.write(';$(OutDir)%s.lib' % dep) + # if is_x64(platform): + # f.write(';..\%s\%s\%s\%s.lib' % (dep, platform, mode, dep)) + # else: + # f.write(';..\%s\%s\%s.lib' % (dep, mode, dep)) + f.write(';%(AdditionalDependencies)\n') + f.write(' \n') + f.write(' \n') + +def add_vs_cpps(f, name): + f.write(' \n') + srcs = module_src_dir(name) + for cppfile in glob.glob(os.path.join(srcs, '*.cpp')): + f.write(' \n' % (os.sep, os.sep, cppfile)) + f.write(' \n') + +def vs_footer(f): + f.write( +' \n' +' \n' +' \n' +'\n') + +def check_new_component(name): + if (name in HEADERS) or (name in LIBS) or (name in EXES): + raise MKException("Component '%s' was already defined" % name) + +# Add a directory containing only .h files +def add_header(name): + check_new_component(name) + HEADERS.append(name) + +def find_all_deps(name, deps): + new_deps = [] + for dep in deps: + if dep in LIBS: + if not (dep in new_deps): + new_deps.append(dep) + for dep_dep in DEPS[dep]: + if not (dep_dep in new_deps): + new_deps.append(dep_dep) + elif dep in HEADERS: + if not (dep in new_deps): + new_deps.append(dep) + else: + raise MKException("Unknown component '%s' at '%s'." % (dep, name)) + return new_deps + +def add_component(name, deps, kind): + check_new_component(name) + if kind == LIB_KIND: + LIBS.append(name) + elif kind == EXE_KIND: + EXES.append(name) + else: + raise MKException("unknown kind %s" % kind) + MODULES.append(name) + deps = find_all_deps(name, deps) + DEPS[name] = deps + print "Dependencies for '%s': %s" % (name, deps) + + module_dir = module_build_dir(name) + mk_dir(module_dir) + + vs_proj = open('%s%s%s.vcxproj' % (module_dir, os.sep, name), 'w') + vs_header(vs_proj) + vs_project_configurations(vs_proj, name) + vs_configurations(vs_proj, name, kind) + vs_compilation_options(vs_proj, name, deps, kind) + add_vs_cpps(vs_proj, name) + vs_footer(vs_proj) + +def add_lib(name, deps): + add_component(name, deps, LIB_KIND) + +def add_exe(name, deps): + add_component(name, deps, EXE_KIND) + +def is_lib(name): + # Add DLL dependency + return name in LIBS + +def mk_vs_solution(): + sln = open('%s%sz3.sln' % (BUILD_DIR, os.sep), 'w') + sln.write('\n') + sln.write("Microsoft Visual Studio Solution File, Format Version 11.00\n") + sln.write("# Visual Studio 2010\n") + for module in MODULES: + gui = Name2GUI[module] + deps = DEPS[module] + sln.write('Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "%s", "%s%s%s.vcxproj", "{%s}"\n' % + (module, module, os.sep, module, mk_gui_str(gui))) + if len(deps) > 0: + sln.write(' ProjectSection(ProjectDependencies) = postProject\n') + for dep in deps: + if is_lib(dep): + i = Name2GUI[dep] + sln.write(' {%s} = {%s}\n' % (mk_gui_str(i), mk_gui_str(i))) + sln.write(' EndProjectSection\n') + sln.write('EndProject\n') + sln.write('Global\n') + sln.write('GlobalSection(SolutionConfigurationPlatforms) = preSolution\n') + for mode in MODES: + for platform in PLATFORMS: + sln.write(' %s|%s = %s|%s\n' % (mode, platform, mode, platform)) + sln.write('EndGlobalSection\n') + sln.write('GlobalSection(ProjectConfigurationPlatforms) = postSolution\n') + for module in MODULES: + gui = Name2GUI[module] + for mode in MODES: + for platform in PLATFORMS: + sln.write(' {%s}.%s|%s.ActiveCfg = %s|%s\n' % (mk_gui_str(gui), mode, platform, mode, platform)) + sln.write(' {%s}.%s|%s.Build.0 = %s|%s\n' % (mk_gui_str(gui), mode, platform, mode, platform)) + sln.write('EndGlobalSection\n') + + print "Visual Solution was generated." diff --git a/src/api/smtlib_solver.cpp b/src/api/smtlib_solver.cpp index ca5fa5555..d268d7ac2 100644 --- a/src/api/smtlib_solver.cpp +++ b/src/api/smtlib_solver.cpp @@ -26,7 +26,6 @@ Revision History: #include"spc_prover.h" #include"model.h" #include"model_v2_pp.h" -// #include"expr2dot.h" #include"solver.h" #include"smt_strategic_solver.h" #include"cmd_context.h" diff --git a/src/api/smtparser.cpp b/src/api/smtparser.cpp index e60ecb3e2..55d49aa66 100644 --- a/src/api/smtparser.cpp +++ b/src/api/smtparser.cpp @@ -45,10 +45,7 @@ Revision History: #include"well_sorted.h" #include "str_hashtable.h" #include "front_end_params.h" -// #include "z3_private.h" #include "stopwatch.h" -// #include "dl_rule.h" -// private method defined in z3.cpp: front_end_params& Z3_API Z3_get_parameters(__in Z3_context c); class id_param_info { diff --git a/src/muz_qe/pdr_farkas_learner.cpp b/src/muz_qe/pdr_farkas_learner.cpp index b4c78cb01..1dd46cbdf 100644 --- a/src/muz_qe/pdr_farkas_learner.cpp +++ b/src/muz_qe/pdr_farkas_learner.cpp @@ -29,7 +29,6 @@ Revision History: #include "pdr_util.h" #include "pdr_farkas_learner.h" #include "th_rewriter.h" -// #include "smtparser.h" #include "pdr_interpolant_provider.h" #include "ast_ll_pp.h" #include "arith_bounds_tactic.h" diff --git a/src/muz_qe/pdr_farkas_learner.h b/src/muz_qe/pdr_farkas_learner.h index e068b5537..888947049 100644 --- a/src/muz_qe/pdr_farkas_learner.h +++ b/src/muz_qe/pdr_farkas_learner.h @@ -24,7 +24,6 @@ Revision History: #include "ast_translation.h" #include "bv_decl_plugin.h" #include "smt_solver.h" -#include "pdr_manager.h" #include "bool_rewriter.h" #include "pdr_util.h" #include "front_end_params.h" diff --git a/src/sat/sat_clause.cpp b/src/sat/sat_clause.cpp index f6d081a83..b5f6521b8 100644 --- a/src/sat/sat_clause.cpp +++ b/src/sat/sat_clause.cpp @@ -16,7 +16,7 @@ Author: Revision History: --*/ -#include"memory.h" +#include #include"sat_clause.h" #include"z3_exception.h" diff --git a/src/smt/asserted_formulas.cpp b/src/smt/asserted_formulas.cpp index f5d9c4891..25733d361 100644 --- a/src/smt/asserted_formulas.cpp +++ b/src/smt/asserted_formulas.cpp @@ -42,7 +42,6 @@ Revision History: #include"warning.h" #include"eager_bit_blaster.h" #include"bit2int.h" -// #include"qe.h" #include"distribute_forall.h" #include"demodulator.h" #include"quasi_macros.h" diff --git a/src/smt/asserted_formulas.h b/src/smt/asserted_formulas.h index a89385958..62f3528c3 100644 --- a/src/smt/asserted_formulas.h +++ b/src/smt/asserted_formulas.h @@ -29,7 +29,6 @@ Revision History: #include"solver_plugin.h" #include"maximise_ac_sharing.h" #include"bit2int.h" -// #include"qe.h" #include"statistics.h" #include"user_rewriter.h" #include"pattern_inference.h" diff --git a/src/util/union_find.h b/src/smt/union_find.h similarity index 100% rename from src/util/union_find.h rename to src/smt/union_find.h diff --git a/src/util/fvi.h b/src/spc/fvi.h similarity index 100% rename from src/util/fvi.h rename to src/spc/fvi.h diff --git a/src/util/fvi_def.h b/src/spc/fvi_def.h similarity index 100% rename from src/util/fvi_def.h rename to src/spc/fvi_def.h diff --git a/src/test/api_bug.cpp b/src/test/api_bug.cpp index 917ac7dd6..4519b2352 100644 --- a/src/test/api_bug.cpp +++ b/src/test/api_bug.cpp @@ -1,5 +1,5 @@ -#include "z3.h" -#include "stdio.h" +#include +#include"z3.h" void tst_api_bug() { unsigned vmajor, vminor, vbuild, vrevision; diff --git a/src/test/par_dll.cpp b/src/test/par_dll.cpp index b83df67b8..eb3a572e3 100644 --- a/src/test/par_dll.cpp +++ b/src/test/par_dll.cpp @@ -1,5 +1,5 @@ #include "z3.h" -#include "windows.h" +#include class thread_check { diff --git a/src/test/parallel.cpp b/src/test/parallel.cpp index 14f4d4b08..c7471d472 100644 --- a/src/test/parallel.cpp +++ b/src/test/parallel.cpp @@ -10,7 +10,7 @@ #include "vector.h" #include "buffer.h" #undef ARRAYSIZE -#include "windows.h" +#include class thread_check { diff --git a/src/test/timeout.cpp b/src/test/timeout.cpp index 4e2e83847..19daebb12 100644 --- a/src/test/timeout.cpp +++ b/src/test/timeout.cpp @@ -4,7 +4,7 @@ #ifdef _WINDOWS -#include "windows.h" +#include void tst_timeout() { } diff --git a/src/util/hashtable.h b/src/util/hashtable.h index 1eb168120..874636e91 100644 --- a/src/util/hashtable.h +++ b/src/util/hashtable.h @@ -21,7 +21,7 @@ Revision History: #include"debug.h" #include #include"util.h" -#include"limits.h" +#include #include"memory_manager.h" #include"hash.h" diff --git a/src/util/instruction_count.cpp b/src/util/instruction_count.cpp index ff9387f79..6dd5bcb85 100644 --- a/src/util/instruction_count.cpp +++ b/src/util/instruction_count.cpp @@ -1,5 +1,5 @@ #ifdef _WINDOWS -#include "windows.h" +#include #endif #include "instruction_count.h" diff --git a/src/util/mpz.cpp b/src/util/mpz.cpp index c9a6dc1f1..16a3f1a9e 100644 --- a/src/util/mpz.cpp +++ b/src/util/mpz.cpp @@ -23,16 +23,7 @@ Revision History: #include"hash.h" #include"bit_util.h" -#if defined(_MP_MSBIGNUM) -#define COMPILER COMPILER_VC -#ifndef NDEBUG -#define NDEBUG -#endif -#ifdef ARRAYSIZE -#undef ARRAYSIZE -#endif -#include "..\msbig_rational\msbignum.h" -#elif defined(_MP_INTERNAL) +#if defined(_MP_INTERNAL) #include"mpn.h" #elif defined(_MP_GMP) #include diff --git a/src/util/nat_set.h b/src/util/nat_set.h index 79e982f20..eb091fc61 100644 --- a/src/util/nat_set.h +++ b/src/util/nat_set.h @@ -19,8 +19,8 @@ Revision History: #ifndef _NAT_SET_H_ #define _NAT_SET_H_ +#include #include"vector.h" -#include"limits.h" class nat_set { unsigned m_curr_timestamp; diff --git a/src/util/util.cpp b/src/util/util.cpp index ee39db667..c2795b637 100644 --- a/src/util/util.cpp +++ b/src/util/util.cpp @@ -160,7 +160,7 @@ void escaped::display(std::ostream & out) const { #ifdef ARRAYSIZE #undef ARRAYSIZE #endif -#include "windows.h" +#include #endif void z3_bound_num_procs() { diff --git a/src/util/z3_omp.h b/src/util/z3_omp.h index 8af7ae389..c63b23fc0 100644 --- a/src/util/z3_omp.h +++ b/src/util/z3_omp.h @@ -20,7 +20,7 @@ Notes: #define _Z3_OMP_H #ifndef _NO_OMP_ -#include"omp.h" +#include #else #define omp_in_parallel() false #define omp_set_num_threads(SZ) ((void)0) From 1d795e9a5e9d0a72cefffbf9102b53a8b8bef895 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 13:10:41 -0700 Subject: [PATCH 36/54] trying new build infrastructure on linux Signed-off-by: Leonardo de Moura --- scripts/mk_util.py | 42 ++++++++++++++++++++++----------- src/api/smtparser.cpp | 2 +- src/ast/ast_smt2_pp.cpp | 43 ---------------------------------- src/ast/ast_smt2_pp.h | 6 +---- src/muz_qe/pdr_context.cpp | 4 ++-- src/muz_qe/pdr_context.h | 2 +- src/muz_qe/pdr_quantifiers.cpp | 4 ++-- src/muz_qe/pdr_util.cpp | 8 ++++--- src/muz_qe/qe_lite.cpp | 2 +- 9 files changed, 41 insertions(+), 72 deletions(-) diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 6ebc2720d..bab63d798 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -22,6 +22,7 @@ if os.name == 'nt': IS_WINDOW=True CXX='cl' MAKE='nmake' +SHOW_CPPS = True LIB_KIND = 0 EXE_KIND = 1 @@ -133,17 +134,18 @@ class Component: out.write('%s: ' % include_node) self.add_cpp_h_deps(out, include) out.write('\n') - out.write(' @echo done > %s\n' % include_node) + out.write('\t@echo done > %s\n' % include_node) def add_cpp_rules(self, out, include_defs, cppfile): self.add_rule_for_each_include(out, cppfile) - objfile = '%s/%s.$(OBJ)' % (self.build_dir, os.path.splitext(cppfile)[0]) + objfile = '%s/%s$(OBJ_EXT)' % (self.build_dir, os.path.splitext(cppfile)[0]) srcfile = '%s/%s' % (self.to_src_dir, cppfile) out.write('%s: ' % objfile) self.add_cpp_h_deps(out, cppfile) out.write('\n') - flags = 'CXXFLAGS_OPT' - out.write(' @$(CXX) $(%s) $(%s) $(CXXOUTFLAG)%s %s\n' % (include_defs, flags, objfile, srcfile)) + if SHOW_CPPS: + out.write('\t@echo %s\n' % cppfile) + out.write('\t@$(CXX) $(CXXFLAGS) $(%s) $(CXX_OUT_FLAG)%s %s\n' % (include_defs, objfile, srcfile)) def mk_makefile(self, out): include_defs = mk_fresh_name('includes') @@ -166,22 +168,33 @@ class LibComponent(Component): objs = [] for cppfile in glob.glob(os.path.join(self.src_dir, '*.cpp')): cppfile = os.path.basename(cppfile) - objfile = '%s/%s.$(OBJ)' % (self.build_dir, os.path.splitext(cppfile)[0]) + objfile = '%s/%s$(OBJ_EXT)' % (self.build_dir, os.path.splitext(cppfile)[0]) objs.append(objfile) - libfile = '%s/%s.$(LIB)' % (self.build_dir, self.name) + libfile = '%s/%s$(LIB_EXT)' % (self.build_dir, self.name) out.write('%s:' % libfile) for obj in objs: out.write(' ') out.write(obj) out.write('\n') - out.write(' @$(MKLIB) $(MKLIB_OPT) $(MKLIBOUTFLAG)%s' % libfile) + out.write('\t@$(AR) $(AR_FLAGS) $(AR_OUTFLAG)%s' % libfile) for obj in objs: out.write(' ') out.write(obj) out.write('\n') out.write('%s: %s\n\n' % (self.name, libfile)) +def comp_components(c1, c2): + id1 = _Name2Component[c1].id + id2 = _Name2Component[c2].id + if id1 < id2: return -1 + if id2 > id1: return 1 + return 0 + +# Sort components based on definition time +def sort_components(cnames): + return sorted(cnames, cmp=comp_components) + class ExeComponent(Component): def __init__(self, name, exe_name, path, deps): Component.__init__(self, name, EXE_KIND, path, deps) @@ -194,27 +207,28 @@ class ExeComponent(Component): Component.mk_makefile(self, out) # generate rule for exe - exefile = '%s.$(EXE)' % self.exe_name + exefile = '%s$(EXE_EXT)' % self.exe_name out.write('%s:' % exefile) - for dep in self.deps: + deps = sort_components(self.deps) + for dep in deps: c_dep = _Name2Component[dep] - out.write(' %s/%s.lib' % (c_dep.build_dir, c_dep.name)) + out.write(' %s/%s$(LIB_EXT)' % (c_dep.build_dir, c_dep.name)) objs = [] for cppfile in glob.glob(os.path.join(self.src_dir, '*.cpp')): cppfile = os.path.basename(cppfile) - objfile = '%s/%s.$(OBJ)' % (self.build_dir, os.path.splitext(cppfile)[0]) + objfile = '%s/%s$(OBJ_EXT)' % (self.build_dir, os.path.splitext(cppfile)[0]) objs.append(objfile) for obj in objs: out.write(' ') out.write(obj) out.write('\n') - out.write(' $(MKEXE) $(EXEOUTFLAG)%s $(EXEFLAGS_OPT)' % exefile) + out.write('\t$(LINK) $(LINK_OUT_FLAG)%s $(LINK_FLAGS)' % exefile) for obj in objs: out.write(' ') out.write(obj) - for dep in self.deps: + for dep in deps: c_dep = _Name2Component[dep] - out.write(' %s/%s.lib' % (c_dep.build_dir, c_dep.name)) + out.write(' %s/%s$(LIB_EXT)' % (c_dep.build_dir, c_dep.name)) out.write('\n') out.write('%s: %s\n\n' % (self.name, exefile)) diff --git a/src/api/smtparser.cpp b/src/api/smtparser.cpp index 55d49aa66..04f9ba619 100644 --- a/src/api/smtparser.cpp +++ b/src/api/smtparser.cpp @@ -46,7 +46,7 @@ Revision History: #include "str_hashtable.h" #include "front_end_params.h" #include "stopwatch.h" -front_end_params& Z3_API Z3_get_parameters(__in Z3_context c); +front_end_params& Z3_API Z3_get_parameters(Z3_context c); class id_param_info { symbol m_string; diff --git a/src/ast/ast_smt2_pp.cpp b/src/ast/ast_smt2_pp.cpp index c4044d0d4..dcc7a1a0d 100644 --- a/src/ast/ast_smt2_pp.cpp +++ b/src/ast/ast_smt2_pp.cpp @@ -30,49 +30,6 @@ using namespace format_ns; #define MAX_INDENT 16 #define SMALL_INDENT 2 -bool is_smt2_simple_symbol_char(char s) { - return - ('0' <= s && s <= '9') || - ('a' <= s && s <= 'z') || - ('A' <= s && s <= 'Z') || - s == '~' || s == '!' || s == '@' || s == '$' || s == '%' || s == '^' || s == '&' || - s == '*' || s == '_' || s == '-' || s == '+' || s == '=' || s == '<' || s == '>' || - s == '.' || s == '?' || s == '/'; -} - -bool is_smt2_quoted_symbol(char const * s) { - if (s == 0) - return false; - if ('0' <= s[0] && s[0] <= '9') - return true; - unsigned len = static_cast(strlen(s)); - for (unsigned i = 0; i < len; i++) - if (!is_smt2_simple_symbol_char(s[i])) - return true; - return false; -} - -bool is_smt2_quoted_symbol(symbol const & s) { - if (s.is_numerical()) - return false; - return is_smt2_quoted_symbol(s.bare_str()); -} - -std::string mk_smt2_quoted_symbol(symbol const & s) { - SASSERT(is_smt2_quoted_symbol(s)); - string_buffer<> buffer; - buffer.append('|'); - char const * str = s.bare_str(); - while (*str) { - if (*str == '|' || *str == '\\') - buffer.append('\\'); - buffer.append(*str); - str++; - } - buffer.append('|'); - return std::string(buffer.c_str()); -} - format * smt2_pp_environment::pp_fdecl_name(symbol const & s, unsigned & len) const { ast_manager & m = get_manager(); if (is_smt2_quoted_symbol(s)) { diff --git a/src/ast/ast_smt2_pp.h b/src/ast/ast_smt2_pp.h index a3550323a..048dd8d67 100644 --- a/src/ast/ast_smt2_pp.h +++ b/src/ast/ast_smt2_pp.h @@ -29,11 +29,7 @@ Revision History: #include"array_decl_plugin.h" #include"float_decl_plugin.h" #include"dl_decl_plugin.h" - -bool is_smt2_simple_symbol_char(char c); -bool is_smt2_quoted_symbol(char const * s); -bool is_smt2_quoted_symbol(symbol const & s); -std::string mk_smt2_quoted_symbol(symbol const & s); +#include"smt2_util.h" class smt2_pp_environment { protected: diff --git a/src/muz_qe/pdr_context.cpp b/src/muz_qe/pdr_context.cpp index b9ae51859..06df0ff7e 100644 --- a/src/muz_qe/pdr_context.cpp +++ b/src/muz_qe/pdr_context.cpp @@ -712,14 +712,14 @@ namespace pdr { pred_transformer& p = pt(); ast_manager& m = p.get_manager(); manager& pm = p.get_pdr_manager(); - TRACE("pdr", model_v2_pp(tout, model());); + TRACE("pdr", model_v2_pp(tout, get_model());); func_decl* f = p.head(); unsigned arity = f->get_arity(); expr_ref_vector args(m); func_decl_ref v(m); for (unsigned i = 0; i < arity; ++i) { v = pm.o2n(p.sig(i),0); - expr* e = model().get_const_interp(v); + expr* e = get_model().get_const_interp(v); if (e) { args.push_back(e); } diff --git a/src/muz_qe/pdr_context.h b/src/muz_qe/pdr_context.h index fe8bc8e90..e1bd42667 100644 --- a/src/muz_qe/pdr_context.h +++ b/src/muz_qe/pdr_context.h @@ -196,7 +196,7 @@ namespace pdr { pred_transformer& pt() const { return m_pt; } model_node* parent() const { return m_parent; } model* model_ptr() const { return m_model.get(); } - model const& model() const { return *m_model; } + model const& get_model() const { return *m_model; } unsigned index() const; bool is_closed() const { return m_closed; } diff --git a/src/muz_qe/pdr_quantifiers.cpp b/src/muz_qe/pdr_quantifiers.cpp index a4e6a0ac1..1a9a6e0e0 100644 --- a/src/muz_qe/pdr_quantifiers.cpp +++ b/src/muz_qe/pdr_quantifiers.cpp @@ -418,10 +418,10 @@ namespace pdr { // nodes from leaves that are repeated // inside the search tree don't have models. // - if (!(&node.model())) { + if (!(&node.get_model())) { return; } - m_current_rule = &pt.find_rule(node.model()); + m_current_rule = &pt.find_rule(node.get_model()); m_current_pt = &pt; m_current_node = &node; if (!m_current_rule) { diff --git a/src/muz_qe/pdr_util.cpp b/src/muz_qe/pdr_util.cpp index 1ec358fe1..3e1ebac46 100644 --- a/src/muz_qe/pdr_util.cpp +++ b/src/muz_qe/pdr_util.cpp @@ -908,9 +908,6 @@ bool model_evaluator::check_model(ptr_vector const& formulas) { m_cfg(m, p) {} }; - template class rewriter_tpl; - - void hoist_non_bool_if(expr_ref& fml) { ast_manager& m = fml.get_manager(); datalog::scoped_no_proof _sp(m); @@ -1039,3 +1036,8 @@ bool model_evaluator::check_model(ptr_vector const& formulas) { } } + +template class rewriter_tpl; + + + diff --git a/src/muz_qe/qe_lite.cpp b/src/muz_qe/qe_lite.cpp index d295327da..93a3dbfbf 100644 --- a/src/muz_qe/qe_lite.cpp +++ b/src/muz_qe/qe_lite.cpp @@ -498,7 +498,7 @@ public: unsigned j = 0; for (unsigned i = 0; i < vars.size(); ++i) { if (used.contains(vars.size()-i-1)) { - vars[j] = vars[i]; + vars.set(j, vars.get(i)); ++j; } } From c4898a67e37d2f59d016de04b1d6abd05e528cf3 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 13:42:57 -0700 Subject: [PATCH 37/54] checkpoint Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 2 +- scripts/mk_util.py | 25 ++++++++++++------------- src/test/{ => dead}/par_dll.cpp | 0 src/test/{ => dead}/parallel.cpp | 0 src/test/main.cpp | 1 - 5 files changed, 13 insertions(+), 15 deletions(-) rename src/test/{ => dead}/par_dll.cpp (100%) rename src/test/{ => dead}/parallel.cpp (100%) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index f5d2556a9..995d0df26 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -75,7 +75,7 @@ add_lib('portfolio', ['smtlogic_tactics', 'ufbv_strategy', 'fpa', 'aig', 'muz_qe add_lib('api', ['portfolio', 'user_plugin']) add_lib('array_property', ['ast', 'rewriter']) add_exe('shell', ['api', 'sat', 'extra_cmds'], exe_name='z3') -add_exe('test', ['api', 'fuzzing', 'array_property']) +add_exe('test', ['api', 'fuzzing', 'array_property'], exe_name='test-z3') # mk_vs_solution() diff --git a/scripts/mk_util.py b/scripts/mk_util.py index bab63d798..9e9cdacfa 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -59,6 +59,9 @@ _ComponentNames = sets.Set() _Name2Component = {} _Processed_Headers = sets.Set() +def get_cpp_files(path): + return filter(lambda f: f.endswith('.cpp'), os.listdir(path)) + def find_all_deps(name, deps): new_deps = [] for dep in deps: @@ -154,8 +157,7 @@ class Component: out.write(' -I%s' % _Name2Component[dep].to_src_dir) out.write('\n') mk_dir('%s/%s' % (BUILD_DIR, self.build_dir)) - for cppfile in glob.glob(os.path.join(self.src_dir, '*.cpp')): - cppfile = os.path.basename(cppfile) + for cppfile in get_cpp_files(self.src_dir): self.add_cpp_rules(out, include_defs, cppfile) class LibComponent(Component): @@ -166,8 +168,7 @@ class LibComponent(Component): Component.mk_makefile(self, out) # generate rule for lib objs = [] - for cppfile in glob.glob(os.path.join(self.src_dir, '*.cpp')): - cppfile = os.path.basename(cppfile) + for cppfile in get_cpp_files(self.src_dir): objfile = '%s/%s$(OBJ_EXT)' % (self.build_dir, os.path.splitext(cppfile)[0]) objs.append(objfile) @@ -184,14 +185,13 @@ class LibComponent(Component): out.write('\n') out.write('%s: %s\n\n' % (self.name, libfile)) +# Auxiliary function for sort_components def comp_components(c1, c2): id1 = _Name2Component[c1].id id2 = _Name2Component[c2].id - if id1 < id2: return -1 - if id2 > id1: return 1 - return 0 + return id2 - id1 -# Sort components based on definition time +# Sort components based on (reverse) definition time def sort_components(cnames): return sorted(cnames, cmp=comp_components) @@ -210,17 +210,16 @@ class ExeComponent(Component): exefile = '%s$(EXE_EXT)' % self.exe_name out.write('%s:' % exefile) deps = sort_components(self.deps) - for dep in deps: - c_dep = _Name2Component[dep] - out.write(' %s/%s$(LIB_EXT)' % (c_dep.build_dir, c_dep.name)) objs = [] - for cppfile in glob.glob(os.path.join(self.src_dir, '*.cpp')): - cppfile = os.path.basename(cppfile) + for cppfile in get_cpp_files(self.src_dir): objfile = '%s/%s$(OBJ_EXT)' % (self.build_dir, os.path.splitext(cppfile)[0]) objs.append(objfile) for obj in objs: out.write(' ') out.write(obj) + for dep in deps: + c_dep = _Name2Component[dep] + out.write(' %s/%s$(LIB_EXT)' % (c_dep.build_dir, c_dep.name)) out.write('\n') out.write('\t$(LINK) $(LINK_OUT_FLAG)%s $(LINK_FLAGS)' % exefile) for obj in objs: diff --git a/src/test/par_dll.cpp b/src/test/dead/par_dll.cpp similarity index 100% rename from src/test/par_dll.cpp rename to src/test/dead/par_dll.cpp diff --git a/src/test/parallel.cpp b/src/test/dead/parallel.cpp similarity index 100% rename from src/test/parallel.cpp rename to src/test/dead/parallel.cpp diff --git a/src/test/main.cpp b/src/test/main.cpp index cc3c59158..edeced68d 100644 --- a/src/test/main.cpp +++ b/src/test/main.cpp @@ -167,7 +167,6 @@ int main(int argc, char ** argv) { TST(interval_skip_list); TST(no_overflow); TST(memory); - TST(parallel); TST(get_implied_equalities); TST(arith_simplifier_plugin); TST(quant_elim); From 236a32c3d4d3a66cc340d3814aafb09c5f023e7d Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 14:41:26 -0700 Subject: [PATCH 38/54] checkpoint Signed-off-by: Leonardo de Moura --- Makefile.in | 383 ------------ configure.ac | 205 +++++++ scripts/config-debug.mk.in | 14 + scripts/config-release.mk.in | 14 + scripts/dependencies.py | 20 - scripts/mk_util.py | 24 +- .../update-version.sh | 0 update_api.txt => scripts/update_api.txt | 0 configure.in => src/dead/configure.in | 0 z3-prover.sln | 561 ------------------ 10 files changed, 256 insertions(+), 965 deletions(-) delete mode 100644 Makefile.in create mode 100644 configure.ac create mode 100644 scripts/config-debug.mk.in create mode 100644 scripts/config-release.mk.in rename update-version.sh => scripts/update-version.sh (100%) rename update_api.txt => scripts/update_api.txt (100%) rename configure.in => src/dead/configure.in (100%) delete mode 100644 z3-prover.sln diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index f53afdee7..000000000 --- a/Makefile.in +++ /dev/null @@ -1,383 +0,0 @@ - -SHELL=/bin/sh -SED=sed -AWK=awk -DOS2UNIX=@D2U@ - -@SET_MAKE@ - -##### Configuration ##### -CXX=@CXX@ -CPPFLAGS_CORE=@CPPFLAGS@ -I lib -fopenmp -msse -msse2 -mfpmath=sse -CXXFLAGS_CORE=@CXXFLAGS@ -ifeq ($(MODE),) -Z3_BUILD_MODE=external -else -Z3_BUILD_MODE=$(MODE) -endif -LIBS=@LIBS@ -## -lrt is for timer_create and timer_settime -LDFLAGS=@LDFLAGS@ -lpthread -fopenmp -LDFLAGS_EXTRA= -PREFIX=@prefix@ -HAS_PYTHON=@HAS_PYTHON@ -PYTHON_PACKAGE_DIR=@PYTHON_PACKAGE_DIR@ -PYTHON=@PYTHON@ -######################### - -Z3=z3 -TEST_CAPI=test_capi -TEST=test - -BIN_DIR=bin/$(Z3_BUILD_MODE) -OBJ_DIR=obj/$(Z3_BUILD_MODE) -SED_OBJ_DIR=obj\/$(Z3_BUILD_MODE) -OBJ_TEST_DIR=obj-test/$(Z3_BUILD_MODE) -SED_OBJ_TEST_DIR=obj-test\/$(Z3_BUILD_MODE) - -MAJ=$(shell grep 'Z3_MAJOR_VERSION' lib/version.h | cut -d ' ' -f 4) -MIN=$(shell grep 'Z3_MINOR_VERSION' lib/version.h | cut -d ' ' -f 4) -Z3_VERSION=$(MAJ).$(MIN) - -PLATFORM=@PLATFORM@ - - -ifeq ($(Z3_BUILD_MODE),release) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -CXXFLAGS=-O3 -fomit-frame-pointer $(CXXFLAGS_CORE) -else -ifeq ($(Z3_BUILD_MODE),smtcomp07) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -DSMTCOMP -CXXFLAGS=-O3 -fomit-frame-pointer $(CXXFLAGS_CORE) -# doesn't work on cygwin -LDFLAGS_EXTRA=@STATIC_FLAGS@ -else -ifeq ($(Z3_BUILD_MODE),external) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -D_EXTERNAL_RELEASE -CXXFLAGS=-O3 -fomit-frame-pointer $(CXXFLAGS_CORE) -# doesn't work on cygwin -LDFLAGS_EXTRA=@STATIC_FLAGS@ -else -ifeq ($(Z3_BUILD_MODE),debug) -CPPFLAGS=$(CPPFLAGS_CORE) -DZ3DEBUG -D_TRACE -CXXFLAGS=-g -Wall $(CXXFLAGS_CORE) -else -ifeq ($(Z3_BUILD_MODE),debugopt) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -DZ3DEBUG -D_TRACE -CXXFLAGS=-g -O1 $(CXXFLAGS_CORE) -else -ifeq ($(Z3_BUILD_MODE),trace) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -D_TRACE -CXXFLAGS=-g -O1 $(CXXFLAGS_CORE) -else -ifeq ($(Z3_BUILD_MODE),profile) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -CXXFLAGS=-g -pg -O2 $(CXXFLAGS_CORE) -LDFLAGS_EXTRA=-pg -else -ifeq ($(Z3_BUILD_MODE),gcov) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -CXXFLAGS=-g -fprofile-arcs -ftest-coverage -O2 $(CXXFLAGS_CORE) -LDFLAGS_EXTRA=-fprofile-arcs -ftest-coverage -else -ifeq ($(Z3_BUILD_MODE),external_parallel) -CPPFLAGS=$(CPPFLAGS_CORE) -DNDEBUG -D_EXTERNAL_RELEASE -D_Z3_BUILD_PARALLEL_SMT -CXXFLAGS=-O3 -fomit-frame-pointer $(CXXFLAGS_CORE) -# doesn't work on cygwin -LDFLAGS_EXTRA=@STATIC_FLAGS@ -else -ifeq ($(Z3_BUILD_MODE),debug_parallel) -CPPFLAGS=$(CPPFLAGS_CORE) -DZ3DEBUG -D_TRACE -D_Z3_BUILD_PARALLEL_SMT -CXXFLAGS=-g -Wall $(CXXFLAGS_CORE) -else -$(error INVALID BUILD MODE = $(Z3_BUILD_MODE)) -endif -endif -endif -endif -endif -endif -endif -endif -endif -endif - -LIBFLAGS=@SLIBFLAGS@ - -################################ -# -# Extract the source files from -# the MSVC++ project files. -# -# lib.vcproj ===> lib.srcs -# shell.vcproj ===> shell.srcs -# -################################ - -main: $(BIN_DIR)/$(Z3) - -lib.srcs: lib/lib.vcxproj - @echo Making 'lib.srcs'... - @cp $< lib0.srcs - @chmod +rw lib0.srcs - @$(DOS2UNIX) lib0.srcs - @$(AWK) '/cpp\"/{ print $$0 }' lib0.srcs > lib1.srcs - @$(SED) 's|\"||g;s|||g;s|Include=|lib/|g' lib1.srcs > lib2.srcs - @$(AWK) 'BEGIN { printf ("LIB_SRCS= "); } { printf($$1 " ") } END { print ""; }' lib2.srcs > $@ - @rm -f lib0.srcs - @rm -f lib1.srcs - @rm -f lib2.srcs - -shell.srcs: shell/shell.vcxproj - @echo Making 'shell.srcs'... - @cp $< shell0.srcs - @chmod +rw shell0.srcs - @$(DOS2UNIX) shell0.srcs - @$(AWK) '/cpp\"/{ print $$0 }' shell0.srcs > shell1.srcs - @$(SED) 's|\"||g;s|||g;s|Include=|shell/|g' shell1.srcs > shell2.srcs - @$(AWK) 'BEGIN { printf ("SHELL_SRCS= "); } { printf($$1 " ") } END { print ""; }' shell2.srcs > $@ - @rm -f shell0.srcs - @rm -f shell1.srcs - @rm -f shell2.srcs - -test.srcs: test/test.vcxproj - @echo Making 'test.srcs'... - @cp $< test0.srcs - @chmod +rw test0.srcs - @$(DOS2UNIX) test0.srcs - @$(AWK) '/cpp\"/{ print $$0 }' test0.srcs > test1.srcs - @$(SED) 's|\"||g;s|||g;s|Include=|test/|g' test1.srcs > test2.srcs - @$(AWK) 'BEGIN { printf ("TEST_SRCS= "); } { printf($$1 " ") } END { print ""; }' test2.srcs > $@ - @rm -f test0.srcs - @rm -f test1.srcs - @rm -f test2.srcs - - -include lib.srcs -include shell.srcs -include test.srcs - -LIB_SRCS+=@EXTRA_LIB_SRCS@ -LIB_OBJS=$(LIB_SRCS:lib/%.cpp=$(OBJ_DIR)/%.o) -SHELL_OBJS=$(SHELL_SRCS:shell/%.cpp=$(OBJ_DIR)/%.o) - -OBJS=$(LIB_OBJS) $(SHELL_OBJS) -TEST_CAPI_OBJS=$(OBJ_DIR)/test_capi.o $(LIB_OBJS) -TEST_OBJS=$(TEST_SRCS:test/%.cpp=$(OBJ_TEST_DIR)/%.o) - -$(BIN_DIR)/$(Z3): $(OBJ_DIR) $(BIN_DIR) $(OBJS) - @mkdir -p $(BIN_DIR) - $(CXX) -o $(BIN_DIR)/$(Z3) $(OBJS) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LIBS) - -$(BIN_DIR)/$(TEST): $(OBJ_DIR) $(BIN_DIR) $(LIB_OBJS) $(TEST_OBJS) - @mkdir -p $(BIN_DIR) - $(CXX) -o $(BIN_DIR)/$(TEST) $(LIB_OBJS) $(TEST_OBJS) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LIBS) - -$(BIN_DIR)/$(TEST_CAPI): $(OBJ_DIR) $(BIN_DIR) $(TEST_CAPI_OBJS) - @mkdir -p $(BIN_DIR) - $(CXX) -o $(BIN_DIR)/$(TEST_CAPI) $(TEST_CAPI_OBJS) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LIBS) - -$(BIN_DIR)/lib$(Z3).@SO_EXT@: $(OBJ_DIR) $(BIN_DIR) $(LIB_OBJS) - @mkdir -p $(BIN_DIR) - $(CXX) -o $(BIN_DIR)/lib$(Z3).@SO_EXT@ $(LIB_OBJS) $(LIBFLAGS) $(LIBS) @COMP_VERSIONS@ - -$(BIN_DIR)/lib$(Z3).a: $(OBJ_DIR) $(BIN_DIR) $(LIB_OBJS) - @mkdir -p $(BIN_DIR) - ar -cvr $(BIN_DIR)/lib$(Z3).a $(LIB_OBJS) - -$(BIN_DIR): - mkdir -p $(BIN_DIR) - -$(OBJ_DIR): - mkdir -p $(OBJ_DIR) - -$(OBJ_TEST_DIR): - mkdir -p $(OBJ_TEST_DIR) - -smtcomp07: $(BIN_DIR)/$(Z3) - rm -r -f z3 - mkdir z3 - cp $(BIN_DIR)/$(Z3) z3/run - strip z3/run - cp doc/MAGIC_NUMBER z3/ - cp doc/README-SMTCOMP07 z3/README - cp doc/NOTICES-SMTCOMP07 z3/NOTICES - cp doc/z3.pdf z3/ - tar -czf z3.tar.gz z3 - -test_capi: $(BIN_DIR)/$(TEST_CAPI) - -@SO_EXT@: $(BIN_DIR)/lib$(Z3).@SO_EXT@ - -a: $(BIN_DIR)/lib$(Z3).a - -test: $(BIN_DIR)/$(TEST) - -################################ -# -# Grobner -# -################################ -lib/grobner_main.cpp: test/igrobner.cpp - cp test/igrobner.cpp lib/grobner_main.cpp - chmod +rw lib/grobner_main.cpp - -$(OBJ_DIR)/grobner_main.o: lib/grobner_main.cpp - @mkdir -p $(OBJ_DIR) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -DGB_APP -c -o $@ $< - -################################ -# -# .cpp ===> .o -# -################################ - -$(OBJ_DIR)/%.o : lib/%.cpp - @mkdir -p $(OBJ_DIR) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -$(OBJ_TEST_DIR)/%.o : test/%.cpp - @mkdir -p $(OBJ_TEST_DIR) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -$(OBJ_DIR)/%.o : shell/%.cpp - @mkdir -p $(OBJ_DIR) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< - -$(OBJ_DIR)/%.o : test_capi/%.c - @mkdir -p $(OBJ_DIR) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -I ../lib -c -o $@ $< - -################################ -# -# Dependency files -# -# .cpp ===> .d -# -################################ - -$(OBJ_DIR)/%.d: lib/%.cpp - @echo Making dependency file \'$@\' ... - @mkdir -p $(OBJ_DIR) - @$(SHELL) -ec '$(CXX) -MM $(CPPFLAGS) $< | $(SED) '\''s/\($*\)\.o[ :]*/$(SED_OBJ_DIR)\/\1.o $(SED_OBJ_DIR)\/\1.d : /g'\'' > $@; [ -s $@ ] || rm -f $@' - -$(OBJ_DIR)/%.d: shell/%.cpp - @echo Making dependency file \'$@\' ... - @mkdir -p $(OBJ_DIR) - @$(SHELL) -ec '$(CXX) -MM $(CPPFLAGS) $< | $(SED) '\''s/\($*\)\.o[ :]*/$(SED_OBJ_DIR)\/\1.o $(SED_OBJ_DIR)\/\1.d : /g'\'' > $@; [ -s $@ ] || rm -f $@' - -$(OBJ_TEST_DIR)/%.d: test/%.cpp - @echo Making dependency file \'$@\' ... - @mkdir -p $(OBJ_TEST_DIR) - @$(SHELL) -ec '$(CXX) -MM $(CPPFLAGS) $< | $(SED) '\''s/\($*\)\.o[ :]*/$(SED_OBJ_TEST_DIR)\/\1.o $(SED_OBJ_TEST_DIR)\/\1.d : /g'\'' > $@; [ -s $@ ] || rm -f $@' - - -include $(LIB_SRCS:lib/%.cpp=$(OBJ_DIR)/%.d) -include $(SHELL_SRCS:shell/%.cpp=$(OBJ_DIR)/%.d) -include $(TEST_SRCS:test/%.cpp=$(OBJ_TEST_DIR)/%.d) - -################################ -# -# Cleanup -# -################################ -.PHONY: clean - -clean: - rm -f $(BIN_DIR)/$(Z3) - rm -f $(OBJ_DIR)/* - rm -f lib.srcs - rm -f shell.srcs - find . -name '*.bb' -exec rm -f '{}' ';' - find . -name '*.bbg' -exec rm -f '{}' ';' - find . -name '*.da' -exec rm -f '{}' ';' - find . -name '*.gcov' -exec rm -f '{}' ';' - find . -name 'cachegrind*' -exec rm -f '{}' ';' - find . -name 'a.out' -exec rm -f '{}' ';' - find . -name 'a.exe' -exec rm -f '{}' ';' - find . -name 'core' -exec rm -f '{}' ';' - -################################ -# -# Support -# -################################ - -Makefile: Makefile.in config.status - ./config.status - make - -config.status: configure - ./config.status --recheck - -################################ -# -# checkgmake -# -################################ -.PHONY: checkgmake - -checkgmake: - @ ./gmaketest --make=$(MAKE) || \ - (echo "Z3 needs GNU-Make to be built"; exit 1) - -################################ -# -# installation/uninstallation -# -################################ - -install: $(BIN_DIR)/$(Z3) $(BIN_DIR)/lib$(Z3).@SO_EXT@ $(BIN_DIR)/lib$(Z3).a - @mkdir -p $(PREFIX)/bin - @mkdir -p $(PREFIX)/lib - @mkdir -p $(PREFIX)/include - @cp $(BIN_DIR)/$(Z3) $(PREFIX)/bin - @cp $(BIN_DIR)/lib$(Z3).@SO_EXT@ $(PREFIX)/lib - @cp $(BIN_DIR)/lib$(Z3).a $(PREFIX)/lib - @cp lib/z3_api.h $(PREFIX)/include - @cp lib/z3.h $(PREFIX)/include - @cp lib/z3_v1.h $(PREFIX)/include - @cp lib/z3_macros.h $(PREFIX)/include - @cp lib/z3_internal.h $(PREFIX)/include - @cp lib/z3_internal_types.h $(PREFIX)/include - @cp lib/z3_poly.h $(PREFIX)/include - @cp c++/z3++.h $(PREFIX)/include - -uninstall: - @rm -f $(PREFIX)/bin/$(Z3) - @rm -f $(PREFIX)/lib/lib$(Z3).@SO_EXT@ - @rm -f $(PREFIX)/lib/lib$(Z3).a - @rm -f $(PREFIX)/include/z3_api.h - @rm -f $(PREFIX)/include/z3.h - @rm -f $(PREFIX)/include/z3_v1.h - @rm -f $(PREFIX)/include/z3_macros.h - @rm -f $(PREFIX)/include/z3++.h - @rm -f $(PREFIX)/include/z3_internal.h - @rm -f $(PREFIX)/include/z3_internal_types.h - @rm -f $(PREFIX)/include/z3_poly.h - -install-z3py: $(BIN_DIR)/lib$(Z3).@SO_EXT@ - @if test $(HAS_PYTHON) -eq 0; then echo "Python is not available in your system."; exit 1; fi - @echo "Installing Python bindings at $(PYTHON_PACKAGE_DIR)." - @$(PYTHON) python/example.py > /dev/null - @cp python/z3.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3core.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3types.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3consts.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3tactics.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3printer.pyc $(PYTHON_PACKAGE_DIR) - @cp python/z3poly.pyc $(PYTHON_PACKAGE_DIR) - @cp $(BIN_DIR)/lib$(Z3).@SO_EXT@ $(PYTHON_PACKAGE_DIR) - @if python python/z3test.py; then echo "Z3Py was successfully installed."; else echo "Failed to execute Z3Py regressions..."; exit 1; fi - -uninstall-z3py: - @if test $(HAS_PYTHON) -eq 0; then echo "Python is not available in your system."; exit 1; fi - @echo "Uninstalling Python bindings from $(PYTHON_PACKAGE_DIR)." - @rm -f $(PYTHON_PACKAGE_DIR)/z3.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3core.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3types.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3consts.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3tactics.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3printer.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/z3poly.pyc - @rm -f $(PYTHON_PACKAGE_DIR)/$(BIN_DIR)/lib$(Z3).@SO_EXT@ diff --git a/configure.ac b/configure.ac new file mode 100644 index 000000000..07ef64102 --- /dev/null +++ b/configure.ac @@ -0,0 +1,205 @@ +AC_INIT([z3], [4.2]) + +################### +# +# Testing python +# +################### +AC_ARG_WITH(python, +[AS_HELP_STRING([--with-python=PYTHON_PATH], + [specify the location of the python 2.x executable.])]) + +PYTHON="python" +if test "x$with_python" != x; then + PYTHON="$with_python" +fi + +AC_SUBST(PYTHON) + +cat > tst_python.py <= "3": + exit(1) +exit(0) +EOF + +if $PYTHON tst_python.py; then + HAS_PYTHON="1" + HAS_PYTHON_MSG="yes" +cat > get_py_dir.py << EOF +import distutils.sysconfig +print distutils.sysconfig.get_python_lib() +EOF + if $PYTHON get_py_dir.py > dir.txt; then + PYTHON_PACKAGE_DIR=`cat dir.txt` + else + HAS_PYTHON="0" + HAS_PYTHON_MSG="no" + fi + rm -f dir.txt + rm -f get_py_dir.py +else + HAS_PYTHON="0" + HAS_PYTHON_MSG="no" +fi +AC_SUBST(PYTHON_PACKAGE_DIR) +AC_SUBST(HAS_PYTHON) +rm -f tst_python.py + +################### +# +# Configuring bignum package +# +################### +# Select big num package +ARITH="internal" +AC_ARG_WITH([gmp], [AS_HELP_STRING([--with-gmp], [Use GMP for multi-precision naturals (default=no)])], [use_gmp=yes], [use_gmp=no]) +AS_IF([test "$use_gmp" = "yes"],[ + ARITH="gmp" + CPPFLAGS="$CPPFLAGS -D_MP_GMP" +],[ + CPPFLAGS="$CPPFLAGS -D_MP_INTERNAL" +]) +AC_SUBST(EXTRA_LIB_SRCS) + +if test "$ARITH" = "gmp"; then + AC_CHECK_LIB(gmp, __gmpz_init, , + [AC_MSG_ERROR([GNU MP not found, see http://gmplib.org/])]) + AC_CHECK_HEADER([gmp.h], GMP='gmp', AC_MSG_ERROR([GMP include file not found])) + AC_SUBST(LIBS) + echo $CPPFLAGS +fi + +################### +# +# Basic configuration +# +################### +# Sets CXX +AC_PROG_CXX(g++) + +AC_PROG_MAKE_SET + +AC_LANG_CPLUSPLUS + +# Sets GREP +AC_PROG_GREP + +# Sets SED +AC_PROG_SED + +# Sets OPENMP_CFLAGS +AC_OPENMP + +AR=ar +AC_SUBST(AR) + +################### +# +# Platform characteristics +# +################### +host_os=`uname -s` + +AS_IF([test "$host_os" = "Darwin"], [ + PLATFORM=osx + SO_EXT=dylib + SLIBFLAGS="-dynamiclib -fopenmp" + COMP_VERSIONS="-compatibility_version \$(Z3_VERSION) -current_version \$(Z3_VERSION)" + STATIC_FLAGS= +], [test "$host_os" = "Linux"], [ + PLATFORM=linux + SO_EXT=so + SLIBFLAGS="-shared -fopenmp" + COMP_VERSIONS= + STATIC_FLAGS=-static +], [test "${host_os:0:6}" = "CYGWIN"], [ + PLATFORM=win + SO_EXT=dll + LDFLAGS= + SLIBFLAGS="-shared -fopenmp" + COMP_VERSIONS= + STATIC_FLAGS=-static + CXXFLAGS+=" -D_CYGWIN" +], +[ + AC_MSG_ERROR([Unknown host platform: $host_os]) +]) + +################### +# +# Checking if 32 or 64 bits +# +################### +AC_CHECK_SIZEOF(int *) + +if test $ac_cv_sizeof_int_p -eq 8; then + dnl In 64-bit systems we have to compile using -fPIC + CXXFLAGS="-fPIC" + CPPFLAGS="$CPPFLAGS -D_AMD64_" + dnl Only enable use of thread local storage for 64-bit Linux. It is disabled for OSX and 32-bit Linux + if test $PLATFORM = "linux"; then + CPPFLAGS="$CPPFLAGS -D_USE_THREAD_LOCAL" + fi + EXTRA_LIBS="" + IS_X64="yes" +else + CXXFLAGS="" + IS_X64="no" +fi + +################### +# +# Generating configuration +# +################### +AC_OUTPUT(scripts/config-debug.mk scripts/config-release.mk) + +################### +# +# Checking how to build Z3 +# +################### + +if test "$HAS_PYTHON" = "0"; then + if test -d build/Makefile; then + # Python is not installed, but Makefile was pre generated + # Just copy configuration and terminate + cp scripts/config-release.mk build/config.mk +cat <[ \t]*") - # We should generate and error for any occurrence of #include that does not match the previous pattern. - non_std_inc_pat = re.compile(".*#include.*") - - f = open(fname, 'r') - linenum = 1 - for line in f: - m1 = std_inc_pat.match(line) - if m1: - result.append(m1.group(1)) - elif not system_inc_pat.match(line) and non_std_inc_pat.match(line): - raise MKException("Invalid #include directive at '%s':%s" % (fname, line)) - linenum = linenum + 1 - return result # Return src_dir/path/fname def mk_full_fname(src_dir, path, fname): diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 9e9cdacfa..8f24fccef 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -9,7 +9,7 @@ import os import glob import sets -from dependencies import * +import re from mk_exception import * BUILD_DIR='build' @@ -27,6 +27,28 @@ SHOW_CPPS = True LIB_KIND = 0 EXE_KIND = 1 +# Return a list containing a file names included using '#include' in +# the given C/C++ file named fname. +def extract_c_includes(fname): + result = [] + # We look for well behaved #include directives + std_inc_pat = re.compile("[ \t]*#include[ \t]*\"(.*)\"[ \t]*") + system_inc_pat = re.compile("[ \t]*#include[ \t]*\<.*\>[ \t]*") + # We should generate and error for any occurrence of #include that does not match the previous pattern. + non_std_inc_pat = re.compile(".*#include.*") + + f = open(fname, 'r') + linenum = 1 + for line in f: + m1 = std_inc_pat.match(line) + if m1: + result.append(m1.group(1)) + elif not system_inc_pat.match(line) and non_std_inc_pat.match(line): + raise MKException("Invalid #include directive at '%s':%s" % (fname, line)) + linenum = linenum + 1 + return result + + # Given a path dir1/subdir2/subdir3 returns ../../.. def reverse_path(p): l = p.split('/') diff --git a/update-version.sh b/scripts/update-version.sh similarity index 100% rename from update-version.sh rename to scripts/update-version.sh diff --git a/update_api.txt b/scripts/update_api.txt similarity index 100% rename from update_api.txt rename to scripts/update_api.txt diff --git a/configure.in b/src/dead/configure.in similarity index 100% rename from configure.in rename to src/dead/configure.in diff --git a/z3-prover.sln b/z3-prover.sln deleted file mode 100644 index 1b016a5e9..000000000 --- a/z3-prover.sln +++ /dev/null @@ -1,561 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{012E9D8D-46CF-4536-9F34-7260C08C1E3C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lib", "lib\lib.vcxproj", "{4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shell", "shell\shell.vcxproj", "{BF547582-F16D-4BE5-B9AB-8B6A9364B447}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test", "test\test.vcxproj", "{21A10ECD-32E2-4F27-A03D-81D855A048CC}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_capi", "test_capi\test_capi.vcxproj", "{9E76526D-EDA2-4B88-9616-A8FC08F31071}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dll", "dll\dll.vcxproj", "{0BF8CB94-61C7-4545-AE55-C58D858AA8B6}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Z3V3", "Microsoft.Z3V3\Microsoft.Z3V3.vcxproj", "{F008F2C4-D652-4A58-8DEF-DB83E2355454}" - ProjectSection(ProjectDependencies) = postProject - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} = {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "maxsat", "maxsat\maxsat.vcxproj", "{7C154132-AAAB-4F60-B652-F8C51A63D244}" - ProjectSection(ProjectDependencies) = postProject - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E} = {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E} - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} = {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Z3", "Microsoft.Z3\Microsoft.Z3.csproj", "{EC3DB697-B734-42F7-9468-5B62821EEB5A}" - ProjectSection(ProjectDependencies) = postProject - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} = {0BF8CB94-61C7-4545-AE55-C58D858AA8B6} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test_mapi", "Microsoft.Z3\test_mapi\test_mapi.csproj", "{D350BC78-8455-45D3-9759-073394378BF2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - commercial|Any CPU = commercial|Any CPU - commercial|Mixed Platforms = commercial|Mixed Platforms - commercial|Win32 = commercial|Win32 - commercial|x64 = commercial|x64 - commercial|x86 = commercial|x86 - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - external|Any CPU = external|Any CPU - external|Mixed Platforms = external|Mixed Platforms - external|Win32 = external|Win32 - external|x64 = external|x64 - external|x86 = external|x86 - Release_delaysign|Any CPU = Release_delaysign|Any CPU - Release_delaysign|Mixed Platforms = Release_delaysign|Mixed Platforms - Release_delaysign|Win32 = Release_delaysign|Win32 - Release_delaysign|x64 = Release_delaysign|x64 - Release_delaysign|x86 = Release_delaysign|x86 - release_mt|Any CPU = release_mt|Any CPU - release_mt|Mixed Platforms = release_mt|Mixed Platforms - release_mt|Win32 = release_mt|Win32 - release_mt|x64 = release_mt|x64 - release_mt|x86 = release_mt|x86 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - Setup|Any CPU = Setup|Any CPU - Setup|Mixed Platforms = Setup|Mixed Platforms - Setup|Win32 = Setup|Win32 - Setup|x64 = Setup|x64 - Setup|x86 = Setup|x86 - Trace|Any CPU = Trace|Any CPU - Trace|Mixed Platforms = Trace|Mixed Platforms - Trace|Win32 = Trace|Win32 - Trace|x64 = Trace|x64 - Trace|x86 = Trace|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|Any CPU.ActiveCfg = commercial|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|Mixed Platforms.ActiveCfg = commercial|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|Mixed Platforms.Build.0 = commercial|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|Win32.ActiveCfg = commercial|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|Win32.Build.0 = commercial|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|x64.ActiveCfg = commercial|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|x64.Build.0 = commercial|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.commercial|x86.ActiveCfg = commercial|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Any CPU.Build.0 = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Win32.ActiveCfg = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|Win32.Build.0 = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|x64.ActiveCfg = Debug|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|x64.Build.0 = Debug|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|x86.ActiveCfg = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Debug|x86.Build.0 = Debug|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Any CPU.ActiveCfg = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Any CPU.Build.0 = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Mixed Platforms.ActiveCfg = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Mixed Platforms.Build.0 = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Win32.ActiveCfg = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|Win32.Build.0 = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|x64.ActiveCfg = external|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|x64.Build.0 = external|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.external|x86.ActiveCfg = external|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|Any CPU.ActiveCfg = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|Mixed Platforms.Build.0 = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|Win32.ActiveCfg = release_mt|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|x64.ActiveCfg = Release|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|x64.Build.0 = Release|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Any CPU.ActiveCfg = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Any CPU.Build.0 = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Mixed Platforms.ActiveCfg = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Mixed Platforms.Build.0 = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|Win32.Build.0 = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|x64.ActiveCfg = release_mt|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.release_mt|x86.ActiveCfg = release_mt|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Any CPU.ActiveCfg = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Any CPU.Build.0 = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Mixed Platforms.Build.0 = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Win32.ActiveCfg = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|Win32.Build.0 = Release|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|x64.ActiveCfg = Release|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|x64.Build.0 = Release|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Release|x86.ActiveCfg = Release|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|Any CPU.ActiveCfg = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|Mixed Platforms.ActiveCfg = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|Mixed Platforms.Build.0 = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|Win32.ActiveCfg = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|x64.ActiveCfg = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|x64.Build.0 = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Setup|x86.ActiveCfg = Trace|x64 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|Any CPU.ActiveCfg = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|Mixed Platforms.ActiveCfg = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|Mixed Platforms.Build.0 = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|Win32.ActiveCfg = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|Win32.Build.0 = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|x64.ActiveCfg = Trace|Win32 - {4A7E5A93-19D8-4382-8950-FB2EDEC7A76E}.Trace|x86.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|Any CPU.ActiveCfg = commercial|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|Mixed Platforms.ActiveCfg = commercial|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|Mixed Platforms.Build.0 = commercial|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|Win32.ActiveCfg = commercial|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|Win32.Build.0 = commercial|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|x64.ActiveCfg = commercial|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|x64.Build.0 = commercial|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.commercial|x86.ActiveCfg = commercial|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Any CPU.Build.0 = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Win32.ActiveCfg = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|Win32.Build.0 = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|x64.ActiveCfg = Debug|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|x64.Build.0 = Debug|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|x86.ActiveCfg = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Debug|x86.Build.0 = Debug|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Any CPU.ActiveCfg = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Any CPU.Build.0 = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Mixed Platforms.ActiveCfg = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Mixed Platforms.Build.0 = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Win32.ActiveCfg = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|Win32.Build.0 = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|x64.ActiveCfg = external|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|x64.Build.0 = external|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.external|x86.ActiveCfg = external|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|Any CPU.ActiveCfg = release_mt|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|Mixed Platforms.Build.0 = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|Win32.ActiveCfg = release_mt|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|x64.ActiveCfg = Release|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|x64.Build.0 = Release|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Any CPU.ActiveCfg = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Any CPU.Build.0 = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Mixed Platforms.ActiveCfg = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Mixed Platforms.Build.0 = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|Win32.Build.0 = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|x64.ActiveCfg = release_mt|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.release_mt|x86.ActiveCfg = release_mt|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Any CPU.ActiveCfg = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Any CPU.Build.0 = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Mixed Platforms.Build.0 = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Win32.ActiveCfg = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|Win32.Build.0 = Release|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|x64.ActiveCfg = Release|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|x64.Build.0 = Release|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Release|x86.ActiveCfg = Release|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|Any CPU.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|Mixed Platforms.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|Mixed Platforms.Build.0 = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|Win32.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|x64.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|x64.Build.0 = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Setup|x86.ActiveCfg = Trace|x64 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|Any CPU.ActiveCfg = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|Mixed Platforms.ActiveCfg = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|Mixed Platforms.Build.0 = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|Win32.ActiveCfg = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|Win32.Build.0 = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|x64.ActiveCfg = Trace|Win32 - {BF547582-F16D-4BE5-B9AB-8B6A9364B447}.Trace|x86.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.commercial|Any CPU.ActiveCfg = commercial|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.commercial|Mixed Platforms.ActiveCfg = commercial|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.commercial|Win32.ActiveCfg = commercial|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.commercial|x64.ActiveCfg = commercial|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.commercial|x86.ActiveCfg = commercial|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Any CPU.Build.0 = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Win32.ActiveCfg = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|Win32.Build.0 = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|x64.ActiveCfg = Debug|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|x64.Build.0 = Debug|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|x86.ActiveCfg = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Debug|x86.Build.0 = Debug|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.external|Any CPU.ActiveCfg = external|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.external|Mixed Platforms.ActiveCfg = external|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.external|Win32.ActiveCfg = external|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.external|x64.ActiveCfg = external|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.external|x86.ActiveCfg = external|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|Any CPU.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|Win32.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|x64.ActiveCfg = release_mt|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|x64.Build.0 = release_mt|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.release_mt|Any CPU.ActiveCfg = release_mt|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.release_mt|Mixed Platforms.ActiveCfg = release_mt|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.release_mt|x64.ActiveCfg = release_mt|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.release_mt|x86.ActiveCfg = release_mt|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|Any CPU.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|Mixed Platforms.Build.0 = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|Win32.ActiveCfg = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|Win32.Build.0 = Release|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|x64.ActiveCfg = Release|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|x64.Build.0 = Release|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Release|x86.ActiveCfg = Release|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|Any CPU.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|Mixed Platforms.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|Mixed Platforms.Build.0 = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|Win32.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|x64.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|x64.Build.0 = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Setup|x86.ActiveCfg = Trace|x64 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|Any CPU.ActiveCfg = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|Mixed Platforms.ActiveCfg = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|Mixed Platforms.Build.0 = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|Win32.ActiveCfg = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|Win32.Build.0 = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|x64.ActiveCfg = Trace|Win32 - {21A10ECD-32E2-4F27-A03D-81D855A048CC}.Trace|x86.ActiveCfg = Trace|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.commercial|Any CPU.ActiveCfg = commercial|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.commercial|Mixed Platforms.ActiveCfg = commercial|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.commercial|Win32.ActiveCfg = commercial|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.commercial|x64.ActiveCfg = commercial|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.commercial|x86.ActiveCfg = commercial|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|Win32.ActiveCfg = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|Win32.Build.0 = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|x64.ActiveCfg = Debug|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|x64.Build.0 = Debug|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|x86.ActiveCfg = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Debug|x86.Build.0 = Debug|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Any CPU.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Mixed Platforms.ActiveCfg = external|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Mixed Platforms.Build.0 = external|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Win32.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|Win32.Build.0 = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|x64.ActiveCfg = external|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|x64.Build.0 = external|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.external|x86.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|Any CPU.ActiveCfg = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|Win32.ActiveCfg = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|x64.ActiveCfg = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|x64.Build.0 = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.release_mt|Any CPU.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.release_mt|Mixed Platforms.ActiveCfg = release_mt|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.release_mt|x64.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.release_mt|x86.ActiveCfg = release_mt|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|Any CPU.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|Mixed Platforms.Build.0 = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|Win32.ActiveCfg = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|Win32.Build.0 = Release|Win32 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|x64.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|x64.Build.0 = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Release|x86.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Setup|Any CPU.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Setup|Mixed Platforms.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Setup|Win32.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Setup|x64.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Setup|x86.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Trace|Any CPU.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Trace|Mixed Platforms.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Trace|Win32.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Trace|x64.ActiveCfg = Release|x64 - {9E76526D-EDA2-4B88-9616-A8FC08F31071}.Trace|x86.ActiveCfg = Release|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.commercial|Any CPU.ActiveCfg = commercial|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.commercial|Mixed Platforms.ActiveCfg = commercial|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.commercial|Win32.ActiveCfg = commercial|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.commercial|x64.ActiveCfg = commercial|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.commercial|x86.ActiveCfg = commercial|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|Win32.ActiveCfg = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|Win32.Build.0 = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|x64.ActiveCfg = Debug|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|x64.Build.0 = Debug|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|x86.ActiveCfg = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Debug|x86.Build.0 = Debug|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Any CPU.ActiveCfg = external|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Mixed Platforms.ActiveCfg = external|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Mixed Platforms.Build.0 = external|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Win32.ActiveCfg = external|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|Win32.Build.0 = external|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|x64.ActiveCfg = external|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|x64.Build.0 = external|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.external|x86.ActiveCfg = external|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release_delaysign|Any CPU.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release_delaysign|Mixed Platforms.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release_delaysign|Win32.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release_delaysign|x64.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.release_mt|Any CPU.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.release_mt|Mixed Platforms.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.release_mt|x64.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.release_mt|x86.ActiveCfg = release_mt|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|Any CPU.ActiveCfg = Release|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|Mixed Platforms.Build.0 = Release|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|Win32.ActiveCfg = Release|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|x64.ActiveCfg = Release|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|x64.Build.0 = Release|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Release|x86.ActiveCfg = Release|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Setup|Any CPU.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Setup|Mixed Platforms.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Setup|Win32.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Setup|x64.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Setup|x86.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Trace|Any CPU.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Trace|Mixed Platforms.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Trace|Win32.ActiveCfg = trace|Win32 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Trace|x64.ActiveCfg = trace|x64 - {0BF8CB94-61C7-4545-AE55-C58D858AA8B6}.Trace|x86.ActiveCfg = trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.commercial|Any CPU.ActiveCfg = commercial|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.commercial|Mixed Platforms.ActiveCfg = commercial|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.commercial|Win32.ActiveCfg = commercial|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.commercial|x64.ActiveCfg = commercial|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.commercial|x86.ActiveCfg = commercial|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|Any CPU.ActiveCfg = Debug|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|Win32.ActiveCfg = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|Win32.Build.0 = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|x64.ActiveCfg = Debug|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|x64.Build.0 = Debug|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|x86.ActiveCfg = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Debug|x86.Build.0 = Debug|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Any CPU.ActiveCfg = external|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Mixed Platforms.ActiveCfg = external|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Mixed Platforms.Build.0 = external|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Win32.ActiveCfg = external|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|Win32.Build.0 = external|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|x64.ActiveCfg = external|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|x64.Build.0 = external|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.external|x86.ActiveCfg = external|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release_delaysign|Any CPU.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release_delaysign|Mixed Platforms.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release_delaysign|Win32.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release_delaysign|x64.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release_delaysign|x86.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.release_mt|Any CPU.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.release_mt|Mixed Platforms.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.release_mt|Win32.ActiveCfg = release_mt|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.release_mt|x64.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.release_mt|x86.ActiveCfg = release_mt|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|Any CPU.ActiveCfg = Release|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|Mixed Platforms.Build.0 = Release|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|Win32.ActiveCfg = Release|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|x64.ActiveCfg = Release|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|x64.Build.0 = Release|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Release|x86.ActiveCfg = Release|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Setup|Any CPU.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Setup|Mixed Platforms.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Setup|Win32.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Setup|x64.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Setup|x86.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Trace|Any CPU.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Trace|Mixed Platforms.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Trace|Win32.ActiveCfg = Trace|Win32 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Trace|x64.ActiveCfg = Trace|x64 - {F008F2C4-D652-4A58-8DEF-DB83E2355454}.Trace|x86.ActiveCfg = Trace|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.commercial|Any CPU.ActiveCfg = commercial|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.commercial|Mixed Platforms.ActiveCfg = commercial|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.commercial|Win32.ActiveCfg = commercial|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.commercial|x64.ActiveCfg = commercial|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.commercial|x86.ActiveCfg = commercial|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|Win32.ActiveCfg = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|Win32.Build.0 = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|x64.ActiveCfg = Debug|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|x64.Build.0 = Debug|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|x86.ActiveCfg = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Debug|x86.Build.0 = Debug|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Any CPU.ActiveCfg = external|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Mixed Platforms.ActiveCfg = external|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Mixed Platforms.Build.0 = external|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Win32.ActiveCfg = external|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|Win32.Build.0 = external|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|x64.ActiveCfg = external|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|x64.Build.0 = external|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.external|x86.ActiveCfg = external|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release_delaysign|Any CPU.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release_delaysign|Win32.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release_delaysign|x64.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release_delaysign|x86.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.release_mt|Any CPU.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.release_mt|Mixed Platforms.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.release_mt|Win32.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.release_mt|x64.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.release_mt|x86.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|Any CPU.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|Mixed Platforms.Build.0 = Release|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|Win32.ActiveCfg = Release|Win32 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|x64.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|x64.Build.0 = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Release|x86.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Setup|Any CPU.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Setup|Mixed Platforms.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Setup|Win32.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Setup|x64.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Setup|x86.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Trace|Any CPU.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Trace|Mixed Platforms.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Trace|Win32.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Trace|x64.ActiveCfg = Release|x64 - {7C154132-AAAB-4F60-B652-F8C51A63D244}.Trace|x86.ActiveCfg = Release|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.commercial|Any CPU.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.commercial|Mixed Platforms.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.commercial|Win32.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.commercial|x64.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.commercial|x86.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|Any CPU.ActiveCfg = Debug|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|Win32.ActiveCfg = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|Win32.Build.0 = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|x64.ActiveCfg = Debug|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|x64.Build.0 = Debug|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|x86.ActiveCfg = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Debug|x86.Build.0 = Debug|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Any CPU.ActiveCfg = external|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Mixed Platforms.ActiveCfg = external|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Mixed Platforms.Build.0 = external|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Win32.ActiveCfg = external|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|Win32.Build.0 = external|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|x64.ActiveCfg = external|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|x64.Build.0 = external|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.external|x86.ActiveCfg = external|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release_delaysign|Any CPU.ActiveCfg = Release_delaysign|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release_delaysign|Mixed Platforms.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release_delaysign|Win32.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release_delaysign|x64.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release_delaysign|x86.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.release_mt|Any CPU.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.release_mt|Mixed Platforms.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.release_mt|Win32.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.release_mt|x64.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.release_mt|x86.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|Win32.ActiveCfg = Release|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|x64.ActiveCfg = Release|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|x64.Build.0 = Release|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Release|x86.ActiveCfg = Release|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Setup|Any CPU.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Setup|Mixed Platforms.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Setup|Win32.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Setup|x64.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Setup|x86.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Trace|Any CPU.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Trace|Mixed Platforms.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Trace|Win32.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Trace|x64.ActiveCfg = Release_delaysign|x64 - {EC3DB697-B734-42F7-9468-5B62821EEB5A}.Trace|x86.ActiveCfg = Release_delaysign|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.commercial|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.commercial|Mixed Platforms.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.commercial|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.commercial|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.commercial|x86.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|Win32.ActiveCfg = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|Win32.Build.0 = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|x64.ActiveCfg = Debug|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|x64.Build.0 = Debug|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|x86.ActiveCfg = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Debug|x86.Build.0 = Debug|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.external|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.external|Mixed Platforms.ActiveCfg = Release|x86 - {D350BC78-8455-45D3-9759-073394378BF2}.external|Mixed Platforms.Build.0 = Release|x86 - {D350BC78-8455-45D3-9759-073394378BF2}.external|Win32.ActiveCfg = Release|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.external|Win32.Build.0 = Release|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.external|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.external|x64.Build.0 = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.external|x86.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release_delaysign|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release_delaysign|Mixed Platforms.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release_delaysign|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release_delaysign|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release_delaysign|x86.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.release_mt|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.release_mt|Mixed Platforms.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.release_mt|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.release_mt|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.release_mt|x86.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D350BC78-8455-45D3-9759-073394378BF2}.Release|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release|x64.Build.0 = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Release|x86.ActiveCfg = Release|x86 - {D350BC78-8455-45D3-9759-073394378BF2}.Setup|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Setup|Mixed Platforms.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Setup|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Setup|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Setup|x86.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Trace|Any CPU.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Trace|Mixed Platforms.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Trace|Win32.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Trace|x64.ActiveCfg = Release|x64 - {D350BC78-8455-45D3-9759-073394378BF2}.Trace|x86.ActiveCfg = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal From 7cb1d21070fde511809c40aff2cfb19f5d715677 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 14:41:42 -0700 Subject: [PATCH 39/54] checkpoint Signed-off-by: Leonardo de Moura --- scripts/dependencies.py | 65 ----------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 scripts/dependencies.py diff --git a/scripts/dependencies.py b/scripts/dependencies.py deleted file mode 100644 index 03a12858a..000000000 --- a/scripts/dependencies.py +++ /dev/null @@ -1,65 +0,0 @@ -############################################ -# Copyright (c) 2012 Microsoft Corporation -# -# Scripts for extracting dependencies in -# C/C++ files -# -# Author: Leonardo de Moura (leonardo) -############################################ -import re -import os -import sets -from mk_exception import * - - -# Return src_dir/path/fname -def mk_full_fname(src_dir, path, fname): - # return '%s%s%s%s%s' % (src_dir, os.sep, path, os.sep, fname) - return '%s/%s/%s' % (src_dir, path, fname) - -# Return True if the file src_dir/path/fname exists. -# Otherwise return False. -def has_file(src_dir, path, fname): - try: - with open(mk_full_fname(src_dir, path, fname)) as f: pass - return True - except IOError as e: - return False - -# Search a file named fname at: -# src_dir/path -# for each p in search_path -# src_dir/p -def find_file(src_dir, path, search_path, fname): - if has_file(src_dir, path, fname): - return mk_full_fname(src_dir, path, fname) - for path in search_path: - if has_file(src_dir, path, fname): - return mk_full_fname(src_dir, path, fname) - return None - -# Extract the dependency list of the C/C++ file fname (basename) -# located at path relative to src_dir. search_path is -# a list of paths relative to src_dir where we should look for -# include files. -# Remark: this method returns the transitive closure of the dependencies. -def extract_c_dependencies(src_dir, path, fname, search_path): - result = [] - processed = sets.Set() - full_fname = mk_full_fname(src_dir, path, fname) - processed.add(full_fname) - todo = [full_fname] - while todo: - curr = todo[-1] - todo.pop() - deps = extract_c_includes(curr) - for dep in deps: - full_dep = find_file(src_dir, path, search_path, dep) - if full_dep == None: - raise MKException("File '%s' was not found when processing '%s' for '%s'. Remark: system files should be included using #include<...>." % (dep, curr, fname)) - if not full_dep in processed: - processed.add(full_dep) - todo.append(full_dep) - result.append(full_dep) - return result - From 6a0e05153c34a9dbb0793b1149725595cb0e0039 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 15:10:46 -0700 Subject: [PATCH 40/54] improving mk_make.py Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 2 ++ scripts/mk_util.py | 69 +++++++++++++++++++++++++++++++++++++++------- 2 files changed, 61 insertions(+), 10 deletions(-) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 995d0df26..590e8a50b 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -8,6 +8,8 @@ ############################################ from mk_util import * +parse_options() + # set_build_dir('build') # set_src_dir('src') # set_modes(['Debug', 'Release']) diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 8f24fccef..7209182a0 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -10,23 +10,64 @@ import os import glob import sets import re +import getopt +import sys from mk_exception import * BUILD_DIR='build' REV_BUILD_DIR='..' SRC_DIR='src' IS_WINDOW=False -CXX='g++' -MAKE='make' -if os.name == 'nt': - IS_WINDOW=True - CXX='cl' - MAKE='nmake' +VERBOSE=False +DEBUG_MODE=False SHOW_CPPS = True +VS_X64 = False LIB_KIND = 0 EXE_KIND = 1 +if os.name == 'nt': + IS_WINDOW=True + +def display_help(): + print "mk_make.py: Z3 Makefile generator\n" + print "This script generates the Makefile for the Z3 theorem prover." + print "It must be executed from the Z3 root directory." + print "\nOptions:" + print " -h, --help display this message" + print " -v, --verbose be verbose" + print " -b , --build= subdirectory where Z3 will be built (default: build)." + print " -d, --debug compile Z3 in debug mode." + print " -x, --x64 create 64 binary when using Visual Studio." + exit(0) + +# Parse configuration option for mk_make script +def parse_options(): + global VERBOSE, DEBUG_MODE, IS_WINDOW, VS_X64 + options, remainder = getopt.gnu_getopt(sys.argv[1:], 'b:dvxh', ['build=', + 'debug', + 'verbose', + 'x64', + 'help' + ]) + for opt, arg in options: + if opt in ('-b', '--build'): + if arg == 'src': + raise MKException('The src directory should not be used to host the Makefile') + set_build_dir(arg) + elif opt in ('-v', '--verbose'): + VERBOSE = True + elif opt in ('-d', '--debug'): + DEBUG_MODE = True + elif opt in ('-x', '--x64'): + if not IS_WINDOW: + raise MKException('x64 compilation mode can only be specified when using Visual Studio') + VS_X64 = True + elif opt in ('-h', '--help'): + display_help() + else: + raise MKException("Invalid command line option '%s'" % opt) + # Return a list containing a file names included using '#include' in # the given C/C++ file named fname. def extract_c_includes(fname): @@ -261,6 +302,8 @@ def reg_component(name, c): _Components.append(c) _ComponentNames.add(name) _Name2Component[name] = c + if VERBOSE: + print "Processed '%s'" % name def add_lib(name, deps=[], path=None): c = LibComponent(name, path, deps) @@ -272,13 +315,19 @@ def add_exe(name, deps=[], path=None, exe_name=None): def mk_makefile(): mk_dir(BUILD_DIR) + if VERBOSE: + print "Writing %s/Makefile" % BUILD_DIR out = open('%s/Makefile' % BUILD_DIR, 'w') out.write('# Automatically generated file. Generator: scripts/mk_make.py\n') out.write('include config.mk\n') for c in _Components: c.mk_makefile(out) + if VERBOSE: + print "Makefile was successfully generated." + if DEBUG_MODE: + print " compilation mode: Debug" + else: + print " compilation mode: Release" + print "Type 'cd %s; make' to build Z3" % BUILD_DIR + -# add_lib('util') -# add_lib('polynomial', ['util']) -# add_lib('ast', ['util', 'polynomial']) -# mk_makefile() From a564be5caf72899d69c915946ff3fe640392474c Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 15:47:59 -0700 Subject: [PATCH 41/54] improving mk_make Signed-off-by: Leonardo de Moura --- scripts/mk_util.py | 37 ++++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 7209182a0..3e34e0897 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -12,6 +12,7 @@ import sets import re import getopt import sys +import shutil from mk_exception import * BUILD_DIR='build' @@ -28,6 +29,8 @@ EXE_KIND = 1 if os.name == 'nt': IS_WINDOW=True + # Visual Studio already displays the files being compiled + SHOW_CPPS=False def display_help(): print "mk_make.py: Z3 Makefile generator\n" @@ -104,7 +107,7 @@ def mk_dir(d): os.makedirs(d) def set_build_dir(d): - global BUILD_DIR + global BUILD_DIR, REV_BUILD_DIR BUILD_DIR = d REV_BUILD_DIR = reverse_path(d) @@ -210,7 +213,7 @@ class Component: self.add_cpp_h_deps(out, cppfile) out.write('\n') if SHOW_CPPS: - out.write('\t@echo %s\n' % cppfile) + out.write('\t@echo %s/%s\n' % (self.src_dir, cppfile)) out.write('\t@$(CXX) $(CXXFLAGS) $(%s) $(CXX_OUT_FLAG)%s %s\n' % (include_defs, objfile, srcfile)) def mk_makefile(self, out): @@ -223,6 +226,10 @@ class Component: for cppfile in get_cpp_files(self.src_dir): self.add_cpp_rules(out, include_defs, cppfile) + # Return true if the component should be included in the all: rule + def main_component(self): + return False + class LibComponent(Component): def __init__(self, name, path, deps): Component.__init__(self, name, LIB_KIND, path, deps) @@ -293,7 +300,10 @@ class ExeComponent(Component): out.write(' %s/%s$(LIB_EXT)' % (c_dep.build_dir, c_dep.name)) out.write('\n') out.write('%s: %s\n\n' % (self.name, exefile)) - + + # All executables are included in the all: rule + def main_component(self): + return True def reg_component(name, c): global _Id, _Components, _ComponentNames, _Name2Component @@ -313,15 +323,36 @@ def add_exe(name, deps=[], path=None, exe_name=None): c = ExeComponent(name, exe_name, path, deps) reg_component(name, c) +# Copy configuration correct file to BUILD_DIR +def cp_config_mk(): + if IS_WINDOW: + # TODO + return + else: + if DEBUG_MODE: + shutil.copyfile('scripts/config-debug.mk', '%s/config.mk' % BUILD_DIR) + else: + shutil.copyfile('scripts/config-release.mk', '%s/config.mk' % BUILD_DIR) + +# Generate the Z3 makefile def mk_makefile(): mk_dir(BUILD_DIR) + cp_config_mk() if VERBOSE: print "Writing %s/Makefile" % BUILD_DIR out = open('%s/Makefile' % BUILD_DIR, 'w') out.write('# Automatically generated file. Generator: scripts/mk_make.py\n') out.write('include config.mk\n') + # Generate :all rule + out.write('all:') + for c in _Components: + if c.main_component: + out.write(' %s' % c.name) + out.write('\n\n') + # Generate components for c in _Components: c.mk_makefile(out) + # Finalize if VERBOSE: print "Makefile was successfully generated." if DEBUG_MODE: From 12d7c3a18798853bec888340e5cf19d11ce0b152 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 16:26:30 -0700 Subject: [PATCH 42/54] Improving visual studio support Signed-off-by: Leonardo de Moura --- scripts/config-vs-debug.mk | 15 +++++++++++++++ scripts/config-vs-release.mk | 15 +++++++++++++++ scripts/mk_util.py | 12 +++++++++--- 3 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 scripts/config-vs-debug.mk create mode 100644 scripts/config-vs-release.mk diff --git a/scripts/config-vs-debug.mk b/scripts/config-vs-debug.mk new file mode 100644 index 000000000..5d8d09972 --- /dev/null +++ b/scripts/config-vs-debug.mk @@ -0,0 +1,15 @@ +CXX=cl +CXXFLAGS=/c /ZI /nologo /W3 /WX- /Od /Oy- /D "WIN32" /D "_DEBUG" /D "Z3DEBUG" /D "_CONSOLE" /D "_TRACE" /D "_WINDOWS" /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /openmp /Gd /analyze- +CXX_OUT_FLAG=/Fo +OBJ_EXT=.obj +LIB_EXT=.lib +AR=lib +AR_FLAGS=/nologo +AR_OUTFLAG=/OUT: +EXE_EXT=.exe +LINK=cl +LINK_FLAGS=/nologo "$(VSINSTALLDIR)VC\Lib\libcpmt.lib" "$(WindowsSdkDir)Lib\uuid.lib" "$(VSINSTALLDIR)VC\Lib\libcmt.lib" "$(VSINSTALLDIR)VC\Lib\oldnames.lib" "$(VSINSTALLDIR)VC\Lib\VCOMP.lib" "$(WindowsSdkDir)Lib\kernel32.lib" +LINK_EXTRA_FLAGS=/link /DEBUG /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:"8388608" /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT +LINK_OUT_FLAG=/Fe + + diff --git a/scripts/config-vs-release.mk b/scripts/config-vs-release.mk new file mode 100644 index 000000000..a5bb0adf4 --- /dev/null +++ b/scripts/config-vs-release.mk @@ -0,0 +1,15 @@ +CXX=cl +CXXFLAGS=/nologo /c /W3 /WX- /O2 /Oy- /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_WINDOWS" /D "ASYNC_COMMANDS" /Gm- /EHsc /GS /fp:precise /Zc:wchar_t /Zc:forScope /openmp /Gd /analyze- +CXX_OUT_FLAG=/Fo +OBJ_EXT=.obj +LIB_EXT=.lib +AR=lib +AR_FLAGS=/nologo +AR_OUTFLAG=/OUT: +EXE_EXT=.exe +LINK=cl +LINK_FLAGS=/nologo "$(VSINSTALLDIR)VC\Lib\libcpmt.lib" "$(WindowsSdkDir)Lib\uuid.lib" "$(VSINSTALLDIR)VC\Lib\libcmt.lib" "$(VSINSTALLDIR)VC\Lib\oldnames.lib" "$(VSINSTALLDIR)VC\Lib\VCOMP.lib" "$(WindowsSdkDir)Lib\kernel32.lib" +LINK_EXTRA_FLAGS=/link /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:"8388608" /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT +LINK_OUT_FLAG=/Fe + + diff --git a/scripts/mk_util.py b/scripts/mk_util.py index 3e34e0897..52571eb3d 100644 --- a/scripts/mk_util.py +++ b/scripts/mk_util.py @@ -298,7 +298,7 @@ class ExeComponent(Component): for dep in deps: c_dep = _Name2Component[dep] out.write(' %s/%s$(LIB_EXT)' % (c_dep.build_dir, c_dep.name)) - out.write('\n') + out.write(' $(LINK_EXTRA_FLAGS)\n') out.write('%s: %s\n\n' % (self.name, exefile)) # All executables are included in the all: rule @@ -326,8 +326,14 @@ def add_exe(name, deps=[], path=None, exe_name=None): # Copy configuration correct file to BUILD_DIR def cp_config_mk(): if IS_WINDOW: - # TODO - return + if VS_X64: + # TODO + return + else: + if DEBUG_MODE: + shutil.copyfile('scripts/config-vs-debug.mk', '%s/config.mk' % BUILD_DIR) + else: + shutil.copyfile('scripts/config-vs-release.mk', '%s/config.mk' % BUILD_DIR) else: if DEBUG_MODE: shutil.copyfile('scripts/config-debug.mk', '%s/config.mk' % BUILD_DIR) From 81fd292c66ffedfd9c595def3baa0fa844d6c4b2 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 16:30:48 -0700 Subject: [PATCH 43/54] moved examples to new examples folder Signed-off-by: Leonardo de Moura --- {c++ => src/examples/c++}/README.txt | 0 {c++ => src/examples/c++}/build-external.cmd | 0 {c++ => src/examples/c++}/build.cmd | 0 {c++ => src/examples/c++}/build.sh | 0 {c++ => src/examples/c++}/example.cpp | 0 {c++ => src/examples/c++}/exec-external.cmd | 0 {c++ => src/examples/c++}/z3++.h | 0 {maxsat => src/examples/maxsat}/README-external.txt | 0 {maxsat => src/examples/maxsat}/README.txt | 0 {maxsat => src/examples/maxsat}/build-external.cmd | 0 {maxsat => src/examples/maxsat}/build.sh | 0 {maxsat => src/examples/maxsat}/ex.smt | 0 {maxsat => src/examples/maxsat}/exec-external.cmd | 0 {maxsat => src/examples/maxsat}/maxsat.c | 0 {maxsat => src/examples/maxsat}/maxsat.vcxproj | 0 {test_capi => src/examples/test_capi}/README.txt | 0 {test_capi => src/examples/test_capi}/build.sh | 0 {test_capi => src/examples/test_capi}/test_capi.c | 0 {test_capi => src/examples/test_capi}/test_capi.vcxproj | 0 19 files changed, 0 insertions(+), 0 deletions(-) rename {c++ => src/examples/c++}/README.txt (100%) rename {c++ => src/examples/c++}/build-external.cmd (100%) rename {c++ => src/examples/c++}/build.cmd (100%) rename {c++ => src/examples/c++}/build.sh (100%) rename {c++ => src/examples/c++}/example.cpp (100%) rename {c++ => src/examples/c++}/exec-external.cmd (100%) rename {c++ => src/examples/c++}/z3++.h (100%) rename {maxsat => src/examples/maxsat}/README-external.txt (100%) rename {maxsat => src/examples/maxsat}/README.txt (100%) rename {maxsat => src/examples/maxsat}/build-external.cmd (100%) rename {maxsat => src/examples/maxsat}/build.sh (100%) rename {maxsat => src/examples/maxsat}/ex.smt (100%) rename {maxsat => src/examples/maxsat}/exec-external.cmd (100%) rename {maxsat => src/examples/maxsat}/maxsat.c (100%) rename {maxsat => src/examples/maxsat}/maxsat.vcxproj (100%) rename {test_capi => src/examples/test_capi}/README.txt (100%) rename {test_capi => src/examples/test_capi}/build.sh (100%) rename {test_capi => src/examples/test_capi}/test_capi.c (100%) rename {test_capi => src/examples/test_capi}/test_capi.vcxproj (100%) diff --git a/c++/README.txt b/src/examples/c++/README.txt similarity index 100% rename from c++/README.txt rename to src/examples/c++/README.txt diff --git a/c++/build-external.cmd b/src/examples/c++/build-external.cmd similarity index 100% rename from c++/build-external.cmd rename to src/examples/c++/build-external.cmd diff --git a/c++/build.cmd b/src/examples/c++/build.cmd similarity index 100% rename from c++/build.cmd rename to src/examples/c++/build.cmd diff --git a/c++/build.sh b/src/examples/c++/build.sh similarity index 100% rename from c++/build.sh rename to src/examples/c++/build.sh diff --git a/c++/example.cpp b/src/examples/c++/example.cpp similarity index 100% rename from c++/example.cpp rename to src/examples/c++/example.cpp diff --git a/c++/exec-external.cmd b/src/examples/c++/exec-external.cmd similarity index 100% rename from c++/exec-external.cmd rename to src/examples/c++/exec-external.cmd diff --git a/c++/z3++.h b/src/examples/c++/z3++.h similarity index 100% rename from c++/z3++.h rename to src/examples/c++/z3++.h diff --git a/maxsat/README-external.txt b/src/examples/maxsat/README-external.txt similarity index 100% rename from maxsat/README-external.txt rename to src/examples/maxsat/README-external.txt diff --git a/maxsat/README.txt b/src/examples/maxsat/README.txt similarity index 100% rename from maxsat/README.txt rename to src/examples/maxsat/README.txt diff --git a/maxsat/build-external.cmd b/src/examples/maxsat/build-external.cmd similarity index 100% rename from maxsat/build-external.cmd rename to src/examples/maxsat/build-external.cmd diff --git a/maxsat/build.sh b/src/examples/maxsat/build.sh similarity index 100% rename from maxsat/build.sh rename to src/examples/maxsat/build.sh diff --git a/maxsat/ex.smt b/src/examples/maxsat/ex.smt similarity index 100% rename from maxsat/ex.smt rename to src/examples/maxsat/ex.smt diff --git a/maxsat/exec-external.cmd b/src/examples/maxsat/exec-external.cmd similarity index 100% rename from maxsat/exec-external.cmd rename to src/examples/maxsat/exec-external.cmd diff --git a/maxsat/maxsat.c b/src/examples/maxsat/maxsat.c similarity index 100% rename from maxsat/maxsat.c rename to src/examples/maxsat/maxsat.c diff --git a/maxsat/maxsat.vcxproj b/src/examples/maxsat/maxsat.vcxproj similarity index 100% rename from maxsat/maxsat.vcxproj rename to src/examples/maxsat/maxsat.vcxproj diff --git a/test_capi/README.txt b/src/examples/test_capi/README.txt similarity index 100% rename from test_capi/README.txt rename to src/examples/test_capi/README.txt diff --git a/test_capi/build.sh b/src/examples/test_capi/build.sh similarity index 100% rename from test_capi/build.sh rename to src/examples/test_capi/build.sh diff --git a/test_capi/test_capi.c b/src/examples/test_capi/test_capi.c similarity index 100% rename from test_capi/test_capi.c rename to src/examples/test_capi/test_capi.c diff --git a/test_capi/test_capi.vcxproj b/src/examples/test_capi/test_capi.vcxproj similarity index 100% rename from test_capi/test_capi.vcxproj rename to src/examples/test_capi/test_capi.vcxproj From e2f4943b4eb68ca9d992085dfbc305f5c32180b3 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 16:33:20 -0700 Subject: [PATCH 44/54] moved dll and examples Signed-off-by: Leonardo de Moura --- {src/examples => examples}/c++/README.txt | 0 {src/examples => examples}/c++/build-external.cmd | 0 {src/examples => examples}/c++/build.cmd | 0 {src/examples => examples}/c++/build.sh | 0 {src/examples => examples}/c++/example.cpp | 0 {src/examples => examples}/c++/exec-external.cmd | 0 {src/examples => examples}/c++/z3++.h | 0 {src/examples => examples}/maxsat/README-external.txt | 0 {src/examples => examples}/maxsat/README.txt | 0 {src/examples => examples}/maxsat/build-external.cmd | 0 {src/examples => examples}/maxsat/build.sh | 0 {src/examples => examples}/maxsat/ex.smt | 0 {src/examples => examples}/maxsat/exec-external.cmd | 0 {src/examples => examples}/maxsat/maxsat.c | 0 {src/examples => examples}/maxsat/maxsat.vcxproj | 0 {src/examples => examples}/test_capi/README.txt | 0 {src/examples => examples}/test_capi/build.sh | 0 {src/examples => examples}/test_capi/test_capi.c | 0 {src/examples => examples}/test_capi/test_capi.vcxproj | 0 {dll => src/dll}/dll.cpp | 0 {dll => src/dll}/dll.rc | 0 {dll => src/dll}/dll.vcxproj | 0 {dll => src/dll}/resource.h | 0 {dll => src/dll}/z3.def | 0 24 files changed, 0 insertions(+), 0 deletions(-) rename {src/examples => examples}/c++/README.txt (100%) rename {src/examples => examples}/c++/build-external.cmd (100%) rename {src/examples => examples}/c++/build.cmd (100%) rename {src/examples => examples}/c++/build.sh (100%) rename {src/examples => examples}/c++/example.cpp (100%) rename {src/examples => examples}/c++/exec-external.cmd (100%) rename {src/examples => examples}/c++/z3++.h (100%) rename {src/examples => examples}/maxsat/README-external.txt (100%) rename {src/examples => examples}/maxsat/README.txt (100%) rename {src/examples => examples}/maxsat/build-external.cmd (100%) rename {src/examples => examples}/maxsat/build.sh (100%) rename {src/examples => examples}/maxsat/ex.smt (100%) rename {src/examples => examples}/maxsat/exec-external.cmd (100%) rename {src/examples => examples}/maxsat/maxsat.c (100%) rename {src/examples => examples}/maxsat/maxsat.vcxproj (100%) rename {src/examples => examples}/test_capi/README.txt (100%) rename {src/examples => examples}/test_capi/build.sh (100%) rename {src/examples => examples}/test_capi/test_capi.c (100%) rename {src/examples => examples}/test_capi/test_capi.vcxproj (100%) rename {dll => src/dll}/dll.cpp (100%) rename {dll => src/dll}/dll.rc (100%) rename {dll => src/dll}/dll.vcxproj (100%) rename {dll => src/dll}/resource.h (100%) rename {dll => src/dll}/z3.def (100%) diff --git a/src/examples/c++/README.txt b/examples/c++/README.txt similarity index 100% rename from src/examples/c++/README.txt rename to examples/c++/README.txt diff --git a/src/examples/c++/build-external.cmd b/examples/c++/build-external.cmd similarity index 100% rename from src/examples/c++/build-external.cmd rename to examples/c++/build-external.cmd diff --git a/src/examples/c++/build.cmd b/examples/c++/build.cmd similarity index 100% rename from src/examples/c++/build.cmd rename to examples/c++/build.cmd diff --git a/src/examples/c++/build.sh b/examples/c++/build.sh similarity index 100% rename from src/examples/c++/build.sh rename to examples/c++/build.sh diff --git a/src/examples/c++/example.cpp b/examples/c++/example.cpp similarity index 100% rename from src/examples/c++/example.cpp rename to examples/c++/example.cpp diff --git a/src/examples/c++/exec-external.cmd b/examples/c++/exec-external.cmd similarity index 100% rename from src/examples/c++/exec-external.cmd rename to examples/c++/exec-external.cmd diff --git a/src/examples/c++/z3++.h b/examples/c++/z3++.h similarity index 100% rename from src/examples/c++/z3++.h rename to examples/c++/z3++.h diff --git a/src/examples/maxsat/README-external.txt b/examples/maxsat/README-external.txt similarity index 100% rename from src/examples/maxsat/README-external.txt rename to examples/maxsat/README-external.txt diff --git a/src/examples/maxsat/README.txt b/examples/maxsat/README.txt similarity index 100% rename from src/examples/maxsat/README.txt rename to examples/maxsat/README.txt diff --git a/src/examples/maxsat/build-external.cmd b/examples/maxsat/build-external.cmd similarity index 100% rename from src/examples/maxsat/build-external.cmd rename to examples/maxsat/build-external.cmd diff --git a/src/examples/maxsat/build.sh b/examples/maxsat/build.sh similarity index 100% rename from src/examples/maxsat/build.sh rename to examples/maxsat/build.sh diff --git a/src/examples/maxsat/ex.smt b/examples/maxsat/ex.smt similarity index 100% rename from src/examples/maxsat/ex.smt rename to examples/maxsat/ex.smt diff --git a/src/examples/maxsat/exec-external.cmd b/examples/maxsat/exec-external.cmd similarity index 100% rename from src/examples/maxsat/exec-external.cmd rename to examples/maxsat/exec-external.cmd diff --git a/src/examples/maxsat/maxsat.c b/examples/maxsat/maxsat.c similarity index 100% rename from src/examples/maxsat/maxsat.c rename to examples/maxsat/maxsat.c diff --git a/src/examples/maxsat/maxsat.vcxproj b/examples/maxsat/maxsat.vcxproj similarity index 100% rename from src/examples/maxsat/maxsat.vcxproj rename to examples/maxsat/maxsat.vcxproj diff --git a/src/examples/test_capi/README.txt b/examples/test_capi/README.txt similarity index 100% rename from src/examples/test_capi/README.txt rename to examples/test_capi/README.txt diff --git a/src/examples/test_capi/build.sh b/examples/test_capi/build.sh similarity index 100% rename from src/examples/test_capi/build.sh rename to examples/test_capi/build.sh diff --git a/src/examples/test_capi/test_capi.c b/examples/test_capi/test_capi.c similarity index 100% rename from src/examples/test_capi/test_capi.c rename to examples/test_capi/test_capi.c diff --git a/src/examples/test_capi/test_capi.vcxproj b/examples/test_capi/test_capi.vcxproj similarity index 100% rename from src/examples/test_capi/test_capi.vcxproj rename to examples/test_capi/test_capi.vcxproj diff --git a/dll/dll.cpp b/src/dll/dll.cpp similarity index 100% rename from dll/dll.cpp rename to src/dll/dll.cpp diff --git a/dll/dll.rc b/src/dll/dll.rc similarity index 100% rename from dll/dll.rc rename to src/dll/dll.rc diff --git a/dll/dll.vcxproj b/src/dll/dll.vcxproj similarity index 100% rename from dll/dll.vcxproj rename to src/dll/dll.vcxproj diff --git a/dll/resource.h b/src/dll/resource.h similarity index 100% rename from dll/resource.h rename to src/dll/resource.h diff --git a/dll/z3.def b/src/dll/z3.def similarity index 100% rename from dll/z3.def rename to src/dll/z3.def From 94621f0c17b7d53a318485129a31b1b3bc34806a Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 16:34:00 -0700 Subject: [PATCH 45/54] moved python to src Signed-off-by: Leonardo de Moura --- {python => src/python}/README.txt | 0 {python => src/python}/example.py | 0 {python => src/python}/z3.py | 0 {python => src/python}/z3consts.py | 0 {python => src/python}/z3core.py | 0 {python => src/python}/z3poly.py | 0 {python => src/python}/z3printer.py | 0 {python => src/python}/z3tactics.py | 0 {python => src/python}/z3test.py | 0 {python => src/python}/z3types.py | 0 10 files changed, 0 insertions(+), 0 deletions(-) rename {python => src/python}/README.txt (100%) rename {python => src/python}/example.py (100%) rename {python => src/python}/z3.py (100%) rename {python => src/python}/z3consts.py (100%) rename {python => src/python}/z3core.py (100%) rename {python => src/python}/z3poly.py (100%) rename {python => src/python}/z3printer.py (100%) rename {python => src/python}/z3tactics.py (100%) rename {python => src/python}/z3test.py (100%) rename {python => src/python}/z3types.py (100%) diff --git a/python/README.txt b/src/python/README.txt similarity index 100% rename from python/README.txt rename to src/python/README.txt diff --git a/python/example.py b/src/python/example.py similarity index 100% rename from python/example.py rename to src/python/example.py diff --git a/python/z3.py b/src/python/z3.py similarity index 100% rename from python/z3.py rename to src/python/z3.py diff --git a/python/z3consts.py b/src/python/z3consts.py similarity index 100% rename from python/z3consts.py rename to src/python/z3consts.py diff --git a/python/z3core.py b/src/python/z3core.py similarity index 100% rename from python/z3core.py rename to src/python/z3core.py diff --git a/python/z3poly.py b/src/python/z3poly.py similarity index 100% rename from python/z3poly.py rename to src/python/z3poly.py diff --git a/python/z3printer.py b/src/python/z3printer.py similarity index 100% rename from python/z3printer.py rename to src/python/z3printer.py diff --git a/python/z3tactics.py b/src/python/z3tactics.py similarity index 100% rename from python/z3tactics.py rename to src/python/z3tactics.py diff --git a/python/z3test.py b/src/python/z3test.py similarity index 100% rename from python/z3test.py rename to src/python/z3test.py diff --git a/python/z3types.py b/src/python/z3types.py similarity index 100% rename from python/z3types.py rename to src/python/z3types.py From b89d35dd6984f56468f7c16a76ffc2fd2325b8b3 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 21:31:14 -0700 Subject: [PATCH 46/54] fixed VS debug mode compilation Signed-off-by: Leonardo de Moura --- scripts/config-vs-debug.mk | 2 +- scripts/config-vs-release.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/config-vs-debug.mk b/scripts/config-vs-debug.mk index 5d8d09972..7f416b37a 100644 --- a/scripts/config-vs-debug.mk +++ b/scripts/config-vs-debug.mk @@ -8,7 +8,7 @@ AR_FLAGS=/nologo AR_OUTFLAG=/OUT: EXE_EXT=.exe LINK=cl -LINK_FLAGS=/nologo "$(VSINSTALLDIR)VC\Lib\libcpmt.lib" "$(WindowsSdkDir)Lib\uuid.lib" "$(VSINSTALLDIR)VC\Lib\libcmt.lib" "$(VSINSTALLDIR)VC\Lib\oldnames.lib" "$(VSINSTALLDIR)VC\Lib\VCOMP.lib" "$(WindowsSdkDir)Lib\kernel32.lib" +LINK_FLAGS=/nologo "$(WINDOWSSDKDIR)Lib\uuid.lib" "$(VSINSTALLDIR)VC\Lib\oldnames.lib" "$(VSINSTALLDIR)VC\Lib\VCOMP.lib" "$(WINDOWSSDKDIR)Lib\kernel32.lib" LINK_EXTRA_FLAGS=/link /DEBUG /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:"8388608" /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT LINK_OUT_FLAG=/Fe diff --git a/scripts/config-vs-release.mk b/scripts/config-vs-release.mk index a5bb0adf4..66144df7d 100644 --- a/scripts/config-vs-release.mk +++ b/scripts/config-vs-release.mk @@ -8,7 +8,7 @@ AR_FLAGS=/nologo AR_OUTFLAG=/OUT: EXE_EXT=.exe LINK=cl -LINK_FLAGS=/nologo "$(VSINSTALLDIR)VC\Lib\libcpmt.lib" "$(WindowsSdkDir)Lib\uuid.lib" "$(VSINSTALLDIR)VC\Lib\libcmt.lib" "$(VSINSTALLDIR)VC\Lib\oldnames.lib" "$(VSINSTALLDIR)VC\Lib\VCOMP.lib" "$(WindowsSdkDir)Lib\kernel32.lib" +LINK_FLAGS=/nologo "$(VSINSTALLDIR)VC\Lib\libcpmt.lib" "$(WINDOWSSDKDIR)Lib\uuid.lib" "$(VSINSTALLDIR)VC\Lib\libcmt.lib" "$(VSINSTALLDIR)VC\Lib\oldnames.lib" "$(VSINSTALLDIR)VC\Lib\VCOMP.lib" "$(WINDOWSSDKDIR)Lib\kernel32.lib" LINK_EXTRA_FLAGS=/link /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:"8388608" /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT LINK_OUT_FLAG=/Fe From 9e299b88c4784688addf8a7041481788d5f8fd00 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 21:53:34 -0700 Subject: [PATCH 47/54] reorganizing the code Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 32 +++++++++---------- src/{ => bv}/bit_blaster/bit_blaster.cpp | 0 src/{ => bv}/bit_blaster/bit_blaster.h | 0 .../bit_blaster_model_converter.cpp | 0 .../bit_blaster/bit_blaster_model_converter.h | 0 .../bit_blaster/bit_blaster_rewriter.cpp | 0 .../bit_blaster/bit_blaster_rewriter.h | 0 src/{ => bv}/bit_blaster/bit_blaster_tpl.h | 0 .../bit_blaster/bit_blaster_tpl_def.h | 0 .../bit_blaster/bv1_blaster_tactic.cpp | 0 src/{ => bv}/bit_blaster/bv1_blaster_tactic.h | 0 .../bit_blaster/eager_bit_blaster.cpp | 0 src/{ => bv}/bit_blaster/eager_bit_blaster.h | 0 src/{ => bv}/sls_tactic/sls_strategy.h | 0 src/{ => bv}/sls_tactic/sls_tactic.cpp | 0 src/{ => bv}/sls_tactic/sls_tactic.h | 0 .../tactics}/bit_blaster_tactic.cpp | 0 .../tactics}/bit_blaster_tactic.h | 0 .../tactics}/bv_size_reduction_tactic.cpp | 0 .../tactics}/bv_size_reduction_tactic.h | 0 .../tactics}/max_bv_sharing_tactic.cpp | 0 .../tactics}/max_bv_sharing_tactic.h | 0 src/{ => bv}/ufbv_strategy/ufbv_strategy.cpp | 0 src/{ => bv}/ufbv_strategy/ufbv_strategy.h | 0 src/{ => cmd_context}/extra_cmds/dbg_cmds.cpp | 0 src/{ => cmd_context}/extra_cmds/dbg_cmds.h | 0 .../extra_cmds/polynomial_cmds.cpp | 0 .../extra_cmds/polynomial_cmds.h | 0 .../extra_cmds/subpaving_cmds.cpp | 0 .../extra_cmds/subpaving_cmds.h | 0 src/{ => math}/euclid/euclidean_solver.cpp | 0 src/{ => math}/euclid/euclidean_solver.h | 0 src/{ => math}/grobner/grobner.cpp | 0 src/{ => math}/grobner/grobner.h | 0 .../polynomial/algebraic_numbers.cpp | 0 src/{ => math}/polynomial/algebraic_numbers.h | 0 src/{ => math}/polynomial/linear_eq_solver.h | 0 src/{ => math}/polynomial/polynomial.cpp | 0 src/{ => math}/polynomial/polynomial.h | 0 .../polynomial/polynomial_cache.cpp | 0 src/{ => math}/polynomial/polynomial_cache.h | 0 .../polynomial/polynomial_factorization.cpp | 0 .../polynomial/polynomial_factorization.h | 0 src/{ => math}/polynomial/polynomial_primes.h | 0 .../polynomial/polynomial_var2value.h | 0 src/{ => math}/polynomial/rpolynomial.cpp | 0 src/{ => math}/polynomial/rpolynomial.h | 0 .../polynomial/sexpr2upolynomial.cpp | 0 src/{ => math}/polynomial/sexpr2upolynomial.h | 0 src/{ => math}/polynomial/upolynomial.cpp | 0 src/{ => math}/polynomial/upolynomial.h | 0 .../polynomial/upolynomial_factorization.cpp | 0 .../polynomial/upolynomial_factorization.h | 0 .../upolynomial_factorization_int.h | 0 src/{ => math}/subpaving/subpaving.cpp | 0 src/{ => math}/subpaving/subpaving.h | 0 src/{ => math}/subpaving/subpaving_hwf.cpp | 0 src/{ => math}/subpaving/subpaving_hwf.h | 0 src/{ => math}/subpaving/subpaving_mpf.cpp | 0 src/{ => math}/subpaving/subpaving_mpf.h | 0 src/{ => math}/subpaving/subpaving_mpff.cpp | 0 src/{ => math}/subpaving/subpaving_mpff.h | 0 src/{ => math}/subpaving/subpaving_mpfx.cpp | 0 src/{ => math}/subpaving/subpaving_mpfx.h | 0 src/{ => math}/subpaving/subpaving_mpq.cpp | 0 src/{ => math}/subpaving/subpaving_mpq.h | 0 src/{ => math}/subpaving/subpaving_t.h | 0 src/{ => math}/subpaving/subpaving_t_def.h | 0 src/{ => math}/subpaving/subpaving_types.h | 0 .../subpaving/tactic}/expr2subpaving.cpp | 0 .../subpaving/tactic}/expr2subpaving.h | 0 .../subpaving/tactic}/subpaving_tactic.cpp | 0 .../subpaving/tactic}/subpaving_tactic.h | 0 .../tactic}/goal2nlsat.cpp | 0 .../tactic}/goal2nlsat.h | 0 .../tactic}/nlsat_tactic.cpp | 0 .../tactic}/nlsat_tactic.h | 0 .../tactic}/qfnra_nlsat_tactic.cpp | 0 .../tactic}/qfnra_nlsat_tactic.h | 0 .../strategy}/assertion_set2sat.cpp | 0 .../strategy}/assertion_set2sat.h | 0 .../strategy}/sat_solver_strategy.cpp | 0 .../strategy}/sat_solver_strategy.h | 0 .../tactic}/atom2bool_var.cpp | 0 .../tactic}/atom2bool_var.h | 0 src/{sat_tactic => sat/tactic}/goal2sat.cpp | 0 src/{sat_tactic => sat/tactic}/goal2sat.h | 0 src/{sat_tactic => sat/tactic}/sat_tactic.cpp | 0 src/{sat_tactic => sat/tactic}/sat_tactic.h | 0 src/{smt_tactic => smt/tactic}/smt_tactic.cpp | 0 src/{smt_tactic => smt/tactic}/smt_tactic.h | 0 .../user_plugin/user_decl_plugin.cpp | 0 src/{ => smt}/user_plugin/user_decl_plugin.h | 0 .../user_plugin/user_simplifier_plugin.cpp | 0 .../user_plugin/user_simplifier_plugin.h | 0 src/{ => smt}/user_plugin/user_smt_theory.cpp | 0 src/{ => smt}/user_plugin/user_smt_theory.h | 0 src/{ => test}/fuzzing/expr_delta.cpp | 0 src/{ => test}/fuzzing/expr_delta.h | 0 src/{ => test}/fuzzing/expr_rand.cpp | 0 src/{ => test}/fuzzing/expr_rand.h | 0 101 files changed, 16 insertions(+), 16 deletions(-) rename src/{ => bv}/bit_blaster/bit_blaster.cpp (100%) rename src/{ => bv}/bit_blaster/bit_blaster.h (100%) rename src/{ => bv}/bit_blaster/bit_blaster_model_converter.cpp (100%) rename src/{ => bv}/bit_blaster/bit_blaster_model_converter.h (100%) rename src/{ => bv}/bit_blaster/bit_blaster_rewriter.cpp (100%) rename src/{ => bv}/bit_blaster/bit_blaster_rewriter.h (100%) rename src/{ => bv}/bit_blaster/bit_blaster_tpl.h (100%) rename src/{ => bv}/bit_blaster/bit_blaster_tpl_def.h (100%) rename src/{ => bv}/bit_blaster/bv1_blaster_tactic.cpp (100%) rename src/{ => bv}/bit_blaster/bv1_blaster_tactic.h (100%) rename src/{ => bv}/bit_blaster/eager_bit_blaster.cpp (100%) rename src/{ => bv}/bit_blaster/eager_bit_blaster.h (100%) rename src/{ => bv}/sls_tactic/sls_strategy.h (100%) rename src/{ => bv}/sls_tactic/sls_tactic.cpp (100%) rename src/{ => bv}/sls_tactic/sls_tactic.h (100%) rename src/{bv_tactics => bv/tactics}/bit_blaster_tactic.cpp (100%) rename src/{bv_tactics => bv/tactics}/bit_blaster_tactic.h (100%) rename src/{bv_tactics => bv/tactics}/bv_size_reduction_tactic.cpp (100%) rename src/{bv_tactics => bv/tactics}/bv_size_reduction_tactic.h (100%) rename src/{bv_tactics => bv/tactics}/max_bv_sharing_tactic.cpp (100%) rename src/{bv_tactics => bv/tactics}/max_bv_sharing_tactic.h (100%) rename src/{ => bv}/ufbv_strategy/ufbv_strategy.cpp (100%) rename src/{ => bv}/ufbv_strategy/ufbv_strategy.h (100%) rename src/{ => cmd_context}/extra_cmds/dbg_cmds.cpp (100%) rename src/{ => cmd_context}/extra_cmds/dbg_cmds.h (100%) rename src/{ => cmd_context}/extra_cmds/polynomial_cmds.cpp (100%) rename src/{ => cmd_context}/extra_cmds/polynomial_cmds.h (100%) rename src/{ => cmd_context}/extra_cmds/subpaving_cmds.cpp (100%) rename src/{ => cmd_context}/extra_cmds/subpaving_cmds.h (100%) rename src/{ => math}/euclid/euclidean_solver.cpp (100%) rename src/{ => math}/euclid/euclidean_solver.h (100%) rename src/{ => math}/grobner/grobner.cpp (100%) rename src/{ => math}/grobner/grobner.h (100%) rename src/{ => math}/polynomial/algebraic_numbers.cpp (100%) rename src/{ => math}/polynomial/algebraic_numbers.h (100%) rename src/{ => math}/polynomial/linear_eq_solver.h (100%) rename src/{ => math}/polynomial/polynomial.cpp (100%) rename src/{ => math}/polynomial/polynomial.h (100%) rename src/{ => math}/polynomial/polynomial_cache.cpp (100%) rename src/{ => math}/polynomial/polynomial_cache.h (100%) rename src/{ => math}/polynomial/polynomial_factorization.cpp (100%) rename src/{ => math}/polynomial/polynomial_factorization.h (100%) rename src/{ => math}/polynomial/polynomial_primes.h (100%) rename src/{ => math}/polynomial/polynomial_var2value.h (100%) rename src/{ => math}/polynomial/rpolynomial.cpp (100%) rename src/{ => math}/polynomial/rpolynomial.h (100%) rename src/{ => math}/polynomial/sexpr2upolynomial.cpp (100%) rename src/{ => math}/polynomial/sexpr2upolynomial.h (100%) rename src/{ => math}/polynomial/upolynomial.cpp (100%) rename src/{ => math}/polynomial/upolynomial.h (100%) rename src/{ => math}/polynomial/upolynomial_factorization.cpp (100%) rename src/{ => math}/polynomial/upolynomial_factorization.h (100%) rename src/{ => math}/polynomial/upolynomial_factorization_int.h (100%) rename src/{ => math}/subpaving/subpaving.cpp (100%) rename src/{ => math}/subpaving/subpaving.h (100%) rename src/{ => math}/subpaving/subpaving_hwf.cpp (100%) rename src/{ => math}/subpaving/subpaving_hwf.h (100%) rename src/{ => math}/subpaving/subpaving_mpf.cpp (100%) rename src/{ => math}/subpaving/subpaving_mpf.h (100%) rename src/{ => math}/subpaving/subpaving_mpff.cpp (100%) rename src/{ => math}/subpaving/subpaving_mpff.h (100%) rename src/{ => math}/subpaving/subpaving_mpfx.cpp (100%) rename src/{ => math}/subpaving/subpaving_mpfx.h (100%) rename src/{ => math}/subpaving/subpaving_mpq.cpp (100%) rename src/{ => math}/subpaving/subpaving_mpq.h (100%) rename src/{ => math}/subpaving/subpaving_t.h (100%) rename src/{ => math}/subpaving/subpaving_t_def.h (100%) rename src/{ => math}/subpaving/subpaving_types.h (100%) rename src/{subpaving_tactic => math/subpaving/tactic}/expr2subpaving.cpp (100%) rename src/{subpaving_tactic => math/subpaving/tactic}/expr2subpaving.h (100%) rename src/{subpaving_tactic => math/subpaving/tactic}/subpaving_tactic.cpp (100%) rename src/{subpaving_tactic => math/subpaving/tactic}/subpaving_tactic.h (100%) rename src/{nlsat_tactic => nlsat/tactic}/goal2nlsat.cpp (100%) rename src/{nlsat_tactic => nlsat/tactic}/goal2nlsat.h (100%) rename src/{nlsat_tactic => nlsat/tactic}/nlsat_tactic.cpp (100%) rename src/{nlsat_tactic => nlsat/tactic}/nlsat_tactic.h (100%) rename src/{nlsat_tactic => nlsat/tactic}/qfnra_nlsat_tactic.cpp (100%) rename src/{nlsat_tactic => nlsat/tactic}/qfnra_nlsat_tactic.h (100%) rename src/{sat_strategy => sat/strategy}/assertion_set2sat.cpp (100%) rename src/{sat_strategy => sat/strategy}/assertion_set2sat.h (100%) rename src/{sat_strategy => sat/strategy}/sat_solver_strategy.cpp (100%) rename src/{sat_strategy => sat/strategy}/sat_solver_strategy.h (100%) rename src/{sat_tactic => sat/tactic}/atom2bool_var.cpp (100%) rename src/{sat_tactic => sat/tactic}/atom2bool_var.h (100%) rename src/{sat_tactic => sat/tactic}/goal2sat.cpp (100%) rename src/{sat_tactic => sat/tactic}/goal2sat.h (100%) rename src/{sat_tactic => sat/tactic}/sat_tactic.cpp (100%) rename src/{sat_tactic => sat/tactic}/sat_tactic.h (100%) rename src/{smt_tactic => smt/tactic}/smt_tactic.cpp (100%) rename src/{smt_tactic => smt/tactic}/smt_tactic.h (100%) rename src/{ => smt}/user_plugin/user_decl_plugin.cpp (100%) rename src/{ => smt}/user_plugin/user_decl_plugin.h (100%) rename src/{ => smt}/user_plugin/user_simplifier_plugin.cpp (100%) rename src/{ => smt}/user_plugin/user_simplifier_plugin.h (100%) rename src/{ => smt}/user_plugin/user_smt_theory.cpp (100%) rename src/{ => smt}/user_plugin/user_smt_theory.h (100%) rename src/{ => test}/fuzzing/expr_delta.cpp (100%) rename src/{ => test}/fuzzing/expr_delta.h (100%) rename src/{ => test}/fuzzing/expr_rand.cpp (100%) rename src/{ => test}/fuzzing/expr_rand.h (100%) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 590e8a50b..e260d99c7 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -19,11 +19,11 @@ parse_options() # 'NDEBUG;_EXTERNAL_RELEASE') add_lib('util', []) -add_lib('polynomial', ['util']) +add_lib('polynomial', ['util'], 'math/polynomial') add_lib('sat', ['util']) # nlsat only reuses the file sat_types.h from sat add_lib('nlsat', ['polynomial', 'sat']) -add_lib('subpaving', ['util']) +add_lib('subpaving', ['util'], 'math/subpaving') add_lib('ast', ['util', 'polynomial']) add_lib('rewriter', ['ast', 'polynomial']) # Simplifier module will be deleted in the future. @@ -47,31 +47,31 @@ add_lib('spc', ['simplifier', 'substitution', 'old_params', 'pattern']) add_lib('parser_util', ['ast']) add_lib('smt2parser', ['cmd_context', 'parser_util']) add_lib('macros', ['simplifier', 'old_params']) -add_lib('grobner', ['ast']) -add_lib('euclid', ['util']) +add_lib('grobner', ['ast'], 'math/grobner') +add_lib('euclid', ['util'], 'math/euclid') add_lib('proof_checker', ['rewriter', 'spc']) -add_lib('bit_blaster', ['rewriter', 'simplifier', 'old_params', 'tactic', 'assertion_set']) +add_lib('bit_blaster', ['rewriter', 'simplifier', 'old_params', 'tactic', 'assertion_set'], 'bv/bit_blaster') add_lib('smt', ['assertion_set', 'bit_blaster', 'macros', 'normal_forms', 'cmd_context', 'substitution', 'grobner', 'euclid', 'proof_checker', 'pattern', 'parser_util']) -add_lib('user_plugin', ['smt']) +add_lib('user_plugin', ['smt'], 'smt/user_plugin') add_lib('core_tactics', ['tactic', 'normal_forms']) -add_lib('sat_tactic', ['tactic', 'sat']) -add_lib('sat_strategy', ['assertion_set', 'sat_tactic']) +add_lib('sat_tactic', ['tactic', 'sat'], 'sat/tactic') +add_lib('sat_strategy', ['assertion_set', 'sat_tactic'], 'sat/strategy') add_lib('arith_tactics', ['core_tactics', 'assertion_set', 'sat', 'sat_strategy']) -add_lib('nlsat_tactic', ['nlsat', 'sat_tactic', 'arith_tactics']) -add_lib('subpaving_tactic', ['core_tactics', 'subpaving']) -add_lib('bv_tactics', ['tactic', 'bit_blaster']) -add_lib('fuzzing', ['ast']) +add_lib('nlsat_tactic', ['nlsat', 'sat_tactic', 'arith_tactics'], 'nlsat/tactic') +add_lib('subpaving_tactic', ['core_tactics', 'subpaving'], 'math/subpaving/tactic') +add_lib('bv_tactics', ['tactic', 'bit_blaster'], 'bv/tactics') +add_lib('fuzzing', ['ast'], 'test/fuzzing') add_lib('fpa', ['core_tactics', 'bv_tactics', 'sat_tactic']) -add_lib('smt_tactic', ['smt']) -add_lib('extra_cmds', ['cmd_context', 'subpaving_tactic', 'arith_tactics']) -add_lib('sls_tactic', ['tactic', 'normal_forms', 'core_tactics', 'bv_tactics']) +add_lib('smt_tactic', ['smt'], 'smt/tactic') +add_lib('extra_cmds', ['cmd_context', 'subpaving_tactic', 'arith_tactics'], 'cmd_context/extra_cmds') +add_lib('sls_tactic', ['tactic', 'normal_forms', 'core_tactics', 'bv_tactics'], 'bv/sls_tactic') add_lib('aig', ['cmd_context', 'assertion_set']) # TODO: split muz_qe into muz, qe. Perhaps, we should also consider breaking muz into muz and pdr. add_lib('muz_qe', ['smt', 'sat', 'smt2parser']) add_lib('smtlogic_tactics', ['arith_tactics', 'bv_tactics', 'nlsat_tactic', 'smt_tactic', 'aig', 'muz_qe']) # TODO: rewrite ufbv_strategy as a tactic and move to smtlogic_tactics. -add_lib('ufbv_strategy', ['assertion_set', 'normal_forms', 'macros', 'smt_tactic', 'rewriter']) +add_lib('ufbv_strategy', ['assertion_set', 'normal_forms', 'macros', 'smt_tactic', 'rewriter'], 'bv/ufbv_strategy') add_lib('portfolio', ['smtlogic_tactics', 'ufbv_strategy', 'fpa', 'aig', 'muz_qe', 'sls_tactic', 'subpaving_tactic']) # TODO: delete SMT 1.0 frontend add_lib('api', ['portfolio', 'user_plugin']) diff --git a/src/bit_blaster/bit_blaster.cpp b/src/bv/bit_blaster/bit_blaster.cpp similarity index 100% rename from src/bit_blaster/bit_blaster.cpp rename to src/bv/bit_blaster/bit_blaster.cpp diff --git a/src/bit_blaster/bit_blaster.h b/src/bv/bit_blaster/bit_blaster.h similarity index 100% rename from src/bit_blaster/bit_blaster.h rename to src/bv/bit_blaster/bit_blaster.h diff --git a/src/bit_blaster/bit_blaster_model_converter.cpp b/src/bv/bit_blaster/bit_blaster_model_converter.cpp similarity index 100% rename from src/bit_blaster/bit_blaster_model_converter.cpp rename to src/bv/bit_blaster/bit_blaster_model_converter.cpp diff --git a/src/bit_blaster/bit_blaster_model_converter.h b/src/bv/bit_blaster/bit_blaster_model_converter.h similarity index 100% rename from src/bit_blaster/bit_blaster_model_converter.h rename to src/bv/bit_blaster/bit_blaster_model_converter.h diff --git a/src/bit_blaster/bit_blaster_rewriter.cpp b/src/bv/bit_blaster/bit_blaster_rewriter.cpp similarity index 100% rename from src/bit_blaster/bit_blaster_rewriter.cpp rename to src/bv/bit_blaster/bit_blaster_rewriter.cpp diff --git a/src/bit_blaster/bit_blaster_rewriter.h b/src/bv/bit_blaster/bit_blaster_rewriter.h similarity index 100% rename from src/bit_blaster/bit_blaster_rewriter.h rename to src/bv/bit_blaster/bit_blaster_rewriter.h diff --git a/src/bit_blaster/bit_blaster_tpl.h b/src/bv/bit_blaster/bit_blaster_tpl.h similarity index 100% rename from src/bit_blaster/bit_blaster_tpl.h rename to src/bv/bit_blaster/bit_blaster_tpl.h diff --git a/src/bit_blaster/bit_blaster_tpl_def.h b/src/bv/bit_blaster/bit_blaster_tpl_def.h similarity index 100% rename from src/bit_blaster/bit_blaster_tpl_def.h rename to src/bv/bit_blaster/bit_blaster_tpl_def.h diff --git a/src/bit_blaster/bv1_blaster_tactic.cpp b/src/bv/bit_blaster/bv1_blaster_tactic.cpp similarity index 100% rename from src/bit_blaster/bv1_blaster_tactic.cpp rename to src/bv/bit_blaster/bv1_blaster_tactic.cpp diff --git a/src/bit_blaster/bv1_blaster_tactic.h b/src/bv/bit_blaster/bv1_blaster_tactic.h similarity index 100% rename from src/bit_blaster/bv1_blaster_tactic.h rename to src/bv/bit_blaster/bv1_blaster_tactic.h diff --git a/src/bit_blaster/eager_bit_blaster.cpp b/src/bv/bit_blaster/eager_bit_blaster.cpp similarity index 100% rename from src/bit_blaster/eager_bit_blaster.cpp rename to src/bv/bit_blaster/eager_bit_blaster.cpp diff --git a/src/bit_blaster/eager_bit_blaster.h b/src/bv/bit_blaster/eager_bit_blaster.h similarity index 100% rename from src/bit_blaster/eager_bit_blaster.h rename to src/bv/bit_blaster/eager_bit_blaster.h diff --git a/src/sls_tactic/sls_strategy.h b/src/bv/sls_tactic/sls_strategy.h similarity index 100% rename from src/sls_tactic/sls_strategy.h rename to src/bv/sls_tactic/sls_strategy.h diff --git a/src/sls_tactic/sls_tactic.cpp b/src/bv/sls_tactic/sls_tactic.cpp similarity index 100% rename from src/sls_tactic/sls_tactic.cpp rename to src/bv/sls_tactic/sls_tactic.cpp diff --git a/src/sls_tactic/sls_tactic.h b/src/bv/sls_tactic/sls_tactic.h similarity index 100% rename from src/sls_tactic/sls_tactic.h rename to src/bv/sls_tactic/sls_tactic.h diff --git a/src/bv_tactics/bit_blaster_tactic.cpp b/src/bv/tactics/bit_blaster_tactic.cpp similarity index 100% rename from src/bv_tactics/bit_blaster_tactic.cpp rename to src/bv/tactics/bit_blaster_tactic.cpp diff --git a/src/bv_tactics/bit_blaster_tactic.h b/src/bv/tactics/bit_blaster_tactic.h similarity index 100% rename from src/bv_tactics/bit_blaster_tactic.h rename to src/bv/tactics/bit_blaster_tactic.h diff --git a/src/bv_tactics/bv_size_reduction_tactic.cpp b/src/bv/tactics/bv_size_reduction_tactic.cpp similarity index 100% rename from src/bv_tactics/bv_size_reduction_tactic.cpp rename to src/bv/tactics/bv_size_reduction_tactic.cpp diff --git a/src/bv_tactics/bv_size_reduction_tactic.h b/src/bv/tactics/bv_size_reduction_tactic.h similarity index 100% rename from src/bv_tactics/bv_size_reduction_tactic.h rename to src/bv/tactics/bv_size_reduction_tactic.h diff --git a/src/bv_tactics/max_bv_sharing_tactic.cpp b/src/bv/tactics/max_bv_sharing_tactic.cpp similarity index 100% rename from src/bv_tactics/max_bv_sharing_tactic.cpp rename to src/bv/tactics/max_bv_sharing_tactic.cpp diff --git a/src/bv_tactics/max_bv_sharing_tactic.h b/src/bv/tactics/max_bv_sharing_tactic.h similarity index 100% rename from src/bv_tactics/max_bv_sharing_tactic.h rename to src/bv/tactics/max_bv_sharing_tactic.h diff --git a/src/ufbv_strategy/ufbv_strategy.cpp b/src/bv/ufbv_strategy/ufbv_strategy.cpp similarity index 100% rename from src/ufbv_strategy/ufbv_strategy.cpp rename to src/bv/ufbv_strategy/ufbv_strategy.cpp diff --git a/src/ufbv_strategy/ufbv_strategy.h b/src/bv/ufbv_strategy/ufbv_strategy.h similarity index 100% rename from src/ufbv_strategy/ufbv_strategy.h rename to src/bv/ufbv_strategy/ufbv_strategy.h diff --git a/src/extra_cmds/dbg_cmds.cpp b/src/cmd_context/extra_cmds/dbg_cmds.cpp similarity index 100% rename from src/extra_cmds/dbg_cmds.cpp rename to src/cmd_context/extra_cmds/dbg_cmds.cpp diff --git a/src/extra_cmds/dbg_cmds.h b/src/cmd_context/extra_cmds/dbg_cmds.h similarity index 100% rename from src/extra_cmds/dbg_cmds.h rename to src/cmd_context/extra_cmds/dbg_cmds.h diff --git a/src/extra_cmds/polynomial_cmds.cpp b/src/cmd_context/extra_cmds/polynomial_cmds.cpp similarity index 100% rename from src/extra_cmds/polynomial_cmds.cpp rename to src/cmd_context/extra_cmds/polynomial_cmds.cpp diff --git a/src/extra_cmds/polynomial_cmds.h b/src/cmd_context/extra_cmds/polynomial_cmds.h similarity index 100% rename from src/extra_cmds/polynomial_cmds.h rename to src/cmd_context/extra_cmds/polynomial_cmds.h diff --git a/src/extra_cmds/subpaving_cmds.cpp b/src/cmd_context/extra_cmds/subpaving_cmds.cpp similarity index 100% rename from src/extra_cmds/subpaving_cmds.cpp rename to src/cmd_context/extra_cmds/subpaving_cmds.cpp diff --git a/src/extra_cmds/subpaving_cmds.h b/src/cmd_context/extra_cmds/subpaving_cmds.h similarity index 100% rename from src/extra_cmds/subpaving_cmds.h rename to src/cmd_context/extra_cmds/subpaving_cmds.h diff --git a/src/euclid/euclidean_solver.cpp b/src/math/euclid/euclidean_solver.cpp similarity index 100% rename from src/euclid/euclidean_solver.cpp rename to src/math/euclid/euclidean_solver.cpp diff --git a/src/euclid/euclidean_solver.h b/src/math/euclid/euclidean_solver.h similarity index 100% rename from src/euclid/euclidean_solver.h rename to src/math/euclid/euclidean_solver.h diff --git a/src/grobner/grobner.cpp b/src/math/grobner/grobner.cpp similarity index 100% rename from src/grobner/grobner.cpp rename to src/math/grobner/grobner.cpp diff --git a/src/grobner/grobner.h b/src/math/grobner/grobner.h similarity index 100% rename from src/grobner/grobner.h rename to src/math/grobner/grobner.h diff --git a/src/polynomial/algebraic_numbers.cpp b/src/math/polynomial/algebraic_numbers.cpp similarity index 100% rename from src/polynomial/algebraic_numbers.cpp rename to src/math/polynomial/algebraic_numbers.cpp diff --git a/src/polynomial/algebraic_numbers.h b/src/math/polynomial/algebraic_numbers.h similarity index 100% rename from src/polynomial/algebraic_numbers.h rename to src/math/polynomial/algebraic_numbers.h diff --git a/src/polynomial/linear_eq_solver.h b/src/math/polynomial/linear_eq_solver.h similarity index 100% rename from src/polynomial/linear_eq_solver.h rename to src/math/polynomial/linear_eq_solver.h diff --git a/src/polynomial/polynomial.cpp b/src/math/polynomial/polynomial.cpp similarity index 100% rename from src/polynomial/polynomial.cpp rename to src/math/polynomial/polynomial.cpp diff --git a/src/polynomial/polynomial.h b/src/math/polynomial/polynomial.h similarity index 100% rename from src/polynomial/polynomial.h rename to src/math/polynomial/polynomial.h diff --git a/src/polynomial/polynomial_cache.cpp b/src/math/polynomial/polynomial_cache.cpp similarity index 100% rename from src/polynomial/polynomial_cache.cpp rename to src/math/polynomial/polynomial_cache.cpp diff --git a/src/polynomial/polynomial_cache.h b/src/math/polynomial/polynomial_cache.h similarity index 100% rename from src/polynomial/polynomial_cache.h rename to src/math/polynomial/polynomial_cache.h diff --git a/src/polynomial/polynomial_factorization.cpp b/src/math/polynomial/polynomial_factorization.cpp similarity index 100% rename from src/polynomial/polynomial_factorization.cpp rename to src/math/polynomial/polynomial_factorization.cpp diff --git a/src/polynomial/polynomial_factorization.h b/src/math/polynomial/polynomial_factorization.h similarity index 100% rename from src/polynomial/polynomial_factorization.h rename to src/math/polynomial/polynomial_factorization.h diff --git a/src/polynomial/polynomial_primes.h b/src/math/polynomial/polynomial_primes.h similarity index 100% rename from src/polynomial/polynomial_primes.h rename to src/math/polynomial/polynomial_primes.h diff --git a/src/polynomial/polynomial_var2value.h b/src/math/polynomial/polynomial_var2value.h similarity index 100% rename from src/polynomial/polynomial_var2value.h rename to src/math/polynomial/polynomial_var2value.h diff --git a/src/polynomial/rpolynomial.cpp b/src/math/polynomial/rpolynomial.cpp similarity index 100% rename from src/polynomial/rpolynomial.cpp rename to src/math/polynomial/rpolynomial.cpp diff --git a/src/polynomial/rpolynomial.h b/src/math/polynomial/rpolynomial.h similarity index 100% rename from src/polynomial/rpolynomial.h rename to src/math/polynomial/rpolynomial.h diff --git a/src/polynomial/sexpr2upolynomial.cpp b/src/math/polynomial/sexpr2upolynomial.cpp similarity index 100% rename from src/polynomial/sexpr2upolynomial.cpp rename to src/math/polynomial/sexpr2upolynomial.cpp diff --git a/src/polynomial/sexpr2upolynomial.h b/src/math/polynomial/sexpr2upolynomial.h similarity index 100% rename from src/polynomial/sexpr2upolynomial.h rename to src/math/polynomial/sexpr2upolynomial.h diff --git a/src/polynomial/upolynomial.cpp b/src/math/polynomial/upolynomial.cpp similarity index 100% rename from src/polynomial/upolynomial.cpp rename to src/math/polynomial/upolynomial.cpp diff --git a/src/polynomial/upolynomial.h b/src/math/polynomial/upolynomial.h similarity index 100% rename from src/polynomial/upolynomial.h rename to src/math/polynomial/upolynomial.h diff --git a/src/polynomial/upolynomial_factorization.cpp b/src/math/polynomial/upolynomial_factorization.cpp similarity index 100% rename from src/polynomial/upolynomial_factorization.cpp rename to src/math/polynomial/upolynomial_factorization.cpp diff --git a/src/polynomial/upolynomial_factorization.h b/src/math/polynomial/upolynomial_factorization.h similarity index 100% rename from src/polynomial/upolynomial_factorization.h rename to src/math/polynomial/upolynomial_factorization.h diff --git a/src/polynomial/upolynomial_factorization_int.h b/src/math/polynomial/upolynomial_factorization_int.h similarity index 100% rename from src/polynomial/upolynomial_factorization_int.h rename to src/math/polynomial/upolynomial_factorization_int.h diff --git a/src/subpaving/subpaving.cpp b/src/math/subpaving/subpaving.cpp similarity index 100% rename from src/subpaving/subpaving.cpp rename to src/math/subpaving/subpaving.cpp diff --git a/src/subpaving/subpaving.h b/src/math/subpaving/subpaving.h similarity index 100% rename from src/subpaving/subpaving.h rename to src/math/subpaving/subpaving.h diff --git a/src/subpaving/subpaving_hwf.cpp b/src/math/subpaving/subpaving_hwf.cpp similarity index 100% rename from src/subpaving/subpaving_hwf.cpp rename to src/math/subpaving/subpaving_hwf.cpp diff --git a/src/subpaving/subpaving_hwf.h b/src/math/subpaving/subpaving_hwf.h similarity index 100% rename from src/subpaving/subpaving_hwf.h rename to src/math/subpaving/subpaving_hwf.h diff --git a/src/subpaving/subpaving_mpf.cpp b/src/math/subpaving/subpaving_mpf.cpp similarity index 100% rename from src/subpaving/subpaving_mpf.cpp rename to src/math/subpaving/subpaving_mpf.cpp diff --git a/src/subpaving/subpaving_mpf.h b/src/math/subpaving/subpaving_mpf.h similarity index 100% rename from src/subpaving/subpaving_mpf.h rename to src/math/subpaving/subpaving_mpf.h diff --git a/src/subpaving/subpaving_mpff.cpp b/src/math/subpaving/subpaving_mpff.cpp similarity index 100% rename from src/subpaving/subpaving_mpff.cpp rename to src/math/subpaving/subpaving_mpff.cpp diff --git a/src/subpaving/subpaving_mpff.h b/src/math/subpaving/subpaving_mpff.h similarity index 100% rename from src/subpaving/subpaving_mpff.h rename to src/math/subpaving/subpaving_mpff.h diff --git a/src/subpaving/subpaving_mpfx.cpp b/src/math/subpaving/subpaving_mpfx.cpp similarity index 100% rename from src/subpaving/subpaving_mpfx.cpp rename to src/math/subpaving/subpaving_mpfx.cpp diff --git a/src/subpaving/subpaving_mpfx.h b/src/math/subpaving/subpaving_mpfx.h similarity index 100% rename from src/subpaving/subpaving_mpfx.h rename to src/math/subpaving/subpaving_mpfx.h diff --git a/src/subpaving/subpaving_mpq.cpp b/src/math/subpaving/subpaving_mpq.cpp similarity index 100% rename from src/subpaving/subpaving_mpq.cpp rename to src/math/subpaving/subpaving_mpq.cpp diff --git a/src/subpaving/subpaving_mpq.h b/src/math/subpaving/subpaving_mpq.h similarity index 100% rename from src/subpaving/subpaving_mpq.h rename to src/math/subpaving/subpaving_mpq.h diff --git a/src/subpaving/subpaving_t.h b/src/math/subpaving/subpaving_t.h similarity index 100% rename from src/subpaving/subpaving_t.h rename to src/math/subpaving/subpaving_t.h diff --git a/src/subpaving/subpaving_t_def.h b/src/math/subpaving/subpaving_t_def.h similarity index 100% rename from src/subpaving/subpaving_t_def.h rename to src/math/subpaving/subpaving_t_def.h diff --git a/src/subpaving/subpaving_types.h b/src/math/subpaving/subpaving_types.h similarity index 100% rename from src/subpaving/subpaving_types.h rename to src/math/subpaving/subpaving_types.h diff --git a/src/subpaving_tactic/expr2subpaving.cpp b/src/math/subpaving/tactic/expr2subpaving.cpp similarity index 100% rename from src/subpaving_tactic/expr2subpaving.cpp rename to src/math/subpaving/tactic/expr2subpaving.cpp diff --git a/src/subpaving_tactic/expr2subpaving.h b/src/math/subpaving/tactic/expr2subpaving.h similarity index 100% rename from src/subpaving_tactic/expr2subpaving.h rename to src/math/subpaving/tactic/expr2subpaving.h diff --git a/src/subpaving_tactic/subpaving_tactic.cpp b/src/math/subpaving/tactic/subpaving_tactic.cpp similarity index 100% rename from src/subpaving_tactic/subpaving_tactic.cpp rename to src/math/subpaving/tactic/subpaving_tactic.cpp diff --git a/src/subpaving_tactic/subpaving_tactic.h b/src/math/subpaving/tactic/subpaving_tactic.h similarity index 100% rename from src/subpaving_tactic/subpaving_tactic.h rename to src/math/subpaving/tactic/subpaving_tactic.h diff --git a/src/nlsat_tactic/goal2nlsat.cpp b/src/nlsat/tactic/goal2nlsat.cpp similarity index 100% rename from src/nlsat_tactic/goal2nlsat.cpp rename to src/nlsat/tactic/goal2nlsat.cpp diff --git a/src/nlsat_tactic/goal2nlsat.h b/src/nlsat/tactic/goal2nlsat.h similarity index 100% rename from src/nlsat_tactic/goal2nlsat.h rename to src/nlsat/tactic/goal2nlsat.h diff --git a/src/nlsat_tactic/nlsat_tactic.cpp b/src/nlsat/tactic/nlsat_tactic.cpp similarity index 100% rename from src/nlsat_tactic/nlsat_tactic.cpp rename to src/nlsat/tactic/nlsat_tactic.cpp diff --git a/src/nlsat_tactic/nlsat_tactic.h b/src/nlsat/tactic/nlsat_tactic.h similarity index 100% rename from src/nlsat_tactic/nlsat_tactic.h rename to src/nlsat/tactic/nlsat_tactic.h diff --git a/src/nlsat_tactic/qfnra_nlsat_tactic.cpp b/src/nlsat/tactic/qfnra_nlsat_tactic.cpp similarity index 100% rename from src/nlsat_tactic/qfnra_nlsat_tactic.cpp rename to src/nlsat/tactic/qfnra_nlsat_tactic.cpp diff --git a/src/nlsat_tactic/qfnra_nlsat_tactic.h b/src/nlsat/tactic/qfnra_nlsat_tactic.h similarity index 100% rename from src/nlsat_tactic/qfnra_nlsat_tactic.h rename to src/nlsat/tactic/qfnra_nlsat_tactic.h diff --git a/src/sat_strategy/assertion_set2sat.cpp b/src/sat/strategy/assertion_set2sat.cpp similarity index 100% rename from src/sat_strategy/assertion_set2sat.cpp rename to src/sat/strategy/assertion_set2sat.cpp diff --git a/src/sat_strategy/assertion_set2sat.h b/src/sat/strategy/assertion_set2sat.h similarity index 100% rename from src/sat_strategy/assertion_set2sat.h rename to src/sat/strategy/assertion_set2sat.h diff --git a/src/sat_strategy/sat_solver_strategy.cpp b/src/sat/strategy/sat_solver_strategy.cpp similarity index 100% rename from src/sat_strategy/sat_solver_strategy.cpp rename to src/sat/strategy/sat_solver_strategy.cpp diff --git a/src/sat_strategy/sat_solver_strategy.h b/src/sat/strategy/sat_solver_strategy.h similarity index 100% rename from src/sat_strategy/sat_solver_strategy.h rename to src/sat/strategy/sat_solver_strategy.h diff --git a/src/sat_tactic/atom2bool_var.cpp b/src/sat/tactic/atom2bool_var.cpp similarity index 100% rename from src/sat_tactic/atom2bool_var.cpp rename to src/sat/tactic/atom2bool_var.cpp diff --git a/src/sat_tactic/atom2bool_var.h b/src/sat/tactic/atom2bool_var.h similarity index 100% rename from src/sat_tactic/atom2bool_var.h rename to src/sat/tactic/atom2bool_var.h diff --git a/src/sat_tactic/goal2sat.cpp b/src/sat/tactic/goal2sat.cpp similarity index 100% rename from src/sat_tactic/goal2sat.cpp rename to src/sat/tactic/goal2sat.cpp diff --git a/src/sat_tactic/goal2sat.h b/src/sat/tactic/goal2sat.h similarity index 100% rename from src/sat_tactic/goal2sat.h rename to src/sat/tactic/goal2sat.h diff --git a/src/sat_tactic/sat_tactic.cpp b/src/sat/tactic/sat_tactic.cpp similarity index 100% rename from src/sat_tactic/sat_tactic.cpp rename to src/sat/tactic/sat_tactic.cpp diff --git a/src/sat_tactic/sat_tactic.h b/src/sat/tactic/sat_tactic.h similarity index 100% rename from src/sat_tactic/sat_tactic.h rename to src/sat/tactic/sat_tactic.h diff --git a/src/smt_tactic/smt_tactic.cpp b/src/smt/tactic/smt_tactic.cpp similarity index 100% rename from src/smt_tactic/smt_tactic.cpp rename to src/smt/tactic/smt_tactic.cpp diff --git a/src/smt_tactic/smt_tactic.h b/src/smt/tactic/smt_tactic.h similarity index 100% rename from src/smt_tactic/smt_tactic.h rename to src/smt/tactic/smt_tactic.h diff --git a/src/user_plugin/user_decl_plugin.cpp b/src/smt/user_plugin/user_decl_plugin.cpp similarity index 100% rename from src/user_plugin/user_decl_plugin.cpp rename to src/smt/user_plugin/user_decl_plugin.cpp diff --git a/src/user_plugin/user_decl_plugin.h b/src/smt/user_plugin/user_decl_plugin.h similarity index 100% rename from src/user_plugin/user_decl_plugin.h rename to src/smt/user_plugin/user_decl_plugin.h diff --git a/src/user_plugin/user_simplifier_plugin.cpp b/src/smt/user_plugin/user_simplifier_plugin.cpp similarity index 100% rename from src/user_plugin/user_simplifier_plugin.cpp rename to src/smt/user_plugin/user_simplifier_plugin.cpp diff --git a/src/user_plugin/user_simplifier_plugin.h b/src/smt/user_plugin/user_simplifier_plugin.h similarity index 100% rename from src/user_plugin/user_simplifier_plugin.h rename to src/smt/user_plugin/user_simplifier_plugin.h diff --git a/src/user_plugin/user_smt_theory.cpp b/src/smt/user_plugin/user_smt_theory.cpp similarity index 100% rename from src/user_plugin/user_smt_theory.cpp rename to src/smt/user_plugin/user_smt_theory.cpp diff --git a/src/user_plugin/user_smt_theory.h b/src/smt/user_plugin/user_smt_theory.h similarity index 100% rename from src/user_plugin/user_smt_theory.h rename to src/smt/user_plugin/user_smt_theory.h diff --git a/src/fuzzing/expr_delta.cpp b/src/test/fuzzing/expr_delta.cpp similarity index 100% rename from src/fuzzing/expr_delta.cpp rename to src/test/fuzzing/expr_delta.cpp diff --git a/src/fuzzing/expr_delta.h b/src/test/fuzzing/expr_delta.h similarity index 100% rename from src/fuzzing/expr_delta.h rename to src/test/fuzzing/expr_delta.h diff --git a/src/fuzzing/expr_rand.cpp b/src/test/fuzzing/expr_rand.cpp similarity index 100% rename from src/fuzzing/expr_rand.cpp rename to src/test/fuzzing/expr_rand.cpp diff --git a/src/fuzzing/expr_rand.h b/src/test/fuzzing/expr_rand.h similarity index 100% rename from src/fuzzing/expr_rand.h rename to src/test/fuzzing/expr_rand.h From 0a4446ae269bfb28f6cba1c2a234b9c5e5527389 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 22:14:35 -0700 Subject: [PATCH 48/54] reorganizing the code Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 34 +++++++++---------- .../ufbv_strategy/ufbv_strategy.cpp | 0 .../ufbv_strategy/ufbv_strategy.h | 0 .../array_property_expander.cpp | 0 .../array_property/array_property_expander.h | 0 .../array_property_recognizer.cpp | 0 .../array_property_recognizer.h | 0 src/{ => ast}/macros/macro_finder.cpp | 0 src/{ => ast}/macros/macro_finder.h | 0 src/{ => ast}/macros/macro_manager.cpp | 0 src/{ => ast}/macros/macro_manager.h | 0 src/{ => ast}/macros/macro_substitution.cpp | 0 src/{ => ast}/macros/macro_substitution.h | 0 src/{ => ast}/macros/macro_util.cpp | 0 src/{ => ast}/macros/macro_util.h | 0 src/{ => ast}/macros/quasi_macros.cpp | 0 src/{ => ast}/macros/quasi_macros.h | 0 src/{ => ast}/pattern/pattern_inference.cpp | 0 src/{ => ast}/pattern/pattern_inference.h | 0 src/{ => ast}/proof_checker/proof_checker.cpp | 0 src/{ => ast}/proof_checker/proof_checker.h | 0 src/{ => ast}/rewriter/arith_rewriter.cpp | 0 src/{ => ast}/rewriter/arith_rewriter.h | 0 src/{ => ast}/rewriter/array_rewriter.cpp | 0 src/{ => ast}/rewriter/array_rewriter.h | 0 src/{ => ast}/rewriter/bool_rewriter.cpp | 0 src/{ => ast}/rewriter/bool_rewriter.h | 0 src/{ => ast}/rewriter/bv_rewriter.cpp | 0 src/{ => ast}/rewriter/bv_rewriter.h | 0 src/{ => ast}/rewriter/datatype_rewriter.cpp | 0 src/{ => ast}/rewriter/datatype_rewriter.h | 0 src/{ => ast}/rewriter/der.cpp | 0 src/{ => ast}/rewriter/der.h | 0 src/{ => ast}/rewriter/dl_rewriter.cpp | 0 src/{ => ast}/rewriter/dl_rewriter.h | 0 src/{ => ast}/rewriter/expr_replacer.cpp | 0 src/{ => ast}/rewriter/expr_replacer.h | 0 src/{ => ast}/rewriter/factor_rewriter.cpp | 0 src/{ => ast}/rewriter/factor_rewriter.h | 0 src/{ => ast}/rewriter/float_rewriter.cpp | 0 src/{ => ast}/rewriter/float_rewriter.h | 0 src/{ => ast}/rewriter/mk_simplified_app.cpp | 0 src/{ => ast}/rewriter/mk_simplified_app.h | 0 src/{ => ast}/rewriter/poly_rewriter.h | 0 src/{ => ast}/rewriter/poly_rewriter_def.h | 0 src/{ => ast}/rewriter/quant_hoist.cpp | 0 src/{ => ast}/rewriter/quant_hoist.h | 0 src/{ => ast}/rewriter/rewriter.cpp | 0 src/{ => ast}/rewriter/rewriter.h | 0 src/{ => ast}/rewriter/rewriter.txt | 0 src/{ => ast}/rewriter/rewriter_def.h | 0 src/{ => ast}/rewriter/rewriter_types.h | 0 src/{ => ast}/rewriter/th_rewriter.cpp | 0 src/{ => ast}/rewriter/th_rewriter.h | 0 src/{ => ast}/rewriter/var_subst.cpp | 0 src/{ => ast}/rewriter/var_subst.h | 0 src/{ => ast}/simplifier/README | 0 .../simplifier/arith_simplifier_params.cpp | 0 .../simplifier/arith_simplifier_params.h | 0 .../simplifier/arith_simplifier_plugin.cpp | 0 .../simplifier/arith_simplifier_plugin.h | 0 .../simplifier/array_simplifier_plugin.cpp | 0 .../simplifier/array_simplifier_plugin.h | 0 src/{ => ast}/simplifier/base_simplifier.h | 0 .../simplifier/basic_simplifier_plugin.cpp | 0 .../simplifier/basic_simplifier_plugin.h | 0 src/{ => ast}/simplifier/bit2int.cpp | 0 src/{ => ast}/simplifier/bit2int.h | 0 src/{ => ast}/simplifier/bv_elim.cpp | 0 src/{ => ast}/simplifier/bv_elim.h | 0 .../simplifier/bv_simplifier_params.h | 0 .../simplifier/bv_simplifier_plugin.cpp | 0 .../simplifier/bv_simplifier_plugin.h | 0 .../simplifier/datatype_simplifier_plugin.cpp | 0 .../simplifier/datatype_simplifier_plugin.h | 0 .../simplifier/distribute_forall.cpp | 0 src/{ => ast}/simplifier/distribute_forall.h | 0 src/{ => ast}/simplifier/elim_bounds.cpp | 0 src/{ => ast}/simplifier/elim_bounds.h | 0 src/{ => ast}/simplifier/inj_axiom.cpp | 0 src/{ => ast}/simplifier/inj_axiom.h | 0 .../simplifier/maximise_ac_sharing.cpp | 0 .../simplifier/maximise_ac_sharing.h | 0 .../simplifier/poly_simplifier_plugin.cpp | 0 .../simplifier/poly_simplifier_plugin.h | 0 src/{ => ast}/simplifier/pull_ite_tree.cpp | 0 src/{ => ast}/simplifier/pull_ite_tree.h | 0 src/{ => ast}/simplifier/push_app_ite.cpp | 0 src/{ => ast}/simplifier/push_app_ite.h | 0 src/{ => ast}/simplifier/simplifier.cpp | 0 src/{ => ast}/simplifier/simplifier.h | 0 .../simplifier/simplifier_plugin.cpp | 0 src/{ => ast}/simplifier/simplifier_plugin.h | 0 .../simplifier/theory_array_params.h | 0 src/{ => ast}/substitution/expr_offset.h | 0 src/{ => ast}/substitution/expr_offset_map.h | 0 src/{ => ast}/substitution/matcher.cpp | 0 src/{ => ast}/substitution/matcher.h | 0 src/{ => ast}/substitution/substitution.cpp | 0 src/{ => ast}/substitution/substitution.h | 0 .../substitution/substitution_tree.cpp | 0 .../substitution/substitution_tree.h | 0 src/{ => ast}/substitution/unifier.cpp | 0 src/{ => ast}/substitution/unifier.h | 0 src/{ => ast}/substitution/var_offset_map.h | 0 src/{ => tactic}/aig/aig.cpp | 0 src/{ => tactic}/aig/aig.h | 0 src/{ => tactic}/aig/aig_tactic.cpp | 0 src/{ => tactic}/aig/aig_tactic.h | 0 src/{ => tactic}/arith_tactics/add_bounds.cpp | 0 src/{ => tactic}/arith_tactics/add_bounds.h | 0 .../arith_tactics/add_bounds_tactic.cpp | 0 .../arith_tactics/add_bounds_tactic.h | 0 .../arith_tactics/bound_manager.cpp | 0 .../arith_tactics/bound_manager.h | 0 .../arith_tactics/bound_propagator.cpp | 0 .../arith_tactics/bound_propagator.h | 0 .../arith_tactics/bv2int_rewriter.cpp | 0 .../arith_tactics/bv2int_rewriter.h | 0 .../arith_tactics/bv2real_rewriter.cpp | 0 .../arith_tactics/bv2real_rewriter.h | 0 .../arith_tactics/degree_shift_tactic.cpp | 0 .../arith_tactics/degree_shift_tactic.h | 0 .../arith_tactics/diff_neq_tactic.cpp | 0 .../arith_tactics/diff_neq_tactic.h | 0 .../arith_tactics/elim_term_ite_strategy.cpp | 0 .../arith_tactics/elim_term_ite_strategy.h | 0 .../arith_tactics/factor_tactic.cpp | 0 .../arith_tactics/factor_tactic.h | 0 .../arith_tactics/fix_dl_var_tactic.cpp | 0 .../arith_tactics/fix_dl_var_tactic.h | 0 src/{ => tactic}/arith_tactics/fm_tactic.cpp | 0 src/{ => tactic}/arith_tactics/fm_tactic.h | 0 .../arith_tactics/lia2pb_tactic.cpp | 0 .../arith_tactics/lia2pb_tactic.h | 0 .../arith_tactics/linear_equation.cpp | 0 .../arith_tactics/linear_equation.h | 0 src/{ => tactic}/arith_tactics/lu.cpp | 0 src/{ => tactic}/arith_tactics/lu.h | 0 src/{ => tactic}/arith_tactics/mip_tactic.cpp | 0 src/{ => tactic}/arith_tactics/mip_tactic.h | 0 .../arith_tactics/nla2bv_tactic.cpp | 0 .../arith_tactics/nla2bv_tactic.h | 0 .../arith_tactics/normalize_bounds_tactic.cpp | 0 .../arith_tactics/normalize_bounds_tactic.h | 0 .../arith_tactics/pb2bv_model_converter.cpp | 0 .../arith_tactics/pb2bv_model_converter.h | 0 .../arith_tactics/pb2bv_tactic.cpp | 0 src/{ => tactic}/arith_tactics/pb2bv_tactic.h | 0 .../arith_tactics/probe_arith.cpp | 0 src/{ => tactic}/arith_tactics/probe_arith.h | 0 .../arith_tactics/propagate_ineqs_tactic.cpp | 0 .../arith_tactics/propagate_ineqs_tactic.h | 0 .../arith_tactics/purify_arith_tactic.cpp | 0 .../arith_tactics/purify_arith_tactic.h | 0 .../arith_tactics/recover_01_tactic.cpp | 0 .../arith_tactics/recover_01_tactic.h | 0 src/{ => tactic}/arith_tactics/smt_arith.cpp | 0 src/{ => tactic}/arith_tactics/smt_arith.h | 0 .../arith_tactics/smt_formula_compiler.cpp | 0 .../arith_tactics/smt_formula_compiler.h | 0 .../arith_tactics/smt_solver_exp.cpp | 0 .../arith_tactics/smt_solver_exp.h | 0 .../arith_tactics/smt_solver_strategy.cpp | 0 .../arith_tactics/smt_solver_strategy.h | 0 .../arith_tactics/smt_solver_types.h | 0 .../bit_blaster/bit_blaster.cpp | 0 src/{bv => tactic}/bit_blaster/bit_blaster.h | 0 .../bit_blaster_model_converter.cpp | 0 .../bit_blaster/bit_blaster_model_converter.h | 0 .../bit_blaster/bit_blaster_rewriter.cpp | 0 .../bit_blaster/bit_blaster_rewriter.h | 0 .../bit_blaster/bit_blaster_tpl.h | 0 .../bit_blaster/bit_blaster_tpl_def.h | 0 .../bit_blaster/bv1_blaster_tactic.cpp | 0 .../bit_blaster/bv1_blaster_tactic.h | 0 .../bit_blaster/eager_bit_blaster.cpp | 0 .../bit_blaster/eager_bit_blaster.h | 0 .../bv_tactics}/bit_blaster_tactic.cpp | 0 .../bv_tactics}/bit_blaster_tactic.h | 0 .../bv_tactics}/bv_size_reduction_tactic.cpp | 0 .../bv_tactics}/bv_size_reduction_tactic.h | 0 .../bv_tactics}/max_bv_sharing_tactic.cpp | 0 .../bv_tactics}/max_bv_sharing_tactic.h | 0 .../core_tactics/cofactor_elim_term_ite.cpp | 0 .../core_tactics/cofactor_elim_term_ite.h | 0 .../core_tactics/cofactor_term_ite_tactic.cpp | 0 .../core_tactics/cofactor_term_ite_tactic.h | 0 .../core_tactics/ctx_simplify_tactic.cpp | 0 .../core_tactics/ctx_simplify_tactic.h | 0 src/{ => tactic}/core_tactics/der_tactic.cpp | 0 src/{ => tactic}/core_tactics/der_tactic.h | 0 .../core_tactics/distribute_forall_tactic.cpp | 0 .../core_tactics/distribute_forall_tactic.h | 0 .../core_tactics/elim_term_ite_tactic.cpp | 0 .../core_tactics/elim_term_ite_tactic.h | 0 .../core_tactics/elim_uncnstr_tactic.cpp | 0 .../core_tactics/elim_uncnstr_tactic.h | 0 src/{ => tactic}/core_tactics/nnf_tactic.cpp | 0 src/{ => tactic}/core_tactics/nnf_tactic.h | 0 src/{ => tactic}/core_tactics/occf_tactic.cpp | 0 src/{ => tactic}/core_tactics/occf_tactic.h | 0 .../core_tactics/propagate_values_tactic.cpp | 0 .../core_tactics/propagate_values_tactic.h | 0 .../core_tactics/reduce_args_tactic.cpp | 0 .../core_tactics/reduce_args_tactic.h | 0 .../core_tactics/simplify_tactic.cpp | 0 .../core_tactics/simplify_tactic.h | 0 .../core_tactics/solve_eqs_tactic.cpp | 0 .../core_tactics/solve_eqs_tactic.h | 0 .../core_tactics/split_clause_tactic.cpp | 0 .../core_tactics/split_clause_tactic.h | 0 .../core_tactics/symmetry_reduce_tactic.cpp | 0 .../core_tactics/symmetry_reduce_tactic.h | 0 .../core_tactics/tseitin_cnf_tactic.cpp | 0 .../core_tactics/tseitin_cnf_tactic.h | 0 src/{ => tactic}/fpa/fpa2bv_converter.cpp | 0 src/{ => tactic}/fpa/fpa2bv_converter.h | 0 src/{ => tactic}/fpa/fpa2bv_tactic.cpp | 0 src/{ => tactic}/fpa/fpa2bv_tactic.h | 0 src/{ => tactic}/fpa/qffpa_tactic.cpp | 0 src/{ => tactic}/fpa/qffpa_tactic.h | 0 src/{ => tactic}/portfolio/default_tactic.cpp | 0 src/{ => tactic}/portfolio/default_tactic.h | 0 .../portfolio/install_tactics.cpp | 0 src/{ => tactic}/portfolio/install_tactics.h | 0 .../portfolio/smt_strategic_solver.cpp | 0 .../portfolio/smt_strategic_solver.h | 0 src/{bv => tactic}/sls_tactic/sls_strategy.h | 0 src/{bv => tactic}/sls_tactic/sls_tactic.cpp | 0 src/{bv => tactic}/sls_tactic/sls_tactic.h | 0 .../smtlogic_tactics/nra_tactic.cpp | 0 .../smtlogic_tactics/nra_tactic.h | 0 .../smtlogic_tactics/qfaufbv_tactic.cpp | 0 .../smtlogic_tactics/qfaufbv_tactic.h | 0 .../smtlogic_tactics/qfauflia_tactic.cpp | 0 .../smtlogic_tactics/qfauflia_tactic.h | 0 .../smtlogic_tactics/qfbv_tactic.cpp | 0 .../smtlogic_tactics/qfbv_tactic.h | 0 .../smtlogic_tactics/qfidl_tactic.cpp | 0 .../smtlogic_tactics/qfidl_tactic.h | 0 .../smtlogic_tactics/qflia_tactic.cpp | 0 .../smtlogic_tactics/qflia_tactic.h | 0 .../smtlogic_tactics/qflra_tactic.cpp | 0 .../smtlogic_tactics/qflra_tactic.h | 0 .../smtlogic_tactics/qfnia_tactic.cpp | 0 .../smtlogic_tactics/qfnia_tactic.h | 0 .../smtlogic_tactics/qfnra_tactic.cpp | 0 .../smtlogic_tactics/qfnra_tactic.h | 0 .../smtlogic_tactics/qfuf_tactic.cpp | 0 .../smtlogic_tactics/qfuf_tactic.h | 0 .../smtlogic_tactics/qfufbv_tactic.cpp | 0 .../smtlogic_tactics/qfufbv_tactic.h | 0 .../smtlogic_tactics/quant_tactics.cpp | 0 .../smtlogic_tactics/quant_tactics.h | 0 255 files changed, 17 insertions(+), 17 deletions(-) rename src/{bv => assertion_set}/ufbv_strategy/ufbv_strategy.cpp (100%) rename src/{bv => assertion_set}/ufbv_strategy/ufbv_strategy.h (100%) rename src/{ => ast}/array_property/array_property_expander.cpp (100%) rename src/{ => ast}/array_property/array_property_expander.h (100%) rename src/{ => ast}/array_property/array_property_recognizer.cpp (100%) rename src/{ => ast}/array_property/array_property_recognizer.h (100%) rename src/{ => ast}/macros/macro_finder.cpp (100%) rename src/{ => ast}/macros/macro_finder.h (100%) rename src/{ => ast}/macros/macro_manager.cpp (100%) rename src/{ => ast}/macros/macro_manager.h (100%) rename src/{ => ast}/macros/macro_substitution.cpp (100%) rename src/{ => ast}/macros/macro_substitution.h (100%) rename src/{ => ast}/macros/macro_util.cpp (100%) rename src/{ => ast}/macros/macro_util.h (100%) rename src/{ => ast}/macros/quasi_macros.cpp (100%) rename src/{ => ast}/macros/quasi_macros.h (100%) rename src/{ => ast}/pattern/pattern_inference.cpp (100%) rename src/{ => ast}/pattern/pattern_inference.h (100%) rename src/{ => ast}/proof_checker/proof_checker.cpp (100%) rename src/{ => ast}/proof_checker/proof_checker.h (100%) rename src/{ => ast}/rewriter/arith_rewriter.cpp (100%) rename src/{ => ast}/rewriter/arith_rewriter.h (100%) rename src/{ => ast}/rewriter/array_rewriter.cpp (100%) rename src/{ => ast}/rewriter/array_rewriter.h (100%) rename src/{ => ast}/rewriter/bool_rewriter.cpp (100%) rename src/{ => ast}/rewriter/bool_rewriter.h (100%) rename src/{ => ast}/rewriter/bv_rewriter.cpp (100%) rename src/{ => ast}/rewriter/bv_rewriter.h (100%) rename src/{ => ast}/rewriter/datatype_rewriter.cpp (100%) rename src/{ => ast}/rewriter/datatype_rewriter.h (100%) rename src/{ => ast}/rewriter/der.cpp (100%) rename src/{ => ast}/rewriter/der.h (100%) rename src/{ => ast}/rewriter/dl_rewriter.cpp (100%) rename src/{ => ast}/rewriter/dl_rewriter.h (100%) rename src/{ => ast}/rewriter/expr_replacer.cpp (100%) rename src/{ => ast}/rewriter/expr_replacer.h (100%) rename src/{ => ast}/rewriter/factor_rewriter.cpp (100%) rename src/{ => ast}/rewriter/factor_rewriter.h (100%) rename src/{ => ast}/rewriter/float_rewriter.cpp (100%) rename src/{ => ast}/rewriter/float_rewriter.h (100%) rename src/{ => ast}/rewriter/mk_simplified_app.cpp (100%) rename src/{ => ast}/rewriter/mk_simplified_app.h (100%) rename src/{ => ast}/rewriter/poly_rewriter.h (100%) rename src/{ => ast}/rewriter/poly_rewriter_def.h (100%) rename src/{ => ast}/rewriter/quant_hoist.cpp (100%) rename src/{ => ast}/rewriter/quant_hoist.h (100%) rename src/{ => ast}/rewriter/rewriter.cpp (100%) rename src/{ => ast}/rewriter/rewriter.h (100%) rename src/{ => ast}/rewriter/rewriter.txt (100%) rename src/{ => ast}/rewriter/rewriter_def.h (100%) rename src/{ => ast}/rewriter/rewriter_types.h (100%) rename src/{ => ast}/rewriter/th_rewriter.cpp (100%) rename src/{ => ast}/rewriter/th_rewriter.h (100%) rename src/{ => ast}/rewriter/var_subst.cpp (100%) rename src/{ => ast}/rewriter/var_subst.h (100%) rename src/{ => ast}/simplifier/README (100%) rename src/{ => ast}/simplifier/arith_simplifier_params.cpp (100%) rename src/{ => ast}/simplifier/arith_simplifier_params.h (100%) rename src/{ => ast}/simplifier/arith_simplifier_plugin.cpp (100%) rename src/{ => ast}/simplifier/arith_simplifier_plugin.h (100%) rename src/{ => ast}/simplifier/array_simplifier_plugin.cpp (100%) rename src/{ => ast}/simplifier/array_simplifier_plugin.h (100%) rename src/{ => ast}/simplifier/base_simplifier.h (100%) rename src/{ => ast}/simplifier/basic_simplifier_plugin.cpp (100%) rename src/{ => ast}/simplifier/basic_simplifier_plugin.h (100%) rename src/{ => ast}/simplifier/bit2int.cpp (100%) rename src/{ => ast}/simplifier/bit2int.h (100%) rename src/{ => ast}/simplifier/bv_elim.cpp (100%) rename src/{ => ast}/simplifier/bv_elim.h (100%) rename src/{ => ast}/simplifier/bv_simplifier_params.h (100%) rename src/{ => ast}/simplifier/bv_simplifier_plugin.cpp (100%) rename src/{ => ast}/simplifier/bv_simplifier_plugin.h (100%) rename src/{ => ast}/simplifier/datatype_simplifier_plugin.cpp (100%) rename src/{ => ast}/simplifier/datatype_simplifier_plugin.h (100%) rename src/{ => ast}/simplifier/distribute_forall.cpp (100%) rename src/{ => ast}/simplifier/distribute_forall.h (100%) rename src/{ => ast}/simplifier/elim_bounds.cpp (100%) rename src/{ => ast}/simplifier/elim_bounds.h (100%) rename src/{ => ast}/simplifier/inj_axiom.cpp (100%) rename src/{ => ast}/simplifier/inj_axiom.h (100%) rename src/{ => ast}/simplifier/maximise_ac_sharing.cpp (100%) rename src/{ => ast}/simplifier/maximise_ac_sharing.h (100%) rename src/{ => ast}/simplifier/poly_simplifier_plugin.cpp (100%) rename src/{ => ast}/simplifier/poly_simplifier_plugin.h (100%) rename src/{ => ast}/simplifier/pull_ite_tree.cpp (100%) rename src/{ => ast}/simplifier/pull_ite_tree.h (100%) rename src/{ => ast}/simplifier/push_app_ite.cpp (100%) rename src/{ => ast}/simplifier/push_app_ite.h (100%) rename src/{ => ast}/simplifier/simplifier.cpp (100%) rename src/{ => ast}/simplifier/simplifier.h (100%) rename src/{ => ast}/simplifier/simplifier_plugin.cpp (100%) rename src/{ => ast}/simplifier/simplifier_plugin.h (100%) rename src/{ => ast}/simplifier/theory_array_params.h (100%) rename src/{ => ast}/substitution/expr_offset.h (100%) rename src/{ => ast}/substitution/expr_offset_map.h (100%) rename src/{ => ast}/substitution/matcher.cpp (100%) rename src/{ => ast}/substitution/matcher.h (100%) rename src/{ => ast}/substitution/substitution.cpp (100%) rename src/{ => ast}/substitution/substitution.h (100%) rename src/{ => ast}/substitution/substitution_tree.cpp (100%) rename src/{ => ast}/substitution/substitution_tree.h (100%) rename src/{ => ast}/substitution/unifier.cpp (100%) rename src/{ => ast}/substitution/unifier.h (100%) rename src/{ => ast}/substitution/var_offset_map.h (100%) rename src/{ => tactic}/aig/aig.cpp (100%) rename src/{ => tactic}/aig/aig.h (100%) rename src/{ => tactic}/aig/aig_tactic.cpp (100%) rename src/{ => tactic}/aig/aig_tactic.h (100%) rename src/{ => tactic}/arith_tactics/add_bounds.cpp (100%) rename src/{ => tactic}/arith_tactics/add_bounds.h (100%) rename src/{ => tactic}/arith_tactics/add_bounds_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/add_bounds_tactic.h (100%) rename src/{ => tactic}/arith_tactics/bound_manager.cpp (100%) rename src/{ => tactic}/arith_tactics/bound_manager.h (100%) rename src/{ => tactic}/arith_tactics/bound_propagator.cpp (100%) rename src/{ => tactic}/arith_tactics/bound_propagator.h (100%) rename src/{ => tactic}/arith_tactics/bv2int_rewriter.cpp (100%) rename src/{ => tactic}/arith_tactics/bv2int_rewriter.h (100%) rename src/{ => tactic}/arith_tactics/bv2real_rewriter.cpp (100%) rename src/{ => tactic}/arith_tactics/bv2real_rewriter.h (100%) rename src/{ => tactic}/arith_tactics/degree_shift_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/degree_shift_tactic.h (100%) rename src/{ => tactic}/arith_tactics/diff_neq_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/diff_neq_tactic.h (100%) rename src/{ => tactic}/arith_tactics/elim_term_ite_strategy.cpp (100%) rename src/{ => tactic}/arith_tactics/elim_term_ite_strategy.h (100%) rename src/{ => tactic}/arith_tactics/factor_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/factor_tactic.h (100%) rename src/{ => tactic}/arith_tactics/fix_dl_var_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/fix_dl_var_tactic.h (100%) rename src/{ => tactic}/arith_tactics/fm_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/fm_tactic.h (100%) rename src/{ => tactic}/arith_tactics/lia2pb_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/lia2pb_tactic.h (100%) rename src/{ => tactic}/arith_tactics/linear_equation.cpp (100%) rename src/{ => tactic}/arith_tactics/linear_equation.h (100%) rename src/{ => tactic}/arith_tactics/lu.cpp (100%) rename src/{ => tactic}/arith_tactics/lu.h (100%) rename src/{ => tactic}/arith_tactics/mip_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/mip_tactic.h (100%) rename src/{ => tactic}/arith_tactics/nla2bv_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/nla2bv_tactic.h (100%) rename src/{ => tactic}/arith_tactics/normalize_bounds_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/normalize_bounds_tactic.h (100%) rename src/{ => tactic}/arith_tactics/pb2bv_model_converter.cpp (100%) rename src/{ => tactic}/arith_tactics/pb2bv_model_converter.h (100%) rename src/{ => tactic}/arith_tactics/pb2bv_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/pb2bv_tactic.h (100%) rename src/{ => tactic}/arith_tactics/probe_arith.cpp (100%) rename src/{ => tactic}/arith_tactics/probe_arith.h (100%) rename src/{ => tactic}/arith_tactics/propagate_ineqs_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/propagate_ineqs_tactic.h (100%) rename src/{ => tactic}/arith_tactics/purify_arith_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/purify_arith_tactic.h (100%) rename src/{ => tactic}/arith_tactics/recover_01_tactic.cpp (100%) rename src/{ => tactic}/arith_tactics/recover_01_tactic.h (100%) rename src/{ => tactic}/arith_tactics/smt_arith.cpp (100%) rename src/{ => tactic}/arith_tactics/smt_arith.h (100%) rename src/{ => tactic}/arith_tactics/smt_formula_compiler.cpp (100%) rename src/{ => tactic}/arith_tactics/smt_formula_compiler.h (100%) rename src/{ => tactic}/arith_tactics/smt_solver_exp.cpp (100%) rename src/{ => tactic}/arith_tactics/smt_solver_exp.h (100%) rename src/{ => tactic}/arith_tactics/smt_solver_strategy.cpp (100%) rename src/{ => tactic}/arith_tactics/smt_solver_strategy.h (100%) rename src/{ => tactic}/arith_tactics/smt_solver_types.h (100%) rename src/{bv => tactic}/bit_blaster/bit_blaster.cpp (100%) rename src/{bv => tactic}/bit_blaster/bit_blaster.h (100%) rename src/{bv => tactic}/bit_blaster/bit_blaster_model_converter.cpp (100%) rename src/{bv => tactic}/bit_blaster/bit_blaster_model_converter.h (100%) rename src/{bv => tactic}/bit_blaster/bit_blaster_rewriter.cpp (100%) rename src/{bv => tactic}/bit_blaster/bit_blaster_rewriter.h (100%) rename src/{bv => tactic}/bit_blaster/bit_blaster_tpl.h (100%) rename src/{bv => tactic}/bit_blaster/bit_blaster_tpl_def.h (100%) rename src/{bv => tactic}/bit_blaster/bv1_blaster_tactic.cpp (100%) rename src/{bv => tactic}/bit_blaster/bv1_blaster_tactic.h (100%) rename src/{bv => tactic}/bit_blaster/eager_bit_blaster.cpp (100%) rename src/{bv => tactic}/bit_blaster/eager_bit_blaster.h (100%) rename src/{bv/tactics => tactic/bv_tactics}/bit_blaster_tactic.cpp (100%) rename src/{bv/tactics => tactic/bv_tactics}/bit_blaster_tactic.h (100%) rename src/{bv/tactics => tactic/bv_tactics}/bv_size_reduction_tactic.cpp (100%) rename src/{bv/tactics => tactic/bv_tactics}/bv_size_reduction_tactic.h (100%) rename src/{bv/tactics => tactic/bv_tactics}/max_bv_sharing_tactic.cpp (100%) rename src/{bv/tactics => tactic/bv_tactics}/max_bv_sharing_tactic.h (100%) rename src/{ => tactic}/core_tactics/cofactor_elim_term_ite.cpp (100%) rename src/{ => tactic}/core_tactics/cofactor_elim_term_ite.h (100%) rename src/{ => tactic}/core_tactics/cofactor_term_ite_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/cofactor_term_ite_tactic.h (100%) rename src/{ => tactic}/core_tactics/ctx_simplify_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/ctx_simplify_tactic.h (100%) rename src/{ => tactic}/core_tactics/der_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/der_tactic.h (100%) rename src/{ => tactic}/core_tactics/distribute_forall_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/distribute_forall_tactic.h (100%) rename src/{ => tactic}/core_tactics/elim_term_ite_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/elim_term_ite_tactic.h (100%) rename src/{ => tactic}/core_tactics/elim_uncnstr_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/elim_uncnstr_tactic.h (100%) rename src/{ => tactic}/core_tactics/nnf_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/nnf_tactic.h (100%) rename src/{ => tactic}/core_tactics/occf_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/occf_tactic.h (100%) rename src/{ => tactic}/core_tactics/propagate_values_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/propagate_values_tactic.h (100%) rename src/{ => tactic}/core_tactics/reduce_args_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/reduce_args_tactic.h (100%) rename src/{ => tactic}/core_tactics/simplify_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/simplify_tactic.h (100%) rename src/{ => tactic}/core_tactics/solve_eqs_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/solve_eqs_tactic.h (100%) rename src/{ => tactic}/core_tactics/split_clause_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/split_clause_tactic.h (100%) rename src/{ => tactic}/core_tactics/symmetry_reduce_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/symmetry_reduce_tactic.h (100%) rename src/{ => tactic}/core_tactics/tseitin_cnf_tactic.cpp (100%) rename src/{ => tactic}/core_tactics/tseitin_cnf_tactic.h (100%) rename src/{ => tactic}/fpa/fpa2bv_converter.cpp (100%) rename src/{ => tactic}/fpa/fpa2bv_converter.h (100%) rename src/{ => tactic}/fpa/fpa2bv_tactic.cpp (100%) rename src/{ => tactic}/fpa/fpa2bv_tactic.h (100%) rename src/{ => tactic}/fpa/qffpa_tactic.cpp (100%) rename src/{ => tactic}/fpa/qffpa_tactic.h (100%) rename src/{ => tactic}/portfolio/default_tactic.cpp (100%) rename src/{ => tactic}/portfolio/default_tactic.h (100%) rename src/{ => tactic}/portfolio/install_tactics.cpp (100%) rename src/{ => tactic}/portfolio/install_tactics.h (100%) rename src/{ => tactic}/portfolio/smt_strategic_solver.cpp (100%) rename src/{ => tactic}/portfolio/smt_strategic_solver.h (100%) rename src/{bv => tactic}/sls_tactic/sls_strategy.h (100%) rename src/{bv => tactic}/sls_tactic/sls_tactic.cpp (100%) rename src/{bv => tactic}/sls_tactic/sls_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/nra_tactic.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/nra_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/qfaufbv_tactic.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/qfaufbv_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/qfauflia_tactic.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/qfauflia_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/qfbv_tactic.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/qfbv_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/qfidl_tactic.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/qfidl_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/qflia_tactic.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/qflia_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/qflra_tactic.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/qflra_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/qfnia_tactic.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/qfnia_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/qfnra_tactic.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/qfnra_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/qfuf_tactic.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/qfuf_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/qfufbv_tactic.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/qfufbv_tactic.h (100%) rename src/{ => tactic}/smtlogic_tactics/quant_tactics.cpp (100%) rename src/{ => tactic}/smtlogic_tactics/quant_tactics.h (100%) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index e260d99c7..81f4d848f 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -25,10 +25,10 @@ add_lib('sat', ['util']) add_lib('nlsat', ['polynomial', 'sat']) add_lib('subpaving', ['util'], 'math/subpaving') add_lib('ast', ['util', 'polynomial']) -add_lib('rewriter', ['ast', 'polynomial']) +add_lib('rewriter', ['ast', 'polynomial'], 'ast/rewriter') # Simplifier module will be deleted in the future. # It has been replaced with rewriter module. -add_lib('simplifier', ['rewriter']) +add_lib('simplifier', ['rewriter'], 'ast/simplifier') # Model module should not depend on simplifier module. # We must replace all occurrences of simplifier with rewriter. add_lib('model', ['rewriter', 'simplifier']) @@ -40,42 +40,42 @@ add_lib('cmd_context', ['tactic', 'rewriter', 'model', 'old_params', 'simplifier # Assertion set is the old tactic framework used in Z3 3.x. It will be deleted as soon as we finish the porting old # code to the new tactic framework. add_lib('assertion_set', ['cmd_context']) -add_lib('substitution', ['ast']) +add_lib('substitution', ['ast'], 'ast/substitution') add_lib('normal_forms', ['tactic', 'assertion_set']) -add_lib('pattern', ['normal_forms']) +add_lib('pattern', ['normal_forms'], 'ast/pattern') add_lib('spc', ['simplifier', 'substitution', 'old_params', 'pattern']) add_lib('parser_util', ['ast']) add_lib('smt2parser', ['cmd_context', 'parser_util']) -add_lib('macros', ['simplifier', 'old_params']) +add_lib('macros', ['simplifier', 'old_params'], 'ast/macros') add_lib('grobner', ['ast'], 'math/grobner') add_lib('euclid', ['util'], 'math/euclid') -add_lib('proof_checker', ['rewriter', 'spc']) -add_lib('bit_blaster', ['rewriter', 'simplifier', 'old_params', 'tactic', 'assertion_set'], 'bv/bit_blaster') +add_lib('proof_checker', ['rewriter', 'spc'], 'ast/proof_checker') +add_lib('bit_blaster', ['rewriter', 'simplifier', 'old_params', 'tactic', 'assertion_set'], 'tactic/bit_blaster') add_lib('smt', ['assertion_set', 'bit_blaster', 'macros', 'normal_forms', 'cmd_context', 'substitution', 'grobner', 'euclid', 'proof_checker', 'pattern', 'parser_util']) add_lib('user_plugin', ['smt'], 'smt/user_plugin') -add_lib('core_tactics', ['tactic', 'normal_forms']) +add_lib('core_tactics', ['tactic', 'normal_forms'], 'tactic/core_tactics') add_lib('sat_tactic', ['tactic', 'sat'], 'sat/tactic') add_lib('sat_strategy', ['assertion_set', 'sat_tactic'], 'sat/strategy') -add_lib('arith_tactics', ['core_tactics', 'assertion_set', 'sat', 'sat_strategy']) +add_lib('arith_tactics', ['core_tactics', 'assertion_set', 'sat', 'sat_strategy'], 'tactic/arith_tactics') add_lib('nlsat_tactic', ['nlsat', 'sat_tactic', 'arith_tactics'], 'nlsat/tactic') add_lib('subpaving_tactic', ['core_tactics', 'subpaving'], 'math/subpaving/tactic') -add_lib('bv_tactics', ['tactic', 'bit_blaster'], 'bv/tactics') +add_lib('bv_tactics', ['tactic', 'bit_blaster'], 'tactic/bv_tactics') add_lib('fuzzing', ['ast'], 'test/fuzzing') -add_lib('fpa', ['core_tactics', 'bv_tactics', 'sat_tactic']) +add_lib('fpa', ['core_tactics', 'bv_tactics', 'sat_tactic'], 'tactic/fpa') add_lib('smt_tactic', ['smt'], 'smt/tactic') add_lib('extra_cmds', ['cmd_context', 'subpaving_tactic', 'arith_tactics'], 'cmd_context/extra_cmds') -add_lib('sls_tactic', ['tactic', 'normal_forms', 'core_tactics', 'bv_tactics'], 'bv/sls_tactic') -add_lib('aig', ['cmd_context', 'assertion_set']) +add_lib('sls_tactic', ['tactic', 'normal_forms', 'core_tactics', 'bv_tactics'], 'tactic/sls_tactic') +add_lib('aig', ['cmd_context', 'assertion_set'], 'tactic/aig') # TODO: split muz_qe into muz, qe. Perhaps, we should also consider breaking muz into muz and pdr. add_lib('muz_qe', ['smt', 'sat', 'smt2parser']) -add_lib('smtlogic_tactics', ['arith_tactics', 'bv_tactics', 'nlsat_tactic', 'smt_tactic', 'aig', 'muz_qe']) +add_lib('smtlogic_tactics', ['arith_tactics', 'bv_tactics', 'nlsat_tactic', 'smt_tactic', 'aig', 'muz_qe'], 'tactic/smtlogic_tactics') # TODO: rewrite ufbv_strategy as a tactic and move to smtlogic_tactics. -add_lib('ufbv_strategy', ['assertion_set', 'normal_forms', 'macros', 'smt_tactic', 'rewriter'], 'bv/ufbv_strategy') -add_lib('portfolio', ['smtlogic_tactics', 'ufbv_strategy', 'fpa', 'aig', 'muz_qe', 'sls_tactic', 'subpaving_tactic']) +add_lib('ufbv_strategy', ['assertion_set', 'normal_forms', 'macros', 'smt_tactic', 'rewriter'], 'assertion_set/ufbv_strategy') +add_lib('portfolio', ['smtlogic_tactics', 'ufbv_strategy', 'fpa', 'aig', 'muz_qe', 'sls_tactic', 'subpaving_tactic'], 'tactic/portfolio') # TODO: delete SMT 1.0 frontend add_lib('api', ['portfolio', 'user_plugin']) -add_lib('array_property', ['ast', 'rewriter']) +add_lib('array_property', ['ast', 'rewriter'], 'ast/array_property') add_exe('shell', ['api', 'sat', 'extra_cmds'], exe_name='z3') add_exe('test', ['api', 'fuzzing', 'array_property'], exe_name='test-z3') diff --git a/src/bv/ufbv_strategy/ufbv_strategy.cpp b/src/assertion_set/ufbv_strategy/ufbv_strategy.cpp similarity index 100% rename from src/bv/ufbv_strategy/ufbv_strategy.cpp rename to src/assertion_set/ufbv_strategy/ufbv_strategy.cpp diff --git a/src/bv/ufbv_strategy/ufbv_strategy.h b/src/assertion_set/ufbv_strategy/ufbv_strategy.h similarity index 100% rename from src/bv/ufbv_strategy/ufbv_strategy.h rename to src/assertion_set/ufbv_strategy/ufbv_strategy.h diff --git a/src/array_property/array_property_expander.cpp b/src/ast/array_property/array_property_expander.cpp similarity index 100% rename from src/array_property/array_property_expander.cpp rename to src/ast/array_property/array_property_expander.cpp diff --git a/src/array_property/array_property_expander.h b/src/ast/array_property/array_property_expander.h similarity index 100% rename from src/array_property/array_property_expander.h rename to src/ast/array_property/array_property_expander.h diff --git a/src/array_property/array_property_recognizer.cpp b/src/ast/array_property/array_property_recognizer.cpp similarity index 100% rename from src/array_property/array_property_recognizer.cpp rename to src/ast/array_property/array_property_recognizer.cpp diff --git a/src/array_property/array_property_recognizer.h b/src/ast/array_property/array_property_recognizer.h similarity index 100% rename from src/array_property/array_property_recognizer.h rename to src/ast/array_property/array_property_recognizer.h diff --git a/src/macros/macro_finder.cpp b/src/ast/macros/macro_finder.cpp similarity index 100% rename from src/macros/macro_finder.cpp rename to src/ast/macros/macro_finder.cpp diff --git a/src/macros/macro_finder.h b/src/ast/macros/macro_finder.h similarity index 100% rename from src/macros/macro_finder.h rename to src/ast/macros/macro_finder.h diff --git a/src/macros/macro_manager.cpp b/src/ast/macros/macro_manager.cpp similarity index 100% rename from src/macros/macro_manager.cpp rename to src/ast/macros/macro_manager.cpp diff --git a/src/macros/macro_manager.h b/src/ast/macros/macro_manager.h similarity index 100% rename from src/macros/macro_manager.h rename to src/ast/macros/macro_manager.h diff --git a/src/macros/macro_substitution.cpp b/src/ast/macros/macro_substitution.cpp similarity index 100% rename from src/macros/macro_substitution.cpp rename to src/ast/macros/macro_substitution.cpp diff --git a/src/macros/macro_substitution.h b/src/ast/macros/macro_substitution.h similarity index 100% rename from src/macros/macro_substitution.h rename to src/ast/macros/macro_substitution.h diff --git a/src/macros/macro_util.cpp b/src/ast/macros/macro_util.cpp similarity index 100% rename from src/macros/macro_util.cpp rename to src/ast/macros/macro_util.cpp diff --git a/src/macros/macro_util.h b/src/ast/macros/macro_util.h similarity index 100% rename from src/macros/macro_util.h rename to src/ast/macros/macro_util.h diff --git a/src/macros/quasi_macros.cpp b/src/ast/macros/quasi_macros.cpp similarity index 100% rename from src/macros/quasi_macros.cpp rename to src/ast/macros/quasi_macros.cpp diff --git a/src/macros/quasi_macros.h b/src/ast/macros/quasi_macros.h similarity index 100% rename from src/macros/quasi_macros.h rename to src/ast/macros/quasi_macros.h diff --git a/src/pattern/pattern_inference.cpp b/src/ast/pattern/pattern_inference.cpp similarity index 100% rename from src/pattern/pattern_inference.cpp rename to src/ast/pattern/pattern_inference.cpp diff --git a/src/pattern/pattern_inference.h b/src/ast/pattern/pattern_inference.h similarity index 100% rename from src/pattern/pattern_inference.h rename to src/ast/pattern/pattern_inference.h diff --git a/src/proof_checker/proof_checker.cpp b/src/ast/proof_checker/proof_checker.cpp similarity index 100% rename from src/proof_checker/proof_checker.cpp rename to src/ast/proof_checker/proof_checker.cpp diff --git a/src/proof_checker/proof_checker.h b/src/ast/proof_checker/proof_checker.h similarity index 100% rename from src/proof_checker/proof_checker.h rename to src/ast/proof_checker/proof_checker.h diff --git a/src/rewriter/arith_rewriter.cpp b/src/ast/rewriter/arith_rewriter.cpp similarity index 100% rename from src/rewriter/arith_rewriter.cpp rename to src/ast/rewriter/arith_rewriter.cpp diff --git a/src/rewriter/arith_rewriter.h b/src/ast/rewriter/arith_rewriter.h similarity index 100% rename from src/rewriter/arith_rewriter.h rename to src/ast/rewriter/arith_rewriter.h diff --git a/src/rewriter/array_rewriter.cpp b/src/ast/rewriter/array_rewriter.cpp similarity index 100% rename from src/rewriter/array_rewriter.cpp rename to src/ast/rewriter/array_rewriter.cpp diff --git a/src/rewriter/array_rewriter.h b/src/ast/rewriter/array_rewriter.h similarity index 100% rename from src/rewriter/array_rewriter.h rename to src/ast/rewriter/array_rewriter.h diff --git a/src/rewriter/bool_rewriter.cpp b/src/ast/rewriter/bool_rewriter.cpp similarity index 100% rename from src/rewriter/bool_rewriter.cpp rename to src/ast/rewriter/bool_rewriter.cpp diff --git a/src/rewriter/bool_rewriter.h b/src/ast/rewriter/bool_rewriter.h similarity index 100% rename from src/rewriter/bool_rewriter.h rename to src/ast/rewriter/bool_rewriter.h diff --git a/src/rewriter/bv_rewriter.cpp b/src/ast/rewriter/bv_rewriter.cpp similarity index 100% rename from src/rewriter/bv_rewriter.cpp rename to src/ast/rewriter/bv_rewriter.cpp diff --git a/src/rewriter/bv_rewriter.h b/src/ast/rewriter/bv_rewriter.h similarity index 100% rename from src/rewriter/bv_rewriter.h rename to src/ast/rewriter/bv_rewriter.h diff --git a/src/rewriter/datatype_rewriter.cpp b/src/ast/rewriter/datatype_rewriter.cpp similarity index 100% rename from src/rewriter/datatype_rewriter.cpp rename to src/ast/rewriter/datatype_rewriter.cpp diff --git a/src/rewriter/datatype_rewriter.h b/src/ast/rewriter/datatype_rewriter.h similarity index 100% rename from src/rewriter/datatype_rewriter.h rename to src/ast/rewriter/datatype_rewriter.h diff --git a/src/rewriter/der.cpp b/src/ast/rewriter/der.cpp similarity index 100% rename from src/rewriter/der.cpp rename to src/ast/rewriter/der.cpp diff --git a/src/rewriter/der.h b/src/ast/rewriter/der.h similarity index 100% rename from src/rewriter/der.h rename to src/ast/rewriter/der.h diff --git a/src/rewriter/dl_rewriter.cpp b/src/ast/rewriter/dl_rewriter.cpp similarity index 100% rename from src/rewriter/dl_rewriter.cpp rename to src/ast/rewriter/dl_rewriter.cpp diff --git a/src/rewriter/dl_rewriter.h b/src/ast/rewriter/dl_rewriter.h similarity index 100% rename from src/rewriter/dl_rewriter.h rename to src/ast/rewriter/dl_rewriter.h diff --git a/src/rewriter/expr_replacer.cpp b/src/ast/rewriter/expr_replacer.cpp similarity index 100% rename from src/rewriter/expr_replacer.cpp rename to src/ast/rewriter/expr_replacer.cpp diff --git a/src/rewriter/expr_replacer.h b/src/ast/rewriter/expr_replacer.h similarity index 100% rename from src/rewriter/expr_replacer.h rename to src/ast/rewriter/expr_replacer.h diff --git a/src/rewriter/factor_rewriter.cpp b/src/ast/rewriter/factor_rewriter.cpp similarity index 100% rename from src/rewriter/factor_rewriter.cpp rename to src/ast/rewriter/factor_rewriter.cpp diff --git a/src/rewriter/factor_rewriter.h b/src/ast/rewriter/factor_rewriter.h similarity index 100% rename from src/rewriter/factor_rewriter.h rename to src/ast/rewriter/factor_rewriter.h diff --git a/src/rewriter/float_rewriter.cpp b/src/ast/rewriter/float_rewriter.cpp similarity index 100% rename from src/rewriter/float_rewriter.cpp rename to src/ast/rewriter/float_rewriter.cpp diff --git a/src/rewriter/float_rewriter.h b/src/ast/rewriter/float_rewriter.h similarity index 100% rename from src/rewriter/float_rewriter.h rename to src/ast/rewriter/float_rewriter.h diff --git a/src/rewriter/mk_simplified_app.cpp b/src/ast/rewriter/mk_simplified_app.cpp similarity index 100% rename from src/rewriter/mk_simplified_app.cpp rename to src/ast/rewriter/mk_simplified_app.cpp diff --git a/src/rewriter/mk_simplified_app.h b/src/ast/rewriter/mk_simplified_app.h similarity index 100% rename from src/rewriter/mk_simplified_app.h rename to src/ast/rewriter/mk_simplified_app.h diff --git a/src/rewriter/poly_rewriter.h b/src/ast/rewriter/poly_rewriter.h similarity index 100% rename from src/rewriter/poly_rewriter.h rename to src/ast/rewriter/poly_rewriter.h diff --git a/src/rewriter/poly_rewriter_def.h b/src/ast/rewriter/poly_rewriter_def.h similarity index 100% rename from src/rewriter/poly_rewriter_def.h rename to src/ast/rewriter/poly_rewriter_def.h diff --git a/src/rewriter/quant_hoist.cpp b/src/ast/rewriter/quant_hoist.cpp similarity index 100% rename from src/rewriter/quant_hoist.cpp rename to src/ast/rewriter/quant_hoist.cpp diff --git a/src/rewriter/quant_hoist.h b/src/ast/rewriter/quant_hoist.h similarity index 100% rename from src/rewriter/quant_hoist.h rename to src/ast/rewriter/quant_hoist.h diff --git a/src/rewriter/rewriter.cpp b/src/ast/rewriter/rewriter.cpp similarity index 100% rename from src/rewriter/rewriter.cpp rename to src/ast/rewriter/rewriter.cpp diff --git a/src/rewriter/rewriter.h b/src/ast/rewriter/rewriter.h similarity index 100% rename from src/rewriter/rewriter.h rename to src/ast/rewriter/rewriter.h diff --git a/src/rewriter/rewriter.txt b/src/ast/rewriter/rewriter.txt similarity index 100% rename from src/rewriter/rewriter.txt rename to src/ast/rewriter/rewriter.txt diff --git a/src/rewriter/rewriter_def.h b/src/ast/rewriter/rewriter_def.h similarity index 100% rename from src/rewriter/rewriter_def.h rename to src/ast/rewriter/rewriter_def.h diff --git a/src/rewriter/rewriter_types.h b/src/ast/rewriter/rewriter_types.h similarity index 100% rename from src/rewriter/rewriter_types.h rename to src/ast/rewriter/rewriter_types.h diff --git a/src/rewriter/th_rewriter.cpp b/src/ast/rewriter/th_rewriter.cpp similarity index 100% rename from src/rewriter/th_rewriter.cpp rename to src/ast/rewriter/th_rewriter.cpp diff --git a/src/rewriter/th_rewriter.h b/src/ast/rewriter/th_rewriter.h similarity index 100% rename from src/rewriter/th_rewriter.h rename to src/ast/rewriter/th_rewriter.h diff --git a/src/rewriter/var_subst.cpp b/src/ast/rewriter/var_subst.cpp similarity index 100% rename from src/rewriter/var_subst.cpp rename to src/ast/rewriter/var_subst.cpp diff --git a/src/rewriter/var_subst.h b/src/ast/rewriter/var_subst.h similarity index 100% rename from src/rewriter/var_subst.h rename to src/ast/rewriter/var_subst.h diff --git a/src/simplifier/README b/src/ast/simplifier/README similarity index 100% rename from src/simplifier/README rename to src/ast/simplifier/README diff --git a/src/simplifier/arith_simplifier_params.cpp b/src/ast/simplifier/arith_simplifier_params.cpp similarity index 100% rename from src/simplifier/arith_simplifier_params.cpp rename to src/ast/simplifier/arith_simplifier_params.cpp diff --git a/src/simplifier/arith_simplifier_params.h b/src/ast/simplifier/arith_simplifier_params.h similarity index 100% rename from src/simplifier/arith_simplifier_params.h rename to src/ast/simplifier/arith_simplifier_params.h diff --git a/src/simplifier/arith_simplifier_plugin.cpp b/src/ast/simplifier/arith_simplifier_plugin.cpp similarity index 100% rename from src/simplifier/arith_simplifier_plugin.cpp rename to src/ast/simplifier/arith_simplifier_plugin.cpp diff --git a/src/simplifier/arith_simplifier_plugin.h b/src/ast/simplifier/arith_simplifier_plugin.h similarity index 100% rename from src/simplifier/arith_simplifier_plugin.h rename to src/ast/simplifier/arith_simplifier_plugin.h diff --git a/src/simplifier/array_simplifier_plugin.cpp b/src/ast/simplifier/array_simplifier_plugin.cpp similarity index 100% rename from src/simplifier/array_simplifier_plugin.cpp rename to src/ast/simplifier/array_simplifier_plugin.cpp diff --git a/src/simplifier/array_simplifier_plugin.h b/src/ast/simplifier/array_simplifier_plugin.h similarity index 100% rename from src/simplifier/array_simplifier_plugin.h rename to src/ast/simplifier/array_simplifier_plugin.h diff --git a/src/simplifier/base_simplifier.h b/src/ast/simplifier/base_simplifier.h similarity index 100% rename from src/simplifier/base_simplifier.h rename to src/ast/simplifier/base_simplifier.h diff --git a/src/simplifier/basic_simplifier_plugin.cpp b/src/ast/simplifier/basic_simplifier_plugin.cpp similarity index 100% rename from src/simplifier/basic_simplifier_plugin.cpp rename to src/ast/simplifier/basic_simplifier_plugin.cpp diff --git a/src/simplifier/basic_simplifier_plugin.h b/src/ast/simplifier/basic_simplifier_plugin.h similarity index 100% rename from src/simplifier/basic_simplifier_plugin.h rename to src/ast/simplifier/basic_simplifier_plugin.h diff --git a/src/simplifier/bit2int.cpp b/src/ast/simplifier/bit2int.cpp similarity index 100% rename from src/simplifier/bit2int.cpp rename to src/ast/simplifier/bit2int.cpp diff --git a/src/simplifier/bit2int.h b/src/ast/simplifier/bit2int.h similarity index 100% rename from src/simplifier/bit2int.h rename to src/ast/simplifier/bit2int.h diff --git a/src/simplifier/bv_elim.cpp b/src/ast/simplifier/bv_elim.cpp similarity index 100% rename from src/simplifier/bv_elim.cpp rename to src/ast/simplifier/bv_elim.cpp diff --git a/src/simplifier/bv_elim.h b/src/ast/simplifier/bv_elim.h similarity index 100% rename from src/simplifier/bv_elim.h rename to src/ast/simplifier/bv_elim.h diff --git a/src/simplifier/bv_simplifier_params.h b/src/ast/simplifier/bv_simplifier_params.h similarity index 100% rename from src/simplifier/bv_simplifier_params.h rename to src/ast/simplifier/bv_simplifier_params.h diff --git a/src/simplifier/bv_simplifier_plugin.cpp b/src/ast/simplifier/bv_simplifier_plugin.cpp similarity index 100% rename from src/simplifier/bv_simplifier_plugin.cpp rename to src/ast/simplifier/bv_simplifier_plugin.cpp diff --git a/src/simplifier/bv_simplifier_plugin.h b/src/ast/simplifier/bv_simplifier_plugin.h similarity index 100% rename from src/simplifier/bv_simplifier_plugin.h rename to src/ast/simplifier/bv_simplifier_plugin.h diff --git a/src/simplifier/datatype_simplifier_plugin.cpp b/src/ast/simplifier/datatype_simplifier_plugin.cpp similarity index 100% rename from src/simplifier/datatype_simplifier_plugin.cpp rename to src/ast/simplifier/datatype_simplifier_plugin.cpp diff --git a/src/simplifier/datatype_simplifier_plugin.h b/src/ast/simplifier/datatype_simplifier_plugin.h similarity index 100% rename from src/simplifier/datatype_simplifier_plugin.h rename to src/ast/simplifier/datatype_simplifier_plugin.h diff --git a/src/simplifier/distribute_forall.cpp b/src/ast/simplifier/distribute_forall.cpp similarity index 100% rename from src/simplifier/distribute_forall.cpp rename to src/ast/simplifier/distribute_forall.cpp diff --git a/src/simplifier/distribute_forall.h b/src/ast/simplifier/distribute_forall.h similarity index 100% rename from src/simplifier/distribute_forall.h rename to src/ast/simplifier/distribute_forall.h diff --git a/src/simplifier/elim_bounds.cpp b/src/ast/simplifier/elim_bounds.cpp similarity index 100% rename from src/simplifier/elim_bounds.cpp rename to src/ast/simplifier/elim_bounds.cpp diff --git a/src/simplifier/elim_bounds.h b/src/ast/simplifier/elim_bounds.h similarity index 100% rename from src/simplifier/elim_bounds.h rename to src/ast/simplifier/elim_bounds.h diff --git a/src/simplifier/inj_axiom.cpp b/src/ast/simplifier/inj_axiom.cpp similarity index 100% rename from src/simplifier/inj_axiom.cpp rename to src/ast/simplifier/inj_axiom.cpp diff --git a/src/simplifier/inj_axiom.h b/src/ast/simplifier/inj_axiom.h similarity index 100% rename from src/simplifier/inj_axiom.h rename to src/ast/simplifier/inj_axiom.h diff --git a/src/simplifier/maximise_ac_sharing.cpp b/src/ast/simplifier/maximise_ac_sharing.cpp similarity index 100% rename from src/simplifier/maximise_ac_sharing.cpp rename to src/ast/simplifier/maximise_ac_sharing.cpp diff --git a/src/simplifier/maximise_ac_sharing.h b/src/ast/simplifier/maximise_ac_sharing.h similarity index 100% rename from src/simplifier/maximise_ac_sharing.h rename to src/ast/simplifier/maximise_ac_sharing.h diff --git a/src/simplifier/poly_simplifier_plugin.cpp b/src/ast/simplifier/poly_simplifier_plugin.cpp similarity index 100% rename from src/simplifier/poly_simplifier_plugin.cpp rename to src/ast/simplifier/poly_simplifier_plugin.cpp diff --git a/src/simplifier/poly_simplifier_plugin.h b/src/ast/simplifier/poly_simplifier_plugin.h similarity index 100% rename from src/simplifier/poly_simplifier_plugin.h rename to src/ast/simplifier/poly_simplifier_plugin.h diff --git a/src/simplifier/pull_ite_tree.cpp b/src/ast/simplifier/pull_ite_tree.cpp similarity index 100% rename from src/simplifier/pull_ite_tree.cpp rename to src/ast/simplifier/pull_ite_tree.cpp diff --git a/src/simplifier/pull_ite_tree.h b/src/ast/simplifier/pull_ite_tree.h similarity index 100% rename from src/simplifier/pull_ite_tree.h rename to src/ast/simplifier/pull_ite_tree.h diff --git a/src/simplifier/push_app_ite.cpp b/src/ast/simplifier/push_app_ite.cpp similarity index 100% rename from src/simplifier/push_app_ite.cpp rename to src/ast/simplifier/push_app_ite.cpp diff --git a/src/simplifier/push_app_ite.h b/src/ast/simplifier/push_app_ite.h similarity index 100% rename from src/simplifier/push_app_ite.h rename to src/ast/simplifier/push_app_ite.h diff --git a/src/simplifier/simplifier.cpp b/src/ast/simplifier/simplifier.cpp similarity index 100% rename from src/simplifier/simplifier.cpp rename to src/ast/simplifier/simplifier.cpp diff --git a/src/simplifier/simplifier.h b/src/ast/simplifier/simplifier.h similarity index 100% rename from src/simplifier/simplifier.h rename to src/ast/simplifier/simplifier.h diff --git a/src/simplifier/simplifier_plugin.cpp b/src/ast/simplifier/simplifier_plugin.cpp similarity index 100% rename from src/simplifier/simplifier_plugin.cpp rename to src/ast/simplifier/simplifier_plugin.cpp diff --git a/src/simplifier/simplifier_plugin.h b/src/ast/simplifier/simplifier_plugin.h similarity index 100% rename from src/simplifier/simplifier_plugin.h rename to src/ast/simplifier/simplifier_plugin.h diff --git a/src/simplifier/theory_array_params.h b/src/ast/simplifier/theory_array_params.h similarity index 100% rename from src/simplifier/theory_array_params.h rename to src/ast/simplifier/theory_array_params.h diff --git a/src/substitution/expr_offset.h b/src/ast/substitution/expr_offset.h similarity index 100% rename from src/substitution/expr_offset.h rename to src/ast/substitution/expr_offset.h diff --git a/src/substitution/expr_offset_map.h b/src/ast/substitution/expr_offset_map.h similarity index 100% rename from src/substitution/expr_offset_map.h rename to src/ast/substitution/expr_offset_map.h diff --git a/src/substitution/matcher.cpp b/src/ast/substitution/matcher.cpp similarity index 100% rename from src/substitution/matcher.cpp rename to src/ast/substitution/matcher.cpp diff --git a/src/substitution/matcher.h b/src/ast/substitution/matcher.h similarity index 100% rename from src/substitution/matcher.h rename to src/ast/substitution/matcher.h diff --git a/src/substitution/substitution.cpp b/src/ast/substitution/substitution.cpp similarity index 100% rename from src/substitution/substitution.cpp rename to src/ast/substitution/substitution.cpp diff --git a/src/substitution/substitution.h b/src/ast/substitution/substitution.h similarity index 100% rename from src/substitution/substitution.h rename to src/ast/substitution/substitution.h diff --git a/src/substitution/substitution_tree.cpp b/src/ast/substitution/substitution_tree.cpp similarity index 100% rename from src/substitution/substitution_tree.cpp rename to src/ast/substitution/substitution_tree.cpp diff --git a/src/substitution/substitution_tree.h b/src/ast/substitution/substitution_tree.h similarity index 100% rename from src/substitution/substitution_tree.h rename to src/ast/substitution/substitution_tree.h diff --git a/src/substitution/unifier.cpp b/src/ast/substitution/unifier.cpp similarity index 100% rename from src/substitution/unifier.cpp rename to src/ast/substitution/unifier.cpp diff --git a/src/substitution/unifier.h b/src/ast/substitution/unifier.h similarity index 100% rename from src/substitution/unifier.h rename to src/ast/substitution/unifier.h diff --git a/src/substitution/var_offset_map.h b/src/ast/substitution/var_offset_map.h similarity index 100% rename from src/substitution/var_offset_map.h rename to src/ast/substitution/var_offset_map.h diff --git a/src/aig/aig.cpp b/src/tactic/aig/aig.cpp similarity index 100% rename from src/aig/aig.cpp rename to src/tactic/aig/aig.cpp diff --git a/src/aig/aig.h b/src/tactic/aig/aig.h similarity index 100% rename from src/aig/aig.h rename to src/tactic/aig/aig.h diff --git a/src/aig/aig_tactic.cpp b/src/tactic/aig/aig_tactic.cpp similarity index 100% rename from src/aig/aig_tactic.cpp rename to src/tactic/aig/aig_tactic.cpp diff --git a/src/aig/aig_tactic.h b/src/tactic/aig/aig_tactic.h similarity index 100% rename from src/aig/aig_tactic.h rename to src/tactic/aig/aig_tactic.h diff --git a/src/arith_tactics/add_bounds.cpp b/src/tactic/arith_tactics/add_bounds.cpp similarity index 100% rename from src/arith_tactics/add_bounds.cpp rename to src/tactic/arith_tactics/add_bounds.cpp diff --git a/src/arith_tactics/add_bounds.h b/src/tactic/arith_tactics/add_bounds.h similarity index 100% rename from src/arith_tactics/add_bounds.h rename to src/tactic/arith_tactics/add_bounds.h diff --git a/src/arith_tactics/add_bounds_tactic.cpp b/src/tactic/arith_tactics/add_bounds_tactic.cpp similarity index 100% rename from src/arith_tactics/add_bounds_tactic.cpp rename to src/tactic/arith_tactics/add_bounds_tactic.cpp diff --git a/src/arith_tactics/add_bounds_tactic.h b/src/tactic/arith_tactics/add_bounds_tactic.h similarity index 100% rename from src/arith_tactics/add_bounds_tactic.h rename to src/tactic/arith_tactics/add_bounds_tactic.h diff --git a/src/arith_tactics/bound_manager.cpp b/src/tactic/arith_tactics/bound_manager.cpp similarity index 100% rename from src/arith_tactics/bound_manager.cpp rename to src/tactic/arith_tactics/bound_manager.cpp diff --git a/src/arith_tactics/bound_manager.h b/src/tactic/arith_tactics/bound_manager.h similarity index 100% rename from src/arith_tactics/bound_manager.h rename to src/tactic/arith_tactics/bound_manager.h diff --git a/src/arith_tactics/bound_propagator.cpp b/src/tactic/arith_tactics/bound_propagator.cpp similarity index 100% rename from src/arith_tactics/bound_propagator.cpp rename to src/tactic/arith_tactics/bound_propagator.cpp diff --git a/src/arith_tactics/bound_propagator.h b/src/tactic/arith_tactics/bound_propagator.h similarity index 100% rename from src/arith_tactics/bound_propagator.h rename to src/tactic/arith_tactics/bound_propagator.h diff --git a/src/arith_tactics/bv2int_rewriter.cpp b/src/tactic/arith_tactics/bv2int_rewriter.cpp similarity index 100% rename from src/arith_tactics/bv2int_rewriter.cpp rename to src/tactic/arith_tactics/bv2int_rewriter.cpp diff --git a/src/arith_tactics/bv2int_rewriter.h b/src/tactic/arith_tactics/bv2int_rewriter.h similarity index 100% rename from src/arith_tactics/bv2int_rewriter.h rename to src/tactic/arith_tactics/bv2int_rewriter.h diff --git a/src/arith_tactics/bv2real_rewriter.cpp b/src/tactic/arith_tactics/bv2real_rewriter.cpp similarity index 100% rename from src/arith_tactics/bv2real_rewriter.cpp rename to src/tactic/arith_tactics/bv2real_rewriter.cpp diff --git a/src/arith_tactics/bv2real_rewriter.h b/src/tactic/arith_tactics/bv2real_rewriter.h similarity index 100% rename from src/arith_tactics/bv2real_rewriter.h rename to src/tactic/arith_tactics/bv2real_rewriter.h diff --git a/src/arith_tactics/degree_shift_tactic.cpp b/src/tactic/arith_tactics/degree_shift_tactic.cpp similarity index 100% rename from src/arith_tactics/degree_shift_tactic.cpp rename to src/tactic/arith_tactics/degree_shift_tactic.cpp diff --git a/src/arith_tactics/degree_shift_tactic.h b/src/tactic/arith_tactics/degree_shift_tactic.h similarity index 100% rename from src/arith_tactics/degree_shift_tactic.h rename to src/tactic/arith_tactics/degree_shift_tactic.h diff --git a/src/arith_tactics/diff_neq_tactic.cpp b/src/tactic/arith_tactics/diff_neq_tactic.cpp similarity index 100% rename from src/arith_tactics/diff_neq_tactic.cpp rename to src/tactic/arith_tactics/diff_neq_tactic.cpp diff --git a/src/arith_tactics/diff_neq_tactic.h b/src/tactic/arith_tactics/diff_neq_tactic.h similarity index 100% rename from src/arith_tactics/diff_neq_tactic.h rename to src/tactic/arith_tactics/diff_neq_tactic.h diff --git a/src/arith_tactics/elim_term_ite_strategy.cpp b/src/tactic/arith_tactics/elim_term_ite_strategy.cpp similarity index 100% rename from src/arith_tactics/elim_term_ite_strategy.cpp rename to src/tactic/arith_tactics/elim_term_ite_strategy.cpp diff --git a/src/arith_tactics/elim_term_ite_strategy.h b/src/tactic/arith_tactics/elim_term_ite_strategy.h similarity index 100% rename from src/arith_tactics/elim_term_ite_strategy.h rename to src/tactic/arith_tactics/elim_term_ite_strategy.h diff --git a/src/arith_tactics/factor_tactic.cpp b/src/tactic/arith_tactics/factor_tactic.cpp similarity index 100% rename from src/arith_tactics/factor_tactic.cpp rename to src/tactic/arith_tactics/factor_tactic.cpp diff --git a/src/arith_tactics/factor_tactic.h b/src/tactic/arith_tactics/factor_tactic.h similarity index 100% rename from src/arith_tactics/factor_tactic.h rename to src/tactic/arith_tactics/factor_tactic.h diff --git a/src/arith_tactics/fix_dl_var_tactic.cpp b/src/tactic/arith_tactics/fix_dl_var_tactic.cpp similarity index 100% rename from src/arith_tactics/fix_dl_var_tactic.cpp rename to src/tactic/arith_tactics/fix_dl_var_tactic.cpp diff --git a/src/arith_tactics/fix_dl_var_tactic.h b/src/tactic/arith_tactics/fix_dl_var_tactic.h similarity index 100% rename from src/arith_tactics/fix_dl_var_tactic.h rename to src/tactic/arith_tactics/fix_dl_var_tactic.h diff --git a/src/arith_tactics/fm_tactic.cpp b/src/tactic/arith_tactics/fm_tactic.cpp similarity index 100% rename from src/arith_tactics/fm_tactic.cpp rename to src/tactic/arith_tactics/fm_tactic.cpp diff --git a/src/arith_tactics/fm_tactic.h b/src/tactic/arith_tactics/fm_tactic.h similarity index 100% rename from src/arith_tactics/fm_tactic.h rename to src/tactic/arith_tactics/fm_tactic.h diff --git a/src/arith_tactics/lia2pb_tactic.cpp b/src/tactic/arith_tactics/lia2pb_tactic.cpp similarity index 100% rename from src/arith_tactics/lia2pb_tactic.cpp rename to src/tactic/arith_tactics/lia2pb_tactic.cpp diff --git a/src/arith_tactics/lia2pb_tactic.h b/src/tactic/arith_tactics/lia2pb_tactic.h similarity index 100% rename from src/arith_tactics/lia2pb_tactic.h rename to src/tactic/arith_tactics/lia2pb_tactic.h diff --git a/src/arith_tactics/linear_equation.cpp b/src/tactic/arith_tactics/linear_equation.cpp similarity index 100% rename from src/arith_tactics/linear_equation.cpp rename to src/tactic/arith_tactics/linear_equation.cpp diff --git a/src/arith_tactics/linear_equation.h b/src/tactic/arith_tactics/linear_equation.h similarity index 100% rename from src/arith_tactics/linear_equation.h rename to src/tactic/arith_tactics/linear_equation.h diff --git a/src/arith_tactics/lu.cpp b/src/tactic/arith_tactics/lu.cpp similarity index 100% rename from src/arith_tactics/lu.cpp rename to src/tactic/arith_tactics/lu.cpp diff --git a/src/arith_tactics/lu.h b/src/tactic/arith_tactics/lu.h similarity index 100% rename from src/arith_tactics/lu.h rename to src/tactic/arith_tactics/lu.h diff --git a/src/arith_tactics/mip_tactic.cpp b/src/tactic/arith_tactics/mip_tactic.cpp similarity index 100% rename from src/arith_tactics/mip_tactic.cpp rename to src/tactic/arith_tactics/mip_tactic.cpp diff --git a/src/arith_tactics/mip_tactic.h b/src/tactic/arith_tactics/mip_tactic.h similarity index 100% rename from src/arith_tactics/mip_tactic.h rename to src/tactic/arith_tactics/mip_tactic.h diff --git a/src/arith_tactics/nla2bv_tactic.cpp b/src/tactic/arith_tactics/nla2bv_tactic.cpp similarity index 100% rename from src/arith_tactics/nla2bv_tactic.cpp rename to src/tactic/arith_tactics/nla2bv_tactic.cpp diff --git a/src/arith_tactics/nla2bv_tactic.h b/src/tactic/arith_tactics/nla2bv_tactic.h similarity index 100% rename from src/arith_tactics/nla2bv_tactic.h rename to src/tactic/arith_tactics/nla2bv_tactic.h diff --git a/src/arith_tactics/normalize_bounds_tactic.cpp b/src/tactic/arith_tactics/normalize_bounds_tactic.cpp similarity index 100% rename from src/arith_tactics/normalize_bounds_tactic.cpp rename to src/tactic/arith_tactics/normalize_bounds_tactic.cpp diff --git a/src/arith_tactics/normalize_bounds_tactic.h b/src/tactic/arith_tactics/normalize_bounds_tactic.h similarity index 100% rename from src/arith_tactics/normalize_bounds_tactic.h rename to src/tactic/arith_tactics/normalize_bounds_tactic.h diff --git a/src/arith_tactics/pb2bv_model_converter.cpp b/src/tactic/arith_tactics/pb2bv_model_converter.cpp similarity index 100% rename from src/arith_tactics/pb2bv_model_converter.cpp rename to src/tactic/arith_tactics/pb2bv_model_converter.cpp diff --git a/src/arith_tactics/pb2bv_model_converter.h b/src/tactic/arith_tactics/pb2bv_model_converter.h similarity index 100% rename from src/arith_tactics/pb2bv_model_converter.h rename to src/tactic/arith_tactics/pb2bv_model_converter.h diff --git a/src/arith_tactics/pb2bv_tactic.cpp b/src/tactic/arith_tactics/pb2bv_tactic.cpp similarity index 100% rename from src/arith_tactics/pb2bv_tactic.cpp rename to src/tactic/arith_tactics/pb2bv_tactic.cpp diff --git a/src/arith_tactics/pb2bv_tactic.h b/src/tactic/arith_tactics/pb2bv_tactic.h similarity index 100% rename from src/arith_tactics/pb2bv_tactic.h rename to src/tactic/arith_tactics/pb2bv_tactic.h diff --git a/src/arith_tactics/probe_arith.cpp b/src/tactic/arith_tactics/probe_arith.cpp similarity index 100% rename from src/arith_tactics/probe_arith.cpp rename to src/tactic/arith_tactics/probe_arith.cpp diff --git a/src/arith_tactics/probe_arith.h b/src/tactic/arith_tactics/probe_arith.h similarity index 100% rename from src/arith_tactics/probe_arith.h rename to src/tactic/arith_tactics/probe_arith.h diff --git a/src/arith_tactics/propagate_ineqs_tactic.cpp b/src/tactic/arith_tactics/propagate_ineqs_tactic.cpp similarity index 100% rename from src/arith_tactics/propagate_ineqs_tactic.cpp rename to src/tactic/arith_tactics/propagate_ineqs_tactic.cpp diff --git a/src/arith_tactics/propagate_ineqs_tactic.h b/src/tactic/arith_tactics/propagate_ineqs_tactic.h similarity index 100% rename from src/arith_tactics/propagate_ineqs_tactic.h rename to src/tactic/arith_tactics/propagate_ineqs_tactic.h diff --git a/src/arith_tactics/purify_arith_tactic.cpp b/src/tactic/arith_tactics/purify_arith_tactic.cpp similarity index 100% rename from src/arith_tactics/purify_arith_tactic.cpp rename to src/tactic/arith_tactics/purify_arith_tactic.cpp diff --git a/src/arith_tactics/purify_arith_tactic.h b/src/tactic/arith_tactics/purify_arith_tactic.h similarity index 100% rename from src/arith_tactics/purify_arith_tactic.h rename to src/tactic/arith_tactics/purify_arith_tactic.h diff --git a/src/arith_tactics/recover_01_tactic.cpp b/src/tactic/arith_tactics/recover_01_tactic.cpp similarity index 100% rename from src/arith_tactics/recover_01_tactic.cpp rename to src/tactic/arith_tactics/recover_01_tactic.cpp diff --git a/src/arith_tactics/recover_01_tactic.h b/src/tactic/arith_tactics/recover_01_tactic.h similarity index 100% rename from src/arith_tactics/recover_01_tactic.h rename to src/tactic/arith_tactics/recover_01_tactic.h diff --git a/src/arith_tactics/smt_arith.cpp b/src/tactic/arith_tactics/smt_arith.cpp similarity index 100% rename from src/arith_tactics/smt_arith.cpp rename to src/tactic/arith_tactics/smt_arith.cpp diff --git a/src/arith_tactics/smt_arith.h b/src/tactic/arith_tactics/smt_arith.h similarity index 100% rename from src/arith_tactics/smt_arith.h rename to src/tactic/arith_tactics/smt_arith.h diff --git a/src/arith_tactics/smt_formula_compiler.cpp b/src/tactic/arith_tactics/smt_formula_compiler.cpp similarity index 100% rename from src/arith_tactics/smt_formula_compiler.cpp rename to src/tactic/arith_tactics/smt_formula_compiler.cpp diff --git a/src/arith_tactics/smt_formula_compiler.h b/src/tactic/arith_tactics/smt_formula_compiler.h similarity index 100% rename from src/arith_tactics/smt_formula_compiler.h rename to src/tactic/arith_tactics/smt_formula_compiler.h diff --git a/src/arith_tactics/smt_solver_exp.cpp b/src/tactic/arith_tactics/smt_solver_exp.cpp similarity index 100% rename from src/arith_tactics/smt_solver_exp.cpp rename to src/tactic/arith_tactics/smt_solver_exp.cpp diff --git a/src/arith_tactics/smt_solver_exp.h b/src/tactic/arith_tactics/smt_solver_exp.h similarity index 100% rename from src/arith_tactics/smt_solver_exp.h rename to src/tactic/arith_tactics/smt_solver_exp.h diff --git a/src/arith_tactics/smt_solver_strategy.cpp b/src/tactic/arith_tactics/smt_solver_strategy.cpp similarity index 100% rename from src/arith_tactics/smt_solver_strategy.cpp rename to src/tactic/arith_tactics/smt_solver_strategy.cpp diff --git a/src/arith_tactics/smt_solver_strategy.h b/src/tactic/arith_tactics/smt_solver_strategy.h similarity index 100% rename from src/arith_tactics/smt_solver_strategy.h rename to src/tactic/arith_tactics/smt_solver_strategy.h diff --git a/src/arith_tactics/smt_solver_types.h b/src/tactic/arith_tactics/smt_solver_types.h similarity index 100% rename from src/arith_tactics/smt_solver_types.h rename to src/tactic/arith_tactics/smt_solver_types.h diff --git a/src/bv/bit_blaster/bit_blaster.cpp b/src/tactic/bit_blaster/bit_blaster.cpp similarity index 100% rename from src/bv/bit_blaster/bit_blaster.cpp rename to src/tactic/bit_blaster/bit_blaster.cpp diff --git a/src/bv/bit_blaster/bit_blaster.h b/src/tactic/bit_blaster/bit_blaster.h similarity index 100% rename from src/bv/bit_blaster/bit_blaster.h rename to src/tactic/bit_blaster/bit_blaster.h diff --git a/src/bv/bit_blaster/bit_blaster_model_converter.cpp b/src/tactic/bit_blaster/bit_blaster_model_converter.cpp similarity index 100% rename from src/bv/bit_blaster/bit_blaster_model_converter.cpp rename to src/tactic/bit_blaster/bit_blaster_model_converter.cpp diff --git a/src/bv/bit_blaster/bit_blaster_model_converter.h b/src/tactic/bit_blaster/bit_blaster_model_converter.h similarity index 100% rename from src/bv/bit_blaster/bit_blaster_model_converter.h rename to src/tactic/bit_blaster/bit_blaster_model_converter.h diff --git a/src/bv/bit_blaster/bit_blaster_rewriter.cpp b/src/tactic/bit_blaster/bit_blaster_rewriter.cpp similarity index 100% rename from src/bv/bit_blaster/bit_blaster_rewriter.cpp rename to src/tactic/bit_blaster/bit_blaster_rewriter.cpp diff --git a/src/bv/bit_blaster/bit_blaster_rewriter.h b/src/tactic/bit_blaster/bit_blaster_rewriter.h similarity index 100% rename from src/bv/bit_blaster/bit_blaster_rewriter.h rename to src/tactic/bit_blaster/bit_blaster_rewriter.h diff --git a/src/bv/bit_blaster/bit_blaster_tpl.h b/src/tactic/bit_blaster/bit_blaster_tpl.h similarity index 100% rename from src/bv/bit_blaster/bit_blaster_tpl.h rename to src/tactic/bit_blaster/bit_blaster_tpl.h diff --git a/src/bv/bit_blaster/bit_blaster_tpl_def.h b/src/tactic/bit_blaster/bit_blaster_tpl_def.h similarity index 100% rename from src/bv/bit_blaster/bit_blaster_tpl_def.h rename to src/tactic/bit_blaster/bit_blaster_tpl_def.h diff --git a/src/bv/bit_blaster/bv1_blaster_tactic.cpp b/src/tactic/bit_blaster/bv1_blaster_tactic.cpp similarity index 100% rename from src/bv/bit_blaster/bv1_blaster_tactic.cpp rename to src/tactic/bit_blaster/bv1_blaster_tactic.cpp diff --git a/src/bv/bit_blaster/bv1_blaster_tactic.h b/src/tactic/bit_blaster/bv1_blaster_tactic.h similarity index 100% rename from src/bv/bit_blaster/bv1_blaster_tactic.h rename to src/tactic/bit_blaster/bv1_blaster_tactic.h diff --git a/src/bv/bit_blaster/eager_bit_blaster.cpp b/src/tactic/bit_blaster/eager_bit_blaster.cpp similarity index 100% rename from src/bv/bit_blaster/eager_bit_blaster.cpp rename to src/tactic/bit_blaster/eager_bit_blaster.cpp diff --git a/src/bv/bit_blaster/eager_bit_blaster.h b/src/tactic/bit_blaster/eager_bit_blaster.h similarity index 100% rename from src/bv/bit_blaster/eager_bit_blaster.h rename to src/tactic/bit_blaster/eager_bit_blaster.h diff --git a/src/bv/tactics/bit_blaster_tactic.cpp b/src/tactic/bv_tactics/bit_blaster_tactic.cpp similarity index 100% rename from src/bv/tactics/bit_blaster_tactic.cpp rename to src/tactic/bv_tactics/bit_blaster_tactic.cpp diff --git a/src/bv/tactics/bit_blaster_tactic.h b/src/tactic/bv_tactics/bit_blaster_tactic.h similarity index 100% rename from src/bv/tactics/bit_blaster_tactic.h rename to src/tactic/bv_tactics/bit_blaster_tactic.h diff --git a/src/bv/tactics/bv_size_reduction_tactic.cpp b/src/tactic/bv_tactics/bv_size_reduction_tactic.cpp similarity index 100% rename from src/bv/tactics/bv_size_reduction_tactic.cpp rename to src/tactic/bv_tactics/bv_size_reduction_tactic.cpp diff --git a/src/bv/tactics/bv_size_reduction_tactic.h b/src/tactic/bv_tactics/bv_size_reduction_tactic.h similarity index 100% rename from src/bv/tactics/bv_size_reduction_tactic.h rename to src/tactic/bv_tactics/bv_size_reduction_tactic.h diff --git a/src/bv/tactics/max_bv_sharing_tactic.cpp b/src/tactic/bv_tactics/max_bv_sharing_tactic.cpp similarity index 100% rename from src/bv/tactics/max_bv_sharing_tactic.cpp rename to src/tactic/bv_tactics/max_bv_sharing_tactic.cpp diff --git a/src/bv/tactics/max_bv_sharing_tactic.h b/src/tactic/bv_tactics/max_bv_sharing_tactic.h similarity index 100% rename from src/bv/tactics/max_bv_sharing_tactic.h rename to src/tactic/bv_tactics/max_bv_sharing_tactic.h diff --git a/src/core_tactics/cofactor_elim_term_ite.cpp b/src/tactic/core_tactics/cofactor_elim_term_ite.cpp similarity index 100% rename from src/core_tactics/cofactor_elim_term_ite.cpp rename to src/tactic/core_tactics/cofactor_elim_term_ite.cpp diff --git a/src/core_tactics/cofactor_elim_term_ite.h b/src/tactic/core_tactics/cofactor_elim_term_ite.h similarity index 100% rename from src/core_tactics/cofactor_elim_term_ite.h rename to src/tactic/core_tactics/cofactor_elim_term_ite.h diff --git a/src/core_tactics/cofactor_term_ite_tactic.cpp b/src/tactic/core_tactics/cofactor_term_ite_tactic.cpp similarity index 100% rename from src/core_tactics/cofactor_term_ite_tactic.cpp rename to src/tactic/core_tactics/cofactor_term_ite_tactic.cpp diff --git a/src/core_tactics/cofactor_term_ite_tactic.h b/src/tactic/core_tactics/cofactor_term_ite_tactic.h similarity index 100% rename from src/core_tactics/cofactor_term_ite_tactic.h rename to src/tactic/core_tactics/cofactor_term_ite_tactic.h diff --git a/src/core_tactics/ctx_simplify_tactic.cpp b/src/tactic/core_tactics/ctx_simplify_tactic.cpp similarity index 100% rename from src/core_tactics/ctx_simplify_tactic.cpp rename to src/tactic/core_tactics/ctx_simplify_tactic.cpp diff --git a/src/core_tactics/ctx_simplify_tactic.h b/src/tactic/core_tactics/ctx_simplify_tactic.h similarity index 100% rename from src/core_tactics/ctx_simplify_tactic.h rename to src/tactic/core_tactics/ctx_simplify_tactic.h diff --git a/src/core_tactics/der_tactic.cpp b/src/tactic/core_tactics/der_tactic.cpp similarity index 100% rename from src/core_tactics/der_tactic.cpp rename to src/tactic/core_tactics/der_tactic.cpp diff --git a/src/core_tactics/der_tactic.h b/src/tactic/core_tactics/der_tactic.h similarity index 100% rename from src/core_tactics/der_tactic.h rename to src/tactic/core_tactics/der_tactic.h diff --git a/src/core_tactics/distribute_forall_tactic.cpp b/src/tactic/core_tactics/distribute_forall_tactic.cpp similarity index 100% rename from src/core_tactics/distribute_forall_tactic.cpp rename to src/tactic/core_tactics/distribute_forall_tactic.cpp diff --git a/src/core_tactics/distribute_forall_tactic.h b/src/tactic/core_tactics/distribute_forall_tactic.h similarity index 100% rename from src/core_tactics/distribute_forall_tactic.h rename to src/tactic/core_tactics/distribute_forall_tactic.h diff --git a/src/core_tactics/elim_term_ite_tactic.cpp b/src/tactic/core_tactics/elim_term_ite_tactic.cpp similarity index 100% rename from src/core_tactics/elim_term_ite_tactic.cpp rename to src/tactic/core_tactics/elim_term_ite_tactic.cpp diff --git a/src/core_tactics/elim_term_ite_tactic.h b/src/tactic/core_tactics/elim_term_ite_tactic.h similarity index 100% rename from src/core_tactics/elim_term_ite_tactic.h rename to src/tactic/core_tactics/elim_term_ite_tactic.h diff --git a/src/core_tactics/elim_uncnstr_tactic.cpp b/src/tactic/core_tactics/elim_uncnstr_tactic.cpp similarity index 100% rename from src/core_tactics/elim_uncnstr_tactic.cpp rename to src/tactic/core_tactics/elim_uncnstr_tactic.cpp diff --git a/src/core_tactics/elim_uncnstr_tactic.h b/src/tactic/core_tactics/elim_uncnstr_tactic.h similarity index 100% rename from src/core_tactics/elim_uncnstr_tactic.h rename to src/tactic/core_tactics/elim_uncnstr_tactic.h diff --git a/src/core_tactics/nnf_tactic.cpp b/src/tactic/core_tactics/nnf_tactic.cpp similarity index 100% rename from src/core_tactics/nnf_tactic.cpp rename to src/tactic/core_tactics/nnf_tactic.cpp diff --git a/src/core_tactics/nnf_tactic.h b/src/tactic/core_tactics/nnf_tactic.h similarity index 100% rename from src/core_tactics/nnf_tactic.h rename to src/tactic/core_tactics/nnf_tactic.h diff --git a/src/core_tactics/occf_tactic.cpp b/src/tactic/core_tactics/occf_tactic.cpp similarity index 100% rename from src/core_tactics/occf_tactic.cpp rename to src/tactic/core_tactics/occf_tactic.cpp diff --git a/src/core_tactics/occf_tactic.h b/src/tactic/core_tactics/occf_tactic.h similarity index 100% rename from src/core_tactics/occf_tactic.h rename to src/tactic/core_tactics/occf_tactic.h diff --git a/src/core_tactics/propagate_values_tactic.cpp b/src/tactic/core_tactics/propagate_values_tactic.cpp similarity index 100% rename from src/core_tactics/propagate_values_tactic.cpp rename to src/tactic/core_tactics/propagate_values_tactic.cpp diff --git a/src/core_tactics/propagate_values_tactic.h b/src/tactic/core_tactics/propagate_values_tactic.h similarity index 100% rename from src/core_tactics/propagate_values_tactic.h rename to src/tactic/core_tactics/propagate_values_tactic.h diff --git a/src/core_tactics/reduce_args_tactic.cpp b/src/tactic/core_tactics/reduce_args_tactic.cpp similarity index 100% rename from src/core_tactics/reduce_args_tactic.cpp rename to src/tactic/core_tactics/reduce_args_tactic.cpp diff --git a/src/core_tactics/reduce_args_tactic.h b/src/tactic/core_tactics/reduce_args_tactic.h similarity index 100% rename from src/core_tactics/reduce_args_tactic.h rename to src/tactic/core_tactics/reduce_args_tactic.h diff --git a/src/core_tactics/simplify_tactic.cpp b/src/tactic/core_tactics/simplify_tactic.cpp similarity index 100% rename from src/core_tactics/simplify_tactic.cpp rename to src/tactic/core_tactics/simplify_tactic.cpp diff --git a/src/core_tactics/simplify_tactic.h b/src/tactic/core_tactics/simplify_tactic.h similarity index 100% rename from src/core_tactics/simplify_tactic.h rename to src/tactic/core_tactics/simplify_tactic.h diff --git a/src/core_tactics/solve_eqs_tactic.cpp b/src/tactic/core_tactics/solve_eqs_tactic.cpp similarity index 100% rename from src/core_tactics/solve_eqs_tactic.cpp rename to src/tactic/core_tactics/solve_eqs_tactic.cpp diff --git a/src/core_tactics/solve_eqs_tactic.h b/src/tactic/core_tactics/solve_eqs_tactic.h similarity index 100% rename from src/core_tactics/solve_eqs_tactic.h rename to src/tactic/core_tactics/solve_eqs_tactic.h diff --git a/src/core_tactics/split_clause_tactic.cpp b/src/tactic/core_tactics/split_clause_tactic.cpp similarity index 100% rename from src/core_tactics/split_clause_tactic.cpp rename to src/tactic/core_tactics/split_clause_tactic.cpp diff --git a/src/core_tactics/split_clause_tactic.h b/src/tactic/core_tactics/split_clause_tactic.h similarity index 100% rename from src/core_tactics/split_clause_tactic.h rename to src/tactic/core_tactics/split_clause_tactic.h diff --git a/src/core_tactics/symmetry_reduce_tactic.cpp b/src/tactic/core_tactics/symmetry_reduce_tactic.cpp similarity index 100% rename from src/core_tactics/symmetry_reduce_tactic.cpp rename to src/tactic/core_tactics/symmetry_reduce_tactic.cpp diff --git a/src/core_tactics/symmetry_reduce_tactic.h b/src/tactic/core_tactics/symmetry_reduce_tactic.h similarity index 100% rename from src/core_tactics/symmetry_reduce_tactic.h rename to src/tactic/core_tactics/symmetry_reduce_tactic.h diff --git a/src/core_tactics/tseitin_cnf_tactic.cpp b/src/tactic/core_tactics/tseitin_cnf_tactic.cpp similarity index 100% rename from src/core_tactics/tseitin_cnf_tactic.cpp rename to src/tactic/core_tactics/tseitin_cnf_tactic.cpp diff --git a/src/core_tactics/tseitin_cnf_tactic.h b/src/tactic/core_tactics/tseitin_cnf_tactic.h similarity index 100% rename from src/core_tactics/tseitin_cnf_tactic.h rename to src/tactic/core_tactics/tseitin_cnf_tactic.h diff --git a/src/fpa/fpa2bv_converter.cpp b/src/tactic/fpa/fpa2bv_converter.cpp similarity index 100% rename from src/fpa/fpa2bv_converter.cpp rename to src/tactic/fpa/fpa2bv_converter.cpp diff --git a/src/fpa/fpa2bv_converter.h b/src/tactic/fpa/fpa2bv_converter.h similarity index 100% rename from src/fpa/fpa2bv_converter.h rename to src/tactic/fpa/fpa2bv_converter.h diff --git a/src/fpa/fpa2bv_tactic.cpp b/src/tactic/fpa/fpa2bv_tactic.cpp similarity index 100% rename from src/fpa/fpa2bv_tactic.cpp rename to src/tactic/fpa/fpa2bv_tactic.cpp diff --git a/src/fpa/fpa2bv_tactic.h b/src/tactic/fpa/fpa2bv_tactic.h similarity index 100% rename from src/fpa/fpa2bv_tactic.h rename to src/tactic/fpa/fpa2bv_tactic.h diff --git a/src/fpa/qffpa_tactic.cpp b/src/tactic/fpa/qffpa_tactic.cpp similarity index 100% rename from src/fpa/qffpa_tactic.cpp rename to src/tactic/fpa/qffpa_tactic.cpp diff --git a/src/fpa/qffpa_tactic.h b/src/tactic/fpa/qffpa_tactic.h similarity index 100% rename from src/fpa/qffpa_tactic.h rename to src/tactic/fpa/qffpa_tactic.h diff --git a/src/portfolio/default_tactic.cpp b/src/tactic/portfolio/default_tactic.cpp similarity index 100% rename from src/portfolio/default_tactic.cpp rename to src/tactic/portfolio/default_tactic.cpp diff --git a/src/portfolio/default_tactic.h b/src/tactic/portfolio/default_tactic.h similarity index 100% rename from src/portfolio/default_tactic.h rename to src/tactic/portfolio/default_tactic.h diff --git a/src/portfolio/install_tactics.cpp b/src/tactic/portfolio/install_tactics.cpp similarity index 100% rename from src/portfolio/install_tactics.cpp rename to src/tactic/portfolio/install_tactics.cpp diff --git a/src/portfolio/install_tactics.h b/src/tactic/portfolio/install_tactics.h similarity index 100% rename from src/portfolio/install_tactics.h rename to src/tactic/portfolio/install_tactics.h diff --git a/src/portfolio/smt_strategic_solver.cpp b/src/tactic/portfolio/smt_strategic_solver.cpp similarity index 100% rename from src/portfolio/smt_strategic_solver.cpp rename to src/tactic/portfolio/smt_strategic_solver.cpp diff --git a/src/portfolio/smt_strategic_solver.h b/src/tactic/portfolio/smt_strategic_solver.h similarity index 100% rename from src/portfolio/smt_strategic_solver.h rename to src/tactic/portfolio/smt_strategic_solver.h diff --git a/src/bv/sls_tactic/sls_strategy.h b/src/tactic/sls_tactic/sls_strategy.h similarity index 100% rename from src/bv/sls_tactic/sls_strategy.h rename to src/tactic/sls_tactic/sls_strategy.h diff --git a/src/bv/sls_tactic/sls_tactic.cpp b/src/tactic/sls_tactic/sls_tactic.cpp similarity index 100% rename from src/bv/sls_tactic/sls_tactic.cpp rename to src/tactic/sls_tactic/sls_tactic.cpp diff --git a/src/bv/sls_tactic/sls_tactic.h b/src/tactic/sls_tactic/sls_tactic.h similarity index 100% rename from src/bv/sls_tactic/sls_tactic.h rename to src/tactic/sls_tactic/sls_tactic.h diff --git a/src/smtlogic_tactics/nra_tactic.cpp b/src/tactic/smtlogic_tactics/nra_tactic.cpp similarity index 100% rename from src/smtlogic_tactics/nra_tactic.cpp rename to src/tactic/smtlogic_tactics/nra_tactic.cpp diff --git a/src/smtlogic_tactics/nra_tactic.h b/src/tactic/smtlogic_tactics/nra_tactic.h similarity index 100% rename from src/smtlogic_tactics/nra_tactic.h rename to src/tactic/smtlogic_tactics/nra_tactic.h diff --git a/src/smtlogic_tactics/qfaufbv_tactic.cpp b/src/tactic/smtlogic_tactics/qfaufbv_tactic.cpp similarity index 100% rename from src/smtlogic_tactics/qfaufbv_tactic.cpp rename to src/tactic/smtlogic_tactics/qfaufbv_tactic.cpp diff --git a/src/smtlogic_tactics/qfaufbv_tactic.h b/src/tactic/smtlogic_tactics/qfaufbv_tactic.h similarity index 100% rename from src/smtlogic_tactics/qfaufbv_tactic.h rename to src/tactic/smtlogic_tactics/qfaufbv_tactic.h diff --git a/src/smtlogic_tactics/qfauflia_tactic.cpp b/src/tactic/smtlogic_tactics/qfauflia_tactic.cpp similarity index 100% rename from src/smtlogic_tactics/qfauflia_tactic.cpp rename to src/tactic/smtlogic_tactics/qfauflia_tactic.cpp diff --git a/src/smtlogic_tactics/qfauflia_tactic.h b/src/tactic/smtlogic_tactics/qfauflia_tactic.h similarity index 100% rename from src/smtlogic_tactics/qfauflia_tactic.h rename to src/tactic/smtlogic_tactics/qfauflia_tactic.h diff --git a/src/smtlogic_tactics/qfbv_tactic.cpp b/src/tactic/smtlogic_tactics/qfbv_tactic.cpp similarity index 100% rename from src/smtlogic_tactics/qfbv_tactic.cpp rename to src/tactic/smtlogic_tactics/qfbv_tactic.cpp diff --git a/src/smtlogic_tactics/qfbv_tactic.h b/src/tactic/smtlogic_tactics/qfbv_tactic.h similarity index 100% rename from src/smtlogic_tactics/qfbv_tactic.h rename to src/tactic/smtlogic_tactics/qfbv_tactic.h diff --git a/src/smtlogic_tactics/qfidl_tactic.cpp b/src/tactic/smtlogic_tactics/qfidl_tactic.cpp similarity index 100% rename from src/smtlogic_tactics/qfidl_tactic.cpp rename to src/tactic/smtlogic_tactics/qfidl_tactic.cpp diff --git a/src/smtlogic_tactics/qfidl_tactic.h b/src/tactic/smtlogic_tactics/qfidl_tactic.h similarity index 100% rename from src/smtlogic_tactics/qfidl_tactic.h rename to src/tactic/smtlogic_tactics/qfidl_tactic.h diff --git a/src/smtlogic_tactics/qflia_tactic.cpp b/src/tactic/smtlogic_tactics/qflia_tactic.cpp similarity index 100% rename from src/smtlogic_tactics/qflia_tactic.cpp rename to src/tactic/smtlogic_tactics/qflia_tactic.cpp diff --git a/src/smtlogic_tactics/qflia_tactic.h b/src/tactic/smtlogic_tactics/qflia_tactic.h similarity index 100% rename from src/smtlogic_tactics/qflia_tactic.h rename to src/tactic/smtlogic_tactics/qflia_tactic.h diff --git a/src/smtlogic_tactics/qflra_tactic.cpp b/src/tactic/smtlogic_tactics/qflra_tactic.cpp similarity index 100% rename from src/smtlogic_tactics/qflra_tactic.cpp rename to src/tactic/smtlogic_tactics/qflra_tactic.cpp diff --git a/src/smtlogic_tactics/qflra_tactic.h b/src/tactic/smtlogic_tactics/qflra_tactic.h similarity index 100% rename from src/smtlogic_tactics/qflra_tactic.h rename to src/tactic/smtlogic_tactics/qflra_tactic.h diff --git a/src/smtlogic_tactics/qfnia_tactic.cpp b/src/tactic/smtlogic_tactics/qfnia_tactic.cpp similarity index 100% rename from src/smtlogic_tactics/qfnia_tactic.cpp rename to src/tactic/smtlogic_tactics/qfnia_tactic.cpp diff --git a/src/smtlogic_tactics/qfnia_tactic.h b/src/tactic/smtlogic_tactics/qfnia_tactic.h similarity index 100% rename from src/smtlogic_tactics/qfnia_tactic.h rename to src/tactic/smtlogic_tactics/qfnia_tactic.h diff --git a/src/smtlogic_tactics/qfnra_tactic.cpp b/src/tactic/smtlogic_tactics/qfnra_tactic.cpp similarity index 100% rename from src/smtlogic_tactics/qfnra_tactic.cpp rename to src/tactic/smtlogic_tactics/qfnra_tactic.cpp diff --git a/src/smtlogic_tactics/qfnra_tactic.h b/src/tactic/smtlogic_tactics/qfnra_tactic.h similarity index 100% rename from src/smtlogic_tactics/qfnra_tactic.h rename to src/tactic/smtlogic_tactics/qfnra_tactic.h diff --git a/src/smtlogic_tactics/qfuf_tactic.cpp b/src/tactic/smtlogic_tactics/qfuf_tactic.cpp similarity index 100% rename from src/smtlogic_tactics/qfuf_tactic.cpp rename to src/tactic/smtlogic_tactics/qfuf_tactic.cpp diff --git a/src/smtlogic_tactics/qfuf_tactic.h b/src/tactic/smtlogic_tactics/qfuf_tactic.h similarity index 100% rename from src/smtlogic_tactics/qfuf_tactic.h rename to src/tactic/smtlogic_tactics/qfuf_tactic.h diff --git a/src/smtlogic_tactics/qfufbv_tactic.cpp b/src/tactic/smtlogic_tactics/qfufbv_tactic.cpp similarity index 100% rename from src/smtlogic_tactics/qfufbv_tactic.cpp rename to src/tactic/smtlogic_tactics/qfufbv_tactic.cpp diff --git a/src/smtlogic_tactics/qfufbv_tactic.h b/src/tactic/smtlogic_tactics/qfufbv_tactic.h similarity index 100% rename from src/smtlogic_tactics/qfufbv_tactic.h rename to src/tactic/smtlogic_tactics/qfufbv_tactic.h diff --git a/src/smtlogic_tactics/quant_tactics.cpp b/src/tactic/smtlogic_tactics/quant_tactics.cpp similarity index 100% rename from src/smtlogic_tactics/quant_tactics.cpp rename to src/tactic/smtlogic_tactics/quant_tactics.cpp diff --git a/src/smtlogic_tactics/quant_tactics.h b/src/tactic/smtlogic_tactics/quant_tactics.h similarity index 100% rename from src/smtlogic_tactics/quant_tactics.h rename to src/tactic/smtlogic_tactics/quant_tactics.h From 952188a485be881bc9778509b6fb7d1b629965b6 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 22:18:59 -0700 Subject: [PATCH 49/54] Moved .NET and ml APIs to src Signed-off-by: Leonardo de Moura --- {Microsoft.Z3 => src/Microsoft.Z3}/AST.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/ASTMap.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/ASTVector.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/ApplyResult.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Constructor.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Context.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/DecRefQUeue.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Enumerations.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Expr.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Fixedpoint.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/FuncDecl.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/FuncInterp.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Goal.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Log.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Microsoft.Z3.csproj | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Microsoft.Z3_35.csproj | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Model.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Native.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Numeral.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/ParamDescrs.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Params.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Pattern.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Probe.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Properties/AssemblyInfo.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Quantifier.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Solver.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Sort.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Statistics.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Status.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Symbol.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Tactic.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Version.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Z3Exception.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/Z3Object.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/test_mapi/Program.cs | 0 {Microsoft.Z3 => src/Microsoft.Z3}/test_mapi/build.cmd | 0 {Microsoft.Z3 => src/Microsoft.Z3}/test_mapi/test_mapi.csproj | 0 {Microsoft.Z3V3 => src/Microsoft.Z3V3}/AssemblyInfo.cpp | 0 {Microsoft.Z3V3 => src/Microsoft.Z3V3}/Microsoft.Z3V3.cpp | 0 {Microsoft.Z3V3 => src/Microsoft.Z3V3}/Microsoft.Z3V3.h | 0 {Microsoft.Z3V3 => src/Microsoft.Z3V3}/Microsoft.Z3V3.vcxproj | 0 {ml => src/ml}/add_error_checking.V3.sed | 0 {ml => src/ml}/add_error_checking.sed | 0 {ml => src/ml}/build.cmd | 0 {ml => src/ml}/build.sed | 0 {ml => src/ml}/clean.cmd | 0 {ml => src/ml}/cleantmp.cmd | 0 {ml => src/ml}/compile_mlapi.cmd | 0 {ml => src/ml}/error_handling.idl | 0 {ml => src/ml}/generate_mlapi.cmd | 0 {ml => src/ml}/import.cmd | 0 {ml => src/ml}/mlx_get_app_args.idl | 0 {ml => src/ml}/mlx_get_array_sort.idl | 0 {ml => src/ml}/mlx_get_datatype_sort.idl | 0 {ml => src/ml}/mlx_get_domains.idl | 0 {ml => src/ml}/mlx_get_error_msg.idl | 0 {ml => src/ml}/mlx_get_pattern_terms.idl | 0 {ml => src/ml}/mlx_get_tuple_sort.idl | 0 {ml => src/ml}/mlx_mk_context_x.idl | 0 {ml => src/ml}/mlx_mk_datatypes.idl | 0 {ml => src/ml}/mlx_mk_numeral.idl | 0 {ml => src/ml}/mlx_mk_sort.idl | 0 {ml => src/ml}/mlx_mk_symbol.idl | 0 {ml => src/ml}/mlx_model.idl | 0 {ml => src/ml}/mlx_numeral_refine.idl | 0 {ml => src/ml}/mlx_parse_smtlib.idl | 0 {ml => src/ml}/mlx_sort_refine.idl | 0 {ml => src/ml}/mlx_statistics.idl | 0 {ml => src/ml}/mlx_symbol_refine.idl | 0 {ml => src/ml}/mlx_term_refine.idl | 0 {ml => src/ml}/msbuild.proj | 0 {ml => src/ml}/queen.ml | 0 {ml => src/ml}/queen.regress.err | 0 {ml => src/ml}/queen.regress.out | 0 {ml => src/ml}/readme.txt | 0 {ml => src/ml}/regress.cmd | 0 {ml => src/ml}/test_capi.regress.err | 0 {ml => src/ml}/test_capi.regress.out | 0 {ml => src/ml}/test_mlapi.cmd | 0 {ml => src/ml}/test_mlapi.ml | 0 {ml => src/ml}/test_mlapi.regress.err | 0 {ml => src/ml}/test_mlapi.regress.out | 0 {ml => src/ml}/test_mlapiV3.ml | 0 {ml => src/ml}/test_mlapiV3.regress.err | 0 {ml => src/ml}/test_mlapiV3.regress.out | 0 {ml => src/ml}/test_theory.ml | 0 {ml => src/ml}/update-ml-doc.cmd | 0 {ml => src/ml}/x3.ml | 0 {ml => src/ml}/x3V3.ml | 0 {ml => src/ml}/x3V3.mli | 0 {ml => src/ml}/z3.idl | 0 {ml => src/ml}/z3.ml | 0 {ml => src/ml}/z3.mli | 0 {ml => src/ml}/z3.proj | 0 {ml => src/ml}/z3_stubs.c | 0 {ml => src/ml}/z3_theory_stubs.c | 0 96 files changed, 0 insertions(+), 0 deletions(-) rename {Microsoft.Z3 => src/Microsoft.Z3}/AST.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/ASTMap.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/ASTVector.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/ApplyResult.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Constructor.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Context.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/DecRefQUeue.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Enumerations.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Expr.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Fixedpoint.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/FuncDecl.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/FuncInterp.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Goal.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Log.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Microsoft.Z3.csproj (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Microsoft.Z3_35.csproj (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Model.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Native.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Numeral.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/ParamDescrs.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Params.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Pattern.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Probe.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Properties/AssemblyInfo.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Quantifier.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Solver.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Sort.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Statistics.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Status.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Symbol.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Tactic.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Version.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Z3Exception.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/Z3Object.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/test_mapi/Program.cs (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/test_mapi/build.cmd (100%) rename {Microsoft.Z3 => src/Microsoft.Z3}/test_mapi/test_mapi.csproj (100%) rename {Microsoft.Z3V3 => src/Microsoft.Z3V3}/AssemblyInfo.cpp (100%) rename {Microsoft.Z3V3 => src/Microsoft.Z3V3}/Microsoft.Z3V3.cpp (100%) rename {Microsoft.Z3V3 => src/Microsoft.Z3V3}/Microsoft.Z3V3.h (100%) rename {Microsoft.Z3V3 => src/Microsoft.Z3V3}/Microsoft.Z3V3.vcxproj (100%) rename {ml => src/ml}/add_error_checking.V3.sed (100%) rename {ml => src/ml}/add_error_checking.sed (100%) rename {ml => src/ml}/build.cmd (100%) rename {ml => src/ml}/build.sed (100%) rename {ml => src/ml}/clean.cmd (100%) rename {ml => src/ml}/cleantmp.cmd (100%) rename {ml => src/ml}/compile_mlapi.cmd (100%) rename {ml => src/ml}/error_handling.idl (100%) rename {ml => src/ml}/generate_mlapi.cmd (100%) rename {ml => src/ml}/import.cmd (100%) rename {ml => src/ml}/mlx_get_app_args.idl (100%) rename {ml => src/ml}/mlx_get_array_sort.idl (100%) rename {ml => src/ml}/mlx_get_datatype_sort.idl (100%) rename {ml => src/ml}/mlx_get_domains.idl (100%) rename {ml => src/ml}/mlx_get_error_msg.idl (100%) rename {ml => src/ml}/mlx_get_pattern_terms.idl (100%) rename {ml => src/ml}/mlx_get_tuple_sort.idl (100%) rename {ml => src/ml}/mlx_mk_context_x.idl (100%) rename {ml => src/ml}/mlx_mk_datatypes.idl (100%) rename {ml => src/ml}/mlx_mk_numeral.idl (100%) rename {ml => src/ml}/mlx_mk_sort.idl (100%) rename {ml => src/ml}/mlx_mk_symbol.idl (100%) rename {ml => src/ml}/mlx_model.idl (100%) rename {ml => src/ml}/mlx_numeral_refine.idl (100%) rename {ml => src/ml}/mlx_parse_smtlib.idl (100%) rename {ml => src/ml}/mlx_sort_refine.idl (100%) rename {ml => src/ml}/mlx_statistics.idl (100%) rename {ml => src/ml}/mlx_symbol_refine.idl (100%) rename {ml => src/ml}/mlx_term_refine.idl (100%) rename {ml => src/ml}/msbuild.proj (100%) rename {ml => src/ml}/queen.ml (100%) rename {ml => src/ml}/queen.regress.err (100%) rename {ml => src/ml}/queen.regress.out (100%) rename {ml => src/ml}/readme.txt (100%) rename {ml => src/ml}/regress.cmd (100%) rename {ml => src/ml}/test_capi.regress.err (100%) rename {ml => src/ml}/test_capi.regress.out (100%) rename {ml => src/ml}/test_mlapi.cmd (100%) rename {ml => src/ml}/test_mlapi.ml (100%) rename {ml => src/ml}/test_mlapi.regress.err (100%) rename {ml => src/ml}/test_mlapi.regress.out (100%) rename {ml => src/ml}/test_mlapiV3.ml (100%) rename {ml => src/ml}/test_mlapiV3.regress.err (100%) rename {ml => src/ml}/test_mlapiV3.regress.out (100%) rename {ml => src/ml}/test_theory.ml (100%) rename {ml => src/ml}/update-ml-doc.cmd (100%) rename {ml => src/ml}/x3.ml (100%) rename {ml => src/ml}/x3V3.ml (100%) rename {ml => src/ml}/x3V3.mli (100%) rename {ml => src/ml}/z3.idl (100%) rename {ml => src/ml}/z3.ml (100%) rename {ml => src/ml}/z3.mli (100%) rename {ml => src/ml}/z3.proj (100%) rename {ml => src/ml}/z3_stubs.c (100%) rename {ml => src/ml}/z3_theory_stubs.c (100%) diff --git a/Microsoft.Z3/AST.cs b/src/Microsoft.Z3/AST.cs similarity index 100% rename from Microsoft.Z3/AST.cs rename to src/Microsoft.Z3/AST.cs diff --git a/Microsoft.Z3/ASTMap.cs b/src/Microsoft.Z3/ASTMap.cs similarity index 100% rename from Microsoft.Z3/ASTMap.cs rename to src/Microsoft.Z3/ASTMap.cs diff --git a/Microsoft.Z3/ASTVector.cs b/src/Microsoft.Z3/ASTVector.cs similarity index 100% rename from Microsoft.Z3/ASTVector.cs rename to src/Microsoft.Z3/ASTVector.cs diff --git a/Microsoft.Z3/ApplyResult.cs b/src/Microsoft.Z3/ApplyResult.cs similarity index 100% rename from Microsoft.Z3/ApplyResult.cs rename to src/Microsoft.Z3/ApplyResult.cs diff --git a/Microsoft.Z3/Constructor.cs b/src/Microsoft.Z3/Constructor.cs similarity index 100% rename from Microsoft.Z3/Constructor.cs rename to src/Microsoft.Z3/Constructor.cs diff --git a/Microsoft.Z3/Context.cs b/src/Microsoft.Z3/Context.cs similarity index 100% rename from Microsoft.Z3/Context.cs rename to src/Microsoft.Z3/Context.cs diff --git a/Microsoft.Z3/DecRefQUeue.cs b/src/Microsoft.Z3/DecRefQUeue.cs similarity index 100% rename from Microsoft.Z3/DecRefQUeue.cs rename to src/Microsoft.Z3/DecRefQUeue.cs diff --git a/Microsoft.Z3/Enumerations.cs b/src/Microsoft.Z3/Enumerations.cs similarity index 100% rename from Microsoft.Z3/Enumerations.cs rename to src/Microsoft.Z3/Enumerations.cs diff --git a/Microsoft.Z3/Expr.cs b/src/Microsoft.Z3/Expr.cs similarity index 100% rename from Microsoft.Z3/Expr.cs rename to src/Microsoft.Z3/Expr.cs diff --git a/Microsoft.Z3/Fixedpoint.cs b/src/Microsoft.Z3/Fixedpoint.cs similarity index 100% rename from Microsoft.Z3/Fixedpoint.cs rename to src/Microsoft.Z3/Fixedpoint.cs diff --git a/Microsoft.Z3/FuncDecl.cs b/src/Microsoft.Z3/FuncDecl.cs similarity index 100% rename from Microsoft.Z3/FuncDecl.cs rename to src/Microsoft.Z3/FuncDecl.cs diff --git a/Microsoft.Z3/FuncInterp.cs b/src/Microsoft.Z3/FuncInterp.cs similarity index 100% rename from Microsoft.Z3/FuncInterp.cs rename to src/Microsoft.Z3/FuncInterp.cs diff --git a/Microsoft.Z3/Goal.cs b/src/Microsoft.Z3/Goal.cs similarity index 100% rename from Microsoft.Z3/Goal.cs rename to src/Microsoft.Z3/Goal.cs diff --git a/Microsoft.Z3/Log.cs b/src/Microsoft.Z3/Log.cs similarity index 100% rename from Microsoft.Z3/Log.cs rename to src/Microsoft.Z3/Log.cs diff --git a/Microsoft.Z3/Microsoft.Z3.csproj b/src/Microsoft.Z3/Microsoft.Z3.csproj similarity index 100% rename from Microsoft.Z3/Microsoft.Z3.csproj rename to src/Microsoft.Z3/Microsoft.Z3.csproj diff --git a/Microsoft.Z3/Microsoft.Z3_35.csproj b/src/Microsoft.Z3/Microsoft.Z3_35.csproj similarity index 100% rename from Microsoft.Z3/Microsoft.Z3_35.csproj rename to src/Microsoft.Z3/Microsoft.Z3_35.csproj diff --git a/Microsoft.Z3/Model.cs b/src/Microsoft.Z3/Model.cs similarity index 100% rename from Microsoft.Z3/Model.cs rename to src/Microsoft.Z3/Model.cs diff --git a/Microsoft.Z3/Native.cs b/src/Microsoft.Z3/Native.cs similarity index 100% rename from Microsoft.Z3/Native.cs rename to src/Microsoft.Z3/Native.cs diff --git a/Microsoft.Z3/Numeral.cs b/src/Microsoft.Z3/Numeral.cs similarity index 100% rename from Microsoft.Z3/Numeral.cs rename to src/Microsoft.Z3/Numeral.cs diff --git a/Microsoft.Z3/ParamDescrs.cs b/src/Microsoft.Z3/ParamDescrs.cs similarity index 100% rename from Microsoft.Z3/ParamDescrs.cs rename to src/Microsoft.Z3/ParamDescrs.cs diff --git a/Microsoft.Z3/Params.cs b/src/Microsoft.Z3/Params.cs similarity index 100% rename from Microsoft.Z3/Params.cs rename to src/Microsoft.Z3/Params.cs diff --git a/Microsoft.Z3/Pattern.cs b/src/Microsoft.Z3/Pattern.cs similarity index 100% rename from Microsoft.Z3/Pattern.cs rename to src/Microsoft.Z3/Pattern.cs diff --git a/Microsoft.Z3/Probe.cs b/src/Microsoft.Z3/Probe.cs similarity index 100% rename from Microsoft.Z3/Probe.cs rename to src/Microsoft.Z3/Probe.cs diff --git a/Microsoft.Z3/Properties/AssemblyInfo.cs b/src/Microsoft.Z3/Properties/AssemblyInfo.cs similarity index 100% rename from Microsoft.Z3/Properties/AssemblyInfo.cs rename to src/Microsoft.Z3/Properties/AssemblyInfo.cs diff --git a/Microsoft.Z3/Quantifier.cs b/src/Microsoft.Z3/Quantifier.cs similarity index 100% rename from Microsoft.Z3/Quantifier.cs rename to src/Microsoft.Z3/Quantifier.cs diff --git a/Microsoft.Z3/Solver.cs b/src/Microsoft.Z3/Solver.cs similarity index 100% rename from Microsoft.Z3/Solver.cs rename to src/Microsoft.Z3/Solver.cs diff --git a/Microsoft.Z3/Sort.cs b/src/Microsoft.Z3/Sort.cs similarity index 100% rename from Microsoft.Z3/Sort.cs rename to src/Microsoft.Z3/Sort.cs diff --git a/Microsoft.Z3/Statistics.cs b/src/Microsoft.Z3/Statistics.cs similarity index 100% rename from Microsoft.Z3/Statistics.cs rename to src/Microsoft.Z3/Statistics.cs diff --git a/Microsoft.Z3/Status.cs b/src/Microsoft.Z3/Status.cs similarity index 100% rename from Microsoft.Z3/Status.cs rename to src/Microsoft.Z3/Status.cs diff --git a/Microsoft.Z3/Symbol.cs b/src/Microsoft.Z3/Symbol.cs similarity index 100% rename from Microsoft.Z3/Symbol.cs rename to src/Microsoft.Z3/Symbol.cs diff --git a/Microsoft.Z3/Tactic.cs b/src/Microsoft.Z3/Tactic.cs similarity index 100% rename from Microsoft.Z3/Tactic.cs rename to src/Microsoft.Z3/Tactic.cs diff --git a/Microsoft.Z3/Version.cs b/src/Microsoft.Z3/Version.cs similarity index 100% rename from Microsoft.Z3/Version.cs rename to src/Microsoft.Z3/Version.cs diff --git a/Microsoft.Z3/Z3Exception.cs b/src/Microsoft.Z3/Z3Exception.cs similarity index 100% rename from Microsoft.Z3/Z3Exception.cs rename to src/Microsoft.Z3/Z3Exception.cs diff --git a/Microsoft.Z3/Z3Object.cs b/src/Microsoft.Z3/Z3Object.cs similarity index 100% rename from Microsoft.Z3/Z3Object.cs rename to src/Microsoft.Z3/Z3Object.cs diff --git a/Microsoft.Z3/test_mapi/Program.cs b/src/Microsoft.Z3/test_mapi/Program.cs similarity index 100% rename from Microsoft.Z3/test_mapi/Program.cs rename to src/Microsoft.Z3/test_mapi/Program.cs diff --git a/Microsoft.Z3/test_mapi/build.cmd b/src/Microsoft.Z3/test_mapi/build.cmd similarity index 100% rename from Microsoft.Z3/test_mapi/build.cmd rename to src/Microsoft.Z3/test_mapi/build.cmd diff --git a/Microsoft.Z3/test_mapi/test_mapi.csproj b/src/Microsoft.Z3/test_mapi/test_mapi.csproj similarity index 100% rename from Microsoft.Z3/test_mapi/test_mapi.csproj rename to src/Microsoft.Z3/test_mapi/test_mapi.csproj diff --git a/Microsoft.Z3V3/AssemblyInfo.cpp b/src/Microsoft.Z3V3/AssemblyInfo.cpp similarity index 100% rename from Microsoft.Z3V3/AssemblyInfo.cpp rename to src/Microsoft.Z3V3/AssemblyInfo.cpp diff --git a/Microsoft.Z3V3/Microsoft.Z3V3.cpp b/src/Microsoft.Z3V3/Microsoft.Z3V3.cpp similarity index 100% rename from Microsoft.Z3V3/Microsoft.Z3V3.cpp rename to src/Microsoft.Z3V3/Microsoft.Z3V3.cpp diff --git a/Microsoft.Z3V3/Microsoft.Z3V3.h b/src/Microsoft.Z3V3/Microsoft.Z3V3.h similarity index 100% rename from Microsoft.Z3V3/Microsoft.Z3V3.h rename to src/Microsoft.Z3V3/Microsoft.Z3V3.h diff --git a/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj b/src/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj similarity index 100% rename from Microsoft.Z3V3/Microsoft.Z3V3.vcxproj rename to src/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj diff --git a/ml/add_error_checking.V3.sed b/src/ml/add_error_checking.V3.sed similarity index 100% rename from ml/add_error_checking.V3.sed rename to src/ml/add_error_checking.V3.sed diff --git a/ml/add_error_checking.sed b/src/ml/add_error_checking.sed similarity index 100% rename from ml/add_error_checking.sed rename to src/ml/add_error_checking.sed diff --git a/ml/build.cmd b/src/ml/build.cmd similarity index 100% rename from ml/build.cmd rename to src/ml/build.cmd diff --git a/ml/build.sed b/src/ml/build.sed similarity index 100% rename from ml/build.sed rename to src/ml/build.sed diff --git a/ml/clean.cmd b/src/ml/clean.cmd similarity index 100% rename from ml/clean.cmd rename to src/ml/clean.cmd diff --git a/ml/cleantmp.cmd b/src/ml/cleantmp.cmd similarity index 100% rename from ml/cleantmp.cmd rename to src/ml/cleantmp.cmd diff --git a/ml/compile_mlapi.cmd b/src/ml/compile_mlapi.cmd similarity index 100% rename from ml/compile_mlapi.cmd rename to src/ml/compile_mlapi.cmd diff --git a/ml/error_handling.idl b/src/ml/error_handling.idl similarity index 100% rename from ml/error_handling.idl rename to src/ml/error_handling.idl diff --git a/ml/generate_mlapi.cmd b/src/ml/generate_mlapi.cmd similarity index 100% rename from ml/generate_mlapi.cmd rename to src/ml/generate_mlapi.cmd diff --git a/ml/import.cmd b/src/ml/import.cmd similarity index 100% rename from ml/import.cmd rename to src/ml/import.cmd diff --git a/ml/mlx_get_app_args.idl b/src/ml/mlx_get_app_args.idl similarity index 100% rename from ml/mlx_get_app_args.idl rename to src/ml/mlx_get_app_args.idl diff --git a/ml/mlx_get_array_sort.idl b/src/ml/mlx_get_array_sort.idl similarity index 100% rename from ml/mlx_get_array_sort.idl rename to src/ml/mlx_get_array_sort.idl diff --git a/ml/mlx_get_datatype_sort.idl b/src/ml/mlx_get_datatype_sort.idl similarity index 100% rename from ml/mlx_get_datatype_sort.idl rename to src/ml/mlx_get_datatype_sort.idl diff --git a/ml/mlx_get_domains.idl b/src/ml/mlx_get_domains.idl similarity index 100% rename from ml/mlx_get_domains.idl rename to src/ml/mlx_get_domains.idl diff --git a/ml/mlx_get_error_msg.idl b/src/ml/mlx_get_error_msg.idl similarity index 100% rename from ml/mlx_get_error_msg.idl rename to src/ml/mlx_get_error_msg.idl diff --git a/ml/mlx_get_pattern_terms.idl b/src/ml/mlx_get_pattern_terms.idl similarity index 100% rename from ml/mlx_get_pattern_terms.idl rename to src/ml/mlx_get_pattern_terms.idl diff --git a/ml/mlx_get_tuple_sort.idl b/src/ml/mlx_get_tuple_sort.idl similarity index 100% rename from ml/mlx_get_tuple_sort.idl rename to src/ml/mlx_get_tuple_sort.idl diff --git a/ml/mlx_mk_context_x.idl b/src/ml/mlx_mk_context_x.idl similarity index 100% rename from ml/mlx_mk_context_x.idl rename to src/ml/mlx_mk_context_x.idl diff --git a/ml/mlx_mk_datatypes.idl b/src/ml/mlx_mk_datatypes.idl similarity index 100% rename from ml/mlx_mk_datatypes.idl rename to src/ml/mlx_mk_datatypes.idl diff --git a/ml/mlx_mk_numeral.idl b/src/ml/mlx_mk_numeral.idl similarity index 100% rename from ml/mlx_mk_numeral.idl rename to src/ml/mlx_mk_numeral.idl diff --git a/ml/mlx_mk_sort.idl b/src/ml/mlx_mk_sort.idl similarity index 100% rename from ml/mlx_mk_sort.idl rename to src/ml/mlx_mk_sort.idl diff --git a/ml/mlx_mk_symbol.idl b/src/ml/mlx_mk_symbol.idl similarity index 100% rename from ml/mlx_mk_symbol.idl rename to src/ml/mlx_mk_symbol.idl diff --git a/ml/mlx_model.idl b/src/ml/mlx_model.idl similarity index 100% rename from ml/mlx_model.idl rename to src/ml/mlx_model.idl diff --git a/ml/mlx_numeral_refine.idl b/src/ml/mlx_numeral_refine.idl similarity index 100% rename from ml/mlx_numeral_refine.idl rename to src/ml/mlx_numeral_refine.idl diff --git a/ml/mlx_parse_smtlib.idl b/src/ml/mlx_parse_smtlib.idl similarity index 100% rename from ml/mlx_parse_smtlib.idl rename to src/ml/mlx_parse_smtlib.idl diff --git a/ml/mlx_sort_refine.idl b/src/ml/mlx_sort_refine.idl similarity index 100% rename from ml/mlx_sort_refine.idl rename to src/ml/mlx_sort_refine.idl diff --git a/ml/mlx_statistics.idl b/src/ml/mlx_statistics.idl similarity index 100% rename from ml/mlx_statistics.idl rename to src/ml/mlx_statistics.idl diff --git a/ml/mlx_symbol_refine.idl b/src/ml/mlx_symbol_refine.idl similarity index 100% rename from ml/mlx_symbol_refine.idl rename to src/ml/mlx_symbol_refine.idl diff --git a/ml/mlx_term_refine.idl b/src/ml/mlx_term_refine.idl similarity index 100% rename from ml/mlx_term_refine.idl rename to src/ml/mlx_term_refine.idl diff --git a/ml/msbuild.proj b/src/ml/msbuild.proj similarity index 100% rename from ml/msbuild.proj rename to src/ml/msbuild.proj diff --git a/ml/queen.ml b/src/ml/queen.ml similarity index 100% rename from ml/queen.ml rename to src/ml/queen.ml diff --git a/ml/queen.regress.err b/src/ml/queen.regress.err similarity index 100% rename from ml/queen.regress.err rename to src/ml/queen.regress.err diff --git a/ml/queen.regress.out b/src/ml/queen.regress.out similarity index 100% rename from ml/queen.regress.out rename to src/ml/queen.regress.out diff --git a/ml/readme.txt b/src/ml/readme.txt similarity index 100% rename from ml/readme.txt rename to src/ml/readme.txt diff --git a/ml/regress.cmd b/src/ml/regress.cmd similarity index 100% rename from ml/regress.cmd rename to src/ml/regress.cmd diff --git a/ml/test_capi.regress.err b/src/ml/test_capi.regress.err similarity index 100% rename from ml/test_capi.regress.err rename to src/ml/test_capi.regress.err diff --git a/ml/test_capi.regress.out b/src/ml/test_capi.regress.out similarity index 100% rename from ml/test_capi.regress.out rename to src/ml/test_capi.regress.out diff --git a/ml/test_mlapi.cmd b/src/ml/test_mlapi.cmd similarity index 100% rename from ml/test_mlapi.cmd rename to src/ml/test_mlapi.cmd diff --git a/ml/test_mlapi.ml b/src/ml/test_mlapi.ml similarity index 100% rename from ml/test_mlapi.ml rename to src/ml/test_mlapi.ml diff --git a/ml/test_mlapi.regress.err b/src/ml/test_mlapi.regress.err similarity index 100% rename from ml/test_mlapi.regress.err rename to src/ml/test_mlapi.regress.err diff --git a/ml/test_mlapi.regress.out b/src/ml/test_mlapi.regress.out similarity index 100% rename from ml/test_mlapi.regress.out rename to src/ml/test_mlapi.regress.out diff --git a/ml/test_mlapiV3.ml b/src/ml/test_mlapiV3.ml similarity index 100% rename from ml/test_mlapiV3.ml rename to src/ml/test_mlapiV3.ml diff --git a/ml/test_mlapiV3.regress.err b/src/ml/test_mlapiV3.regress.err similarity index 100% rename from ml/test_mlapiV3.regress.err rename to src/ml/test_mlapiV3.regress.err diff --git a/ml/test_mlapiV3.regress.out b/src/ml/test_mlapiV3.regress.out similarity index 100% rename from ml/test_mlapiV3.regress.out rename to src/ml/test_mlapiV3.regress.out diff --git a/ml/test_theory.ml b/src/ml/test_theory.ml similarity index 100% rename from ml/test_theory.ml rename to src/ml/test_theory.ml diff --git a/ml/update-ml-doc.cmd b/src/ml/update-ml-doc.cmd similarity index 100% rename from ml/update-ml-doc.cmd rename to src/ml/update-ml-doc.cmd diff --git a/ml/x3.ml b/src/ml/x3.ml similarity index 100% rename from ml/x3.ml rename to src/ml/x3.ml diff --git a/ml/x3V3.ml b/src/ml/x3V3.ml similarity index 100% rename from ml/x3V3.ml rename to src/ml/x3V3.ml diff --git a/ml/x3V3.mli b/src/ml/x3V3.mli similarity index 100% rename from ml/x3V3.mli rename to src/ml/x3V3.mli diff --git a/ml/z3.idl b/src/ml/z3.idl similarity index 100% rename from ml/z3.idl rename to src/ml/z3.idl diff --git a/ml/z3.ml b/src/ml/z3.ml similarity index 100% rename from ml/z3.ml rename to src/ml/z3.ml diff --git a/ml/z3.mli b/src/ml/z3.mli similarity index 100% rename from ml/z3.mli rename to src/ml/z3.mli diff --git a/ml/z3.proj b/src/ml/z3.proj similarity index 100% rename from ml/z3.proj rename to src/ml/z3.proj diff --git a/ml/z3_stubs.c b/src/ml/z3_stubs.c similarity index 100% rename from ml/z3_stubs.c rename to src/ml/z3_stubs.c diff --git a/ml/z3_theory_stubs.c b/src/ml/z3_theory_stubs.c similarity index 100% rename from ml/z3_theory_stubs.c rename to src/ml/z3_theory_stubs.c From b1a5436c3fc79dc3fe77aaa81d9f9c6755f2f1e6 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Tue, 23 Oct 2012 22:32:46 -0700 Subject: [PATCH 50/54] moved .net example Signed-off-by: Leonardo de Moura --- {src/Microsoft.Z3 => examples}/test_mapi/Program.cs | 0 {src/Microsoft.Z3 => examples}/test_mapi/build.cmd | 0 {src/Microsoft.Z3 => examples}/test_mapi/test_mapi.csproj | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename {src/Microsoft.Z3 => examples}/test_mapi/Program.cs (100%) rename {src/Microsoft.Z3 => examples}/test_mapi/build.cmd (100%) rename {src/Microsoft.Z3 => examples}/test_mapi/test_mapi.csproj (100%) diff --git a/src/Microsoft.Z3/test_mapi/Program.cs b/examples/test_mapi/Program.cs similarity index 100% rename from src/Microsoft.Z3/test_mapi/Program.cs rename to examples/test_mapi/Program.cs diff --git a/src/Microsoft.Z3/test_mapi/build.cmd b/examples/test_mapi/build.cmd similarity index 100% rename from src/Microsoft.Z3/test_mapi/build.cmd rename to examples/test_mapi/build.cmd diff --git a/src/Microsoft.Z3/test_mapi/test_mapi.csproj b/examples/test_mapi/test_mapi.csproj similarity index 100% rename from src/Microsoft.Z3/test_mapi/test_mapi.csproj rename to examples/test_mapi/test_mapi.csproj From 463297d2645e481e39ca75ef05c2fd40f0105d3d Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Wed, 24 Oct 2012 10:55:14 -0700 Subject: [PATCH 51/54] Simplified scripts using /MD option Signed-off-by: Leonardo de Moura --- scripts/config-vs-debug.mk | 2 +- scripts/config-vs-release.mk | 2 +- src/{ => dotnet}/Microsoft.Z3/AST.cs | 0 src/{ => dotnet}/Microsoft.Z3/ASTMap.cs | 0 src/{ => dotnet}/Microsoft.Z3/ASTVector.cs | 0 src/{ => dotnet}/Microsoft.Z3/ApplyResult.cs | 0 src/{ => dotnet}/Microsoft.Z3/Constructor.cs | 0 src/{ => dotnet}/Microsoft.Z3/Context.cs | 0 src/{ => dotnet}/Microsoft.Z3/DecRefQUeue.cs | 0 src/{ => dotnet}/Microsoft.Z3/Enumerations.cs | 0 src/{ => dotnet}/Microsoft.Z3/Expr.cs | 0 src/{ => dotnet}/Microsoft.Z3/Fixedpoint.cs | 0 src/{ => dotnet}/Microsoft.Z3/FuncDecl.cs | 0 src/{ => dotnet}/Microsoft.Z3/FuncInterp.cs | 0 src/{ => dotnet}/Microsoft.Z3/Goal.cs | 0 src/{ => dotnet}/Microsoft.Z3/Log.cs | 0 src/{ => dotnet}/Microsoft.Z3/Microsoft.Z3.csproj | 0 src/{ => dotnet}/Microsoft.Z3/Microsoft.Z3_35.csproj | 0 src/{ => dotnet}/Microsoft.Z3/Model.cs | 0 src/{ => dotnet}/Microsoft.Z3/Native.cs | 0 src/{ => dotnet}/Microsoft.Z3/Numeral.cs | 0 src/{ => dotnet}/Microsoft.Z3/ParamDescrs.cs | 0 src/{ => dotnet}/Microsoft.Z3/Params.cs | 0 src/{ => dotnet}/Microsoft.Z3/Pattern.cs | 0 src/{ => dotnet}/Microsoft.Z3/Probe.cs | 0 src/{ => dotnet}/Microsoft.Z3/Properties/AssemblyInfo.cs | 0 src/{ => dotnet}/Microsoft.Z3/Quantifier.cs | 0 src/{ => dotnet}/Microsoft.Z3/Solver.cs | 0 src/{ => dotnet}/Microsoft.Z3/Sort.cs | 0 src/{ => dotnet}/Microsoft.Z3/Statistics.cs | 0 src/{ => dotnet}/Microsoft.Z3/Status.cs | 0 src/{ => dotnet}/Microsoft.Z3/Symbol.cs | 0 src/{ => dotnet}/Microsoft.Z3/Tactic.cs | 0 src/{ => dotnet}/Microsoft.Z3/Version.cs | 0 src/{ => dotnet}/Microsoft.Z3/Z3Exception.cs | 0 src/{ => dotnet}/Microsoft.Z3/Z3Object.cs | 0 src/{ => dotnet}/Microsoft.Z3V3/AssemblyInfo.cpp | 0 src/{ => dotnet}/Microsoft.Z3V3/Microsoft.Z3V3.cpp | 0 src/{ => dotnet}/Microsoft.Z3V3/Microsoft.Z3V3.h | 0 src/{ => dotnet}/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj | 0 40 files changed, 2 insertions(+), 2 deletions(-) rename src/{ => dotnet}/Microsoft.Z3/AST.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/ASTMap.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/ASTVector.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/ApplyResult.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Constructor.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Context.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/DecRefQUeue.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Enumerations.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Expr.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Fixedpoint.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/FuncDecl.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/FuncInterp.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Goal.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Log.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Microsoft.Z3.csproj (100%) rename src/{ => dotnet}/Microsoft.Z3/Microsoft.Z3_35.csproj (100%) rename src/{ => dotnet}/Microsoft.Z3/Model.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Native.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Numeral.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/ParamDescrs.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Params.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Pattern.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Probe.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Properties/AssemblyInfo.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Quantifier.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Solver.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Sort.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Statistics.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Status.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Symbol.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Tactic.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Version.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Z3Exception.cs (100%) rename src/{ => dotnet}/Microsoft.Z3/Z3Object.cs (100%) rename src/{ => dotnet}/Microsoft.Z3V3/AssemblyInfo.cpp (100%) rename src/{ => dotnet}/Microsoft.Z3V3/Microsoft.Z3V3.cpp (100%) rename src/{ => dotnet}/Microsoft.Z3V3/Microsoft.Z3V3.h (100%) rename src/{ => dotnet}/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj (100%) diff --git a/scripts/config-vs-debug.mk b/scripts/config-vs-debug.mk index 7f416b37a..c4ff2dba4 100644 --- a/scripts/config-vs-debug.mk +++ b/scripts/config-vs-debug.mk @@ -8,7 +8,7 @@ AR_FLAGS=/nologo AR_OUTFLAG=/OUT: EXE_EXT=.exe LINK=cl -LINK_FLAGS=/nologo "$(WINDOWSSDKDIR)Lib\uuid.lib" "$(VSINSTALLDIR)VC\Lib\oldnames.lib" "$(VSINSTALLDIR)VC\Lib\VCOMP.lib" "$(WINDOWSSDKDIR)Lib\kernel32.lib" +LINK_FLAGS=/nologo /MDd LINK_EXTRA_FLAGS=/link /DEBUG /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:"8388608" /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT LINK_OUT_FLAG=/Fe diff --git a/scripts/config-vs-release.mk b/scripts/config-vs-release.mk index 66144df7d..5c3ee5885 100644 --- a/scripts/config-vs-release.mk +++ b/scripts/config-vs-release.mk @@ -8,7 +8,7 @@ AR_FLAGS=/nologo AR_OUTFLAG=/OUT: EXE_EXT=.exe LINK=cl -LINK_FLAGS=/nologo "$(VSINSTALLDIR)VC\Lib\libcpmt.lib" "$(WINDOWSSDKDIR)Lib\uuid.lib" "$(VSINSTALLDIR)VC\Lib\libcmt.lib" "$(VSINSTALLDIR)VC\Lib\oldnames.lib" "$(VSINSTALLDIR)VC\Lib\VCOMP.lib" "$(WINDOWSSDKDIR)Lib\kernel32.lib" +LINK_FLAGS=/nologo /MD LINK_EXTRA_FLAGS=/link /MACHINE:X86 /SUBSYSTEM:CONSOLE /INCREMENTAL:NO /STACK:"8388608" /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE /NXCOMPAT LINK_OUT_FLAG=/Fe diff --git a/src/Microsoft.Z3/AST.cs b/src/dotnet/Microsoft.Z3/AST.cs similarity index 100% rename from src/Microsoft.Z3/AST.cs rename to src/dotnet/Microsoft.Z3/AST.cs diff --git a/src/Microsoft.Z3/ASTMap.cs b/src/dotnet/Microsoft.Z3/ASTMap.cs similarity index 100% rename from src/Microsoft.Z3/ASTMap.cs rename to src/dotnet/Microsoft.Z3/ASTMap.cs diff --git a/src/Microsoft.Z3/ASTVector.cs b/src/dotnet/Microsoft.Z3/ASTVector.cs similarity index 100% rename from src/Microsoft.Z3/ASTVector.cs rename to src/dotnet/Microsoft.Z3/ASTVector.cs diff --git a/src/Microsoft.Z3/ApplyResult.cs b/src/dotnet/Microsoft.Z3/ApplyResult.cs similarity index 100% rename from src/Microsoft.Z3/ApplyResult.cs rename to src/dotnet/Microsoft.Z3/ApplyResult.cs diff --git a/src/Microsoft.Z3/Constructor.cs b/src/dotnet/Microsoft.Z3/Constructor.cs similarity index 100% rename from src/Microsoft.Z3/Constructor.cs rename to src/dotnet/Microsoft.Z3/Constructor.cs diff --git a/src/Microsoft.Z3/Context.cs b/src/dotnet/Microsoft.Z3/Context.cs similarity index 100% rename from src/Microsoft.Z3/Context.cs rename to src/dotnet/Microsoft.Z3/Context.cs diff --git a/src/Microsoft.Z3/DecRefQUeue.cs b/src/dotnet/Microsoft.Z3/DecRefQUeue.cs similarity index 100% rename from src/Microsoft.Z3/DecRefQUeue.cs rename to src/dotnet/Microsoft.Z3/DecRefQUeue.cs diff --git a/src/Microsoft.Z3/Enumerations.cs b/src/dotnet/Microsoft.Z3/Enumerations.cs similarity index 100% rename from src/Microsoft.Z3/Enumerations.cs rename to src/dotnet/Microsoft.Z3/Enumerations.cs diff --git a/src/Microsoft.Z3/Expr.cs b/src/dotnet/Microsoft.Z3/Expr.cs similarity index 100% rename from src/Microsoft.Z3/Expr.cs rename to src/dotnet/Microsoft.Z3/Expr.cs diff --git a/src/Microsoft.Z3/Fixedpoint.cs b/src/dotnet/Microsoft.Z3/Fixedpoint.cs similarity index 100% rename from src/Microsoft.Z3/Fixedpoint.cs rename to src/dotnet/Microsoft.Z3/Fixedpoint.cs diff --git a/src/Microsoft.Z3/FuncDecl.cs b/src/dotnet/Microsoft.Z3/FuncDecl.cs similarity index 100% rename from src/Microsoft.Z3/FuncDecl.cs rename to src/dotnet/Microsoft.Z3/FuncDecl.cs diff --git a/src/Microsoft.Z3/FuncInterp.cs b/src/dotnet/Microsoft.Z3/FuncInterp.cs similarity index 100% rename from src/Microsoft.Z3/FuncInterp.cs rename to src/dotnet/Microsoft.Z3/FuncInterp.cs diff --git a/src/Microsoft.Z3/Goal.cs b/src/dotnet/Microsoft.Z3/Goal.cs similarity index 100% rename from src/Microsoft.Z3/Goal.cs rename to src/dotnet/Microsoft.Z3/Goal.cs diff --git a/src/Microsoft.Z3/Log.cs b/src/dotnet/Microsoft.Z3/Log.cs similarity index 100% rename from src/Microsoft.Z3/Log.cs rename to src/dotnet/Microsoft.Z3/Log.cs diff --git a/src/Microsoft.Z3/Microsoft.Z3.csproj b/src/dotnet/Microsoft.Z3/Microsoft.Z3.csproj similarity index 100% rename from src/Microsoft.Z3/Microsoft.Z3.csproj rename to src/dotnet/Microsoft.Z3/Microsoft.Z3.csproj diff --git a/src/Microsoft.Z3/Microsoft.Z3_35.csproj b/src/dotnet/Microsoft.Z3/Microsoft.Z3_35.csproj similarity index 100% rename from src/Microsoft.Z3/Microsoft.Z3_35.csproj rename to src/dotnet/Microsoft.Z3/Microsoft.Z3_35.csproj diff --git a/src/Microsoft.Z3/Model.cs b/src/dotnet/Microsoft.Z3/Model.cs similarity index 100% rename from src/Microsoft.Z3/Model.cs rename to src/dotnet/Microsoft.Z3/Model.cs diff --git a/src/Microsoft.Z3/Native.cs b/src/dotnet/Microsoft.Z3/Native.cs similarity index 100% rename from src/Microsoft.Z3/Native.cs rename to src/dotnet/Microsoft.Z3/Native.cs diff --git a/src/Microsoft.Z3/Numeral.cs b/src/dotnet/Microsoft.Z3/Numeral.cs similarity index 100% rename from src/Microsoft.Z3/Numeral.cs rename to src/dotnet/Microsoft.Z3/Numeral.cs diff --git a/src/Microsoft.Z3/ParamDescrs.cs b/src/dotnet/Microsoft.Z3/ParamDescrs.cs similarity index 100% rename from src/Microsoft.Z3/ParamDescrs.cs rename to src/dotnet/Microsoft.Z3/ParamDescrs.cs diff --git a/src/Microsoft.Z3/Params.cs b/src/dotnet/Microsoft.Z3/Params.cs similarity index 100% rename from src/Microsoft.Z3/Params.cs rename to src/dotnet/Microsoft.Z3/Params.cs diff --git a/src/Microsoft.Z3/Pattern.cs b/src/dotnet/Microsoft.Z3/Pattern.cs similarity index 100% rename from src/Microsoft.Z3/Pattern.cs rename to src/dotnet/Microsoft.Z3/Pattern.cs diff --git a/src/Microsoft.Z3/Probe.cs b/src/dotnet/Microsoft.Z3/Probe.cs similarity index 100% rename from src/Microsoft.Z3/Probe.cs rename to src/dotnet/Microsoft.Z3/Probe.cs diff --git a/src/Microsoft.Z3/Properties/AssemblyInfo.cs b/src/dotnet/Microsoft.Z3/Properties/AssemblyInfo.cs similarity index 100% rename from src/Microsoft.Z3/Properties/AssemblyInfo.cs rename to src/dotnet/Microsoft.Z3/Properties/AssemblyInfo.cs diff --git a/src/Microsoft.Z3/Quantifier.cs b/src/dotnet/Microsoft.Z3/Quantifier.cs similarity index 100% rename from src/Microsoft.Z3/Quantifier.cs rename to src/dotnet/Microsoft.Z3/Quantifier.cs diff --git a/src/Microsoft.Z3/Solver.cs b/src/dotnet/Microsoft.Z3/Solver.cs similarity index 100% rename from src/Microsoft.Z3/Solver.cs rename to src/dotnet/Microsoft.Z3/Solver.cs diff --git a/src/Microsoft.Z3/Sort.cs b/src/dotnet/Microsoft.Z3/Sort.cs similarity index 100% rename from src/Microsoft.Z3/Sort.cs rename to src/dotnet/Microsoft.Z3/Sort.cs diff --git a/src/Microsoft.Z3/Statistics.cs b/src/dotnet/Microsoft.Z3/Statistics.cs similarity index 100% rename from src/Microsoft.Z3/Statistics.cs rename to src/dotnet/Microsoft.Z3/Statistics.cs diff --git a/src/Microsoft.Z3/Status.cs b/src/dotnet/Microsoft.Z3/Status.cs similarity index 100% rename from src/Microsoft.Z3/Status.cs rename to src/dotnet/Microsoft.Z3/Status.cs diff --git a/src/Microsoft.Z3/Symbol.cs b/src/dotnet/Microsoft.Z3/Symbol.cs similarity index 100% rename from src/Microsoft.Z3/Symbol.cs rename to src/dotnet/Microsoft.Z3/Symbol.cs diff --git a/src/Microsoft.Z3/Tactic.cs b/src/dotnet/Microsoft.Z3/Tactic.cs similarity index 100% rename from src/Microsoft.Z3/Tactic.cs rename to src/dotnet/Microsoft.Z3/Tactic.cs diff --git a/src/Microsoft.Z3/Version.cs b/src/dotnet/Microsoft.Z3/Version.cs similarity index 100% rename from src/Microsoft.Z3/Version.cs rename to src/dotnet/Microsoft.Z3/Version.cs diff --git a/src/Microsoft.Z3/Z3Exception.cs b/src/dotnet/Microsoft.Z3/Z3Exception.cs similarity index 100% rename from src/Microsoft.Z3/Z3Exception.cs rename to src/dotnet/Microsoft.Z3/Z3Exception.cs diff --git a/src/Microsoft.Z3/Z3Object.cs b/src/dotnet/Microsoft.Z3/Z3Object.cs similarity index 100% rename from src/Microsoft.Z3/Z3Object.cs rename to src/dotnet/Microsoft.Z3/Z3Object.cs diff --git a/src/Microsoft.Z3V3/AssemblyInfo.cpp b/src/dotnet/Microsoft.Z3V3/AssemblyInfo.cpp similarity index 100% rename from src/Microsoft.Z3V3/AssemblyInfo.cpp rename to src/dotnet/Microsoft.Z3V3/AssemblyInfo.cpp diff --git a/src/Microsoft.Z3V3/Microsoft.Z3V3.cpp b/src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.cpp similarity index 100% rename from src/Microsoft.Z3V3/Microsoft.Z3V3.cpp rename to src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.cpp diff --git a/src/Microsoft.Z3V3/Microsoft.Z3V3.h b/src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.h similarity index 100% rename from src/Microsoft.Z3V3/Microsoft.Z3V3.h rename to src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.h diff --git a/src/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj b/src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj similarity index 100% rename from src/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj rename to src/dotnet/Microsoft.Z3V3/Microsoft.Z3V3.vcxproj From 69ce24a6ced29881b1b9d0292e28c082bc63c536 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Wed, 24 Oct 2012 11:11:07 -0700 Subject: [PATCH 52/54] checkpoint Signed-off-by: Leonardo de Moura --- scripts/mk_make.py | 6 +++--- .../sat_strategy}/assertion_set2sat.cpp | 0 .../sat_strategy}/assertion_set2sat.h | 0 .../sat_strategy}/sat_solver_strategy.cpp | 0 .../sat_strategy}/sat_solver_strategy.h | 0 src/{nlsat/tactic => tactic/nlsat_tactic}/goal2nlsat.cpp | 0 src/{nlsat/tactic => tactic/nlsat_tactic}/goal2nlsat.h | 0 src/{nlsat/tactic => tactic/nlsat_tactic}/nlsat_tactic.cpp | 0 src/{nlsat/tactic => tactic/nlsat_tactic}/nlsat_tactic.h | 0 .../tactic => tactic/nlsat_tactic}/qfnra_nlsat_tactic.cpp | 0 .../tactic => tactic/nlsat_tactic}/qfnra_nlsat_tactic.h | 0 src/{sat/tactic => tactic/sat_tactic}/atom2bool_var.cpp | 0 src/{sat/tactic => tactic/sat_tactic}/atom2bool_var.h | 0 src/{sat/tactic => tactic/sat_tactic}/goal2sat.cpp | 0 src/{sat/tactic => tactic/sat_tactic}/goal2sat.h | 0 src/{sat/tactic => tactic/sat_tactic}/sat_tactic.cpp | 0 src/{sat/tactic => tactic/sat_tactic}/sat_tactic.h | 0 17 files changed, 3 insertions(+), 3 deletions(-) rename src/{sat/strategy => assertion_set/sat_strategy}/assertion_set2sat.cpp (100%) rename src/{sat/strategy => assertion_set/sat_strategy}/assertion_set2sat.h (100%) rename src/{sat/strategy => assertion_set/sat_strategy}/sat_solver_strategy.cpp (100%) rename src/{sat/strategy => assertion_set/sat_strategy}/sat_solver_strategy.h (100%) rename src/{nlsat/tactic => tactic/nlsat_tactic}/goal2nlsat.cpp (100%) rename src/{nlsat/tactic => tactic/nlsat_tactic}/goal2nlsat.h (100%) rename src/{nlsat/tactic => tactic/nlsat_tactic}/nlsat_tactic.cpp (100%) rename src/{nlsat/tactic => tactic/nlsat_tactic}/nlsat_tactic.h (100%) rename src/{nlsat/tactic => tactic/nlsat_tactic}/qfnra_nlsat_tactic.cpp (100%) rename src/{nlsat/tactic => tactic/nlsat_tactic}/qfnra_nlsat_tactic.h (100%) rename src/{sat/tactic => tactic/sat_tactic}/atom2bool_var.cpp (100%) rename src/{sat/tactic => tactic/sat_tactic}/atom2bool_var.h (100%) rename src/{sat/tactic => tactic/sat_tactic}/goal2sat.cpp (100%) rename src/{sat/tactic => tactic/sat_tactic}/goal2sat.h (100%) rename src/{sat/tactic => tactic/sat_tactic}/sat_tactic.cpp (100%) rename src/{sat/tactic => tactic/sat_tactic}/sat_tactic.h (100%) diff --git a/scripts/mk_make.py b/scripts/mk_make.py index 81f4d848f..c61d43573 100644 --- a/scripts/mk_make.py +++ b/scripts/mk_make.py @@ -55,10 +55,10 @@ add_lib('smt', ['assertion_set', 'bit_blaster', 'macros', 'normal_forms', 'cmd_c 'substitution', 'grobner', 'euclid', 'proof_checker', 'pattern', 'parser_util']) add_lib('user_plugin', ['smt'], 'smt/user_plugin') add_lib('core_tactics', ['tactic', 'normal_forms'], 'tactic/core_tactics') -add_lib('sat_tactic', ['tactic', 'sat'], 'sat/tactic') -add_lib('sat_strategy', ['assertion_set', 'sat_tactic'], 'sat/strategy') +add_lib('sat_tactic', ['tactic', 'sat'], 'tactic/sat_tactic') +add_lib('sat_strategy', ['assertion_set', 'sat_tactic'], 'assertion_set/sat_strategy') add_lib('arith_tactics', ['core_tactics', 'assertion_set', 'sat', 'sat_strategy'], 'tactic/arith_tactics') -add_lib('nlsat_tactic', ['nlsat', 'sat_tactic', 'arith_tactics'], 'nlsat/tactic') +add_lib('nlsat_tactic', ['nlsat', 'sat_tactic', 'arith_tactics'], 'tactic/nlsat_tactic') add_lib('subpaving_tactic', ['core_tactics', 'subpaving'], 'math/subpaving/tactic') add_lib('bv_tactics', ['tactic', 'bit_blaster'], 'tactic/bv_tactics') add_lib('fuzzing', ['ast'], 'test/fuzzing') diff --git a/src/sat/strategy/assertion_set2sat.cpp b/src/assertion_set/sat_strategy/assertion_set2sat.cpp similarity index 100% rename from src/sat/strategy/assertion_set2sat.cpp rename to src/assertion_set/sat_strategy/assertion_set2sat.cpp diff --git a/src/sat/strategy/assertion_set2sat.h b/src/assertion_set/sat_strategy/assertion_set2sat.h similarity index 100% rename from src/sat/strategy/assertion_set2sat.h rename to src/assertion_set/sat_strategy/assertion_set2sat.h diff --git a/src/sat/strategy/sat_solver_strategy.cpp b/src/assertion_set/sat_strategy/sat_solver_strategy.cpp similarity index 100% rename from src/sat/strategy/sat_solver_strategy.cpp rename to src/assertion_set/sat_strategy/sat_solver_strategy.cpp diff --git a/src/sat/strategy/sat_solver_strategy.h b/src/assertion_set/sat_strategy/sat_solver_strategy.h similarity index 100% rename from src/sat/strategy/sat_solver_strategy.h rename to src/assertion_set/sat_strategy/sat_solver_strategy.h diff --git a/src/nlsat/tactic/goal2nlsat.cpp b/src/tactic/nlsat_tactic/goal2nlsat.cpp similarity index 100% rename from src/nlsat/tactic/goal2nlsat.cpp rename to src/tactic/nlsat_tactic/goal2nlsat.cpp diff --git a/src/nlsat/tactic/goal2nlsat.h b/src/tactic/nlsat_tactic/goal2nlsat.h similarity index 100% rename from src/nlsat/tactic/goal2nlsat.h rename to src/tactic/nlsat_tactic/goal2nlsat.h diff --git a/src/nlsat/tactic/nlsat_tactic.cpp b/src/tactic/nlsat_tactic/nlsat_tactic.cpp similarity index 100% rename from src/nlsat/tactic/nlsat_tactic.cpp rename to src/tactic/nlsat_tactic/nlsat_tactic.cpp diff --git a/src/nlsat/tactic/nlsat_tactic.h b/src/tactic/nlsat_tactic/nlsat_tactic.h similarity index 100% rename from src/nlsat/tactic/nlsat_tactic.h rename to src/tactic/nlsat_tactic/nlsat_tactic.h diff --git a/src/nlsat/tactic/qfnra_nlsat_tactic.cpp b/src/tactic/nlsat_tactic/qfnra_nlsat_tactic.cpp similarity index 100% rename from src/nlsat/tactic/qfnra_nlsat_tactic.cpp rename to src/tactic/nlsat_tactic/qfnra_nlsat_tactic.cpp diff --git a/src/nlsat/tactic/qfnra_nlsat_tactic.h b/src/tactic/nlsat_tactic/qfnra_nlsat_tactic.h similarity index 100% rename from src/nlsat/tactic/qfnra_nlsat_tactic.h rename to src/tactic/nlsat_tactic/qfnra_nlsat_tactic.h diff --git a/src/sat/tactic/atom2bool_var.cpp b/src/tactic/sat_tactic/atom2bool_var.cpp similarity index 100% rename from src/sat/tactic/atom2bool_var.cpp rename to src/tactic/sat_tactic/atom2bool_var.cpp diff --git a/src/sat/tactic/atom2bool_var.h b/src/tactic/sat_tactic/atom2bool_var.h similarity index 100% rename from src/sat/tactic/atom2bool_var.h rename to src/tactic/sat_tactic/atom2bool_var.h diff --git a/src/sat/tactic/goal2sat.cpp b/src/tactic/sat_tactic/goal2sat.cpp similarity index 100% rename from src/sat/tactic/goal2sat.cpp rename to src/tactic/sat_tactic/goal2sat.cpp diff --git a/src/sat/tactic/goal2sat.h b/src/tactic/sat_tactic/goal2sat.h similarity index 100% rename from src/sat/tactic/goal2sat.h rename to src/tactic/sat_tactic/goal2sat.h diff --git a/src/sat/tactic/sat_tactic.cpp b/src/tactic/sat_tactic/sat_tactic.cpp similarity index 100% rename from src/sat/tactic/sat_tactic.cpp rename to src/tactic/sat_tactic/sat_tactic.cpp diff --git a/src/sat/tactic/sat_tactic.h b/src/tactic/sat_tactic/sat_tactic.h similarity index 100% rename from src/sat/tactic/sat_tactic.h rename to src/tactic/sat_tactic/sat_tactic.h From 641db30660517b47c276f348c000f8f307bf1490 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Wed, 24 Oct 2012 11:27:50 -0700 Subject: [PATCH 53/54] Isolating reg_decl_plugins Signed-off-by: Leonardo de Moura --- src/api/api_context.cpp | 3 +- src/ast/ast.cpp | 31 -------------- src/ast/ast.h | 4 -- src/ast/dl_decl_plugin.cpp | 3 +- src/ast/reg_decl_plugins.cpp | 51 +++++++++++++++++++++++ src/ast/reg_decl_plugins.h | 27 ++++++++++++ src/muz_qe/pdr_farkas_learner.cpp | 7 ++-- src/smt/default_solver.cpp | 3 +- src/test/arith_rewriter.cpp | 3 +- src/test/bv_simplifier_plugin.cpp | 3 +- src/test/check_assumptions.cpp | 3 +- src/test/datalog_parser.cpp | 5 ++- src/test/dl_query.cpp | 5 ++- src/test/dl_smt_relation.cpp | 3 +- src/test/expr_context_simplifier.cpp | 3 +- src/test/expr_pattern_match.cpp | 3 +- src/test/expr_rand.cpp | 3 +- src/test/factor_rewriter.cpp | 3 +- src/test/grobner.cpp | 3 +- src/test/horn_subsume_model_converter.cpp | 3 +- src/test/model2expr.cpp | 3 +- src/test/model_retrieval.cpp | 3 +- src/test/nlarith_util.cpp | 3 +- src/test/qe_defs.cpp | 3 +- src/test/quant_elim.cpp | 3 +- src/test/quant_solve.cpp | 3 +- src/test/simple_parser.cpp | 3 +- src/test/smt_context.cpp | 3 +- src/test/smtparser.cpp | 4 +- src/test/substitution.cpp | 4 +- src/test/symmetry.cpp | 3 +- src/test/theory_dl.cpp | 3 +- src/test/var_subst.cpp | 3 +- 33 files changed, 140 insertions(+), 70 deletions(-) create mode 100644 src/ast/reg_decl_plugins.cpp create mode 100644 src/ast/reg_decl_plugins.h diff --git a/src/api/api_context.cpp b/src/api/api_context.cpp index d281af2bd..a6046a83e 100644 --- a/src/api/api_context.cpp +++ b/src/api/api_context.cpp @@ -26,6 +26,7 @@ Revision History: #include"api_log_macros.h" #include"api_util.h" #include"install_tactics.h" +#include"reg_decl_plugins.h" namespace api { @@ -60,7 +61,7 @@ namespace api { } context::add_plugins::add_plugins(ast_manager & m) { - m.register_decl_plugins(); + reg_decl_plugins(m); } // ------------------------ diff --git a/src/ast/ast.cpp b/src/ast/ast.cpp index 8e878165c..856060a52 100644 --- a/src/ast/ast.cpp +++ b/src/ast/ast.cpp @@ -25,13 +25,6 @@ Revision History: #include"string_buffer.h" #include"ast_util.h" #include"ast_smt2_pp.h" -#include"arith_decl_plugin.h" -#include"array_decl_plugin.h" -#include"bv_decl_plugin.h" -#include"datatype_decl_plugin.h" -#include"dl_decl_plugin.h" -#include"seq_decl_plugin.h" -#include"float_decl_plugin.h" // ----------------------------------- // @@ -1403,30 +1396,6 @@ void ast_manager::register_plugin(symbol const & s, decl_plugin * plugin) { register_plugin(id, plugin); } -void ast_manager::register_decl_plugins() { - if (!get_plugin(get_family_id(symbol("arith")))) { - register_plugin(symbol("arith"), alloc(arith_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("bv")))) { - register_plugin(symbol("bv"), alloc(bv_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("array")))) { - register_plugin(symbol("array"), alloc(array_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("datatype")))) { - register_plugin(symbol("datatype"), alloc(datatype_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("datalog_relation")))) { - register_plugin(symbol("datalog_relation"), alloc(datalog::dl_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("seq")))) { - register_plugin(symbol("seq"), alloc(seq_decl_plugin)); - } - if (!get_plugin(get_family_id(symbol("float")))) { - register_plugin(symbol("float"), alloc(float_decl_plugin)); - } -} - decl_plugin * ast_manager::get_plugin(family_id fid) const { return m_plugins.get(fid, 0); } diff --git a/src/ast/ast.h b/src/ast/ast.h index 8de390ee0..17b4d2dac 100644 --- a/src/ast/ast.h +++ b/src/ast/ast.h @@ -1283,8 +1283,6 @@ enum proof_gen_mode { // // ----------------------------------- -class arith_decl_plugin; - class ast_manager { protected: protected: @@ -1411,8 +1409,6 @@ public: void register_plugin(family_id id, decl_plugin * plugin); - void register_decl_plugins(); - decl_plugin * get_plugin(family_id fid) const; bool has_plugin(family_id fid) const { return get_plugin(fid) != 0; } diff --git a/src/ast/dl_decl_plugin.cpp b/src/ast/dl_decl_plugin.cpp index db1fbd1dc..76f34f316 100644 --- a/src/ast/dl_decl_plugin.cpp +++ b/src/ast/dl_decl_plugin.cpp @@ -23,6 +23,7 @@ Revision History: #include "datatype_decl_plugin.h" #include "dl_decl_plugin.h" #include "warning.h" +#include "reg_decl_plugins.h" namespace datalog { @@ -621,7 +622,7 @@ namespace datalog { dl_decl_util::ast_plugin_registrator::ast_plugin_registrator(ast_manager& m) { // ensure required plugins are installed into the ast_manager - m.register_decl_plugins(); + reg_decl_plugins(m); } dl_decl_util::dl_decl_util(ast_manager& m): diff --git a/src/ast/reg_decl_plugins.cpp b/src/ast/reg_decl_plugins.cpp new file mode 100644 index 000000000..042d51e23 --- /dev/null +++ b/src/ast/reg_decl_plugins.cpp @@ -0,0 +1,51 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + reg_decl_plugins + +Abstract: + + Goodie for installing all available declarations + plugins in an ast_manager + +Author: + + Leonardo de Moura (leonardo) 2012-10-24. + +Revision History: + +--*/ +#include"ast.h" +#include"arith_decl_plugin.h" +#include"array_decl_plugin.h" +#include"bv_decl_plugin.h" +#include"datatype_decl_plugin.h" +#include"dl_decl_plugin.h" +#include"seq_decl_plugin.h" +#include"float_decl_plugin.h" + +void reg_decl_plugins(ast_manager & m) { + if (!get_plugin(get_family_id(symbol("arith")))) { + register_plugin(symbol("arith"), alloc(arith_decl_plugin)); + } + if (!get_plugin(get_family_id(symbol("bv")))) { + register_plugin(symbol("bv"), alloc(bv_decl_plugin)); + } + if (!get_plugin(get_family_id(symbol("array")))) { + register_plugin(symbol("array"), alloc(array_decl_plugin)); + } + if (!get_plugin(get_family_id(symbol("datatype")))) { + register_plugin(symbol("datatype"), alloc(datatype_decl_plugin)); + } + if (!get_plugin(get_family_id(symbol("datalog_relation")))) { + register_plugin(symbol("datalog_relation"), alloc(datalog::dl_decl_plugin)); + } + if (!get_plugin(get_family_id(symbol("seq")))) { + register_plugin(symbol("seq"), alloc(seq_decl_plugin)); + } + if (!get_plugin(get_family_id(symbol("float")))) { + register_plugin(symbol("float"), alloc(float_decl_plugin)); + } +} diff --git a/src/ast/reg_decl_plugins.h b/src/ast/reg_decl_plugins.h new file mode 100644 index 000000000..57185181e --- /dev/null +++ b/src/ast/reg_decl_plugins.h @@ -0,0 +1,27 @@ +/*++ +Copyright (c) 2012 Microsoft Corporation + +Module Name: + + reg_decl_plugins + +Abstract: + + Goodie for installing all available declarations + plugins in an ast_manager + +Author: + + Leonardo de Moura (leonardo) 2012-10-24. + +Revision History: + +--*/ +#ifndef _REG_DECL_PLUGINS_H_ +#define _REG_DECL_PLUGINS_H_ + +class ast_manager; + +void reg_decl_plugins(ast_manager & m); + +#endif diff --git a/src/muz_qe/pdr_farkas_learner.cpp b/src/muz_qe/pdr_farkas_learner.cpp index 1dd46cbdf..00bb5d723 100644 --- a/src/muz_qe/pdr_farkas_learner.cpp +++ b/src/muz_qe/pdr_farkas_learner.cpp @@ -33,6 +33,7 @@ Revision History: #include "ast_ll_pp.h" #include "arith_bounds_tactic.h" #include "proof_utils.h" +#include "reg_decl_plugins.h" #define PROOF_MODE PGM_FINE //#define PROOF_MODE PGM_COARSE @@ -249,7 +250,7 @@ namespace pdr { p2o(m_pr, outer_mgr), o2p(outer_mgr, m_pr) { - m_pr.register_decl_plugins(); + reg_decl_plugins(m_pr); m_ctx = alloc(smt::solver, m_pr, m_proof_params); } @@ -800,7 +801,7 @@ namespace pdr { bool res; ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util a(m); pdr::farkas_learner fl(params, m); expr_ref_vector lemmas(m); @@ -864,7 +865,7 @@ namespace pdr { return; } ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); scoped_ptr p = smtlib::parser::create(m); p->initialize_smtlib(); diff --git a/src/smt/default_solver.cpp b/src/smt/default_solver.cpp index 16db274e9..ad611763b 100644 --- a/src/smt/default_solver.cpp +++ b/src/smt/default_solver.cpp @@ -18,6 +18,7 @@ Notes: --*/ #include"solver.h" #include"smt_solver.h" +#include"reg_decl_plugins.h" class default_solver : public solver { front_end_params * m_params; @@ -43,7 +44,7 @@ public: virtual void collect_param_descrs(param_descrs & r) { if (m_context == 0) { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); front_end_params p; smt::solver s(m, p); s.collect_param_descrs(r); diff --git a/src/test/arith_rewriter.cpp b/src/test/arith_rewriter.cpp index 04b018646..0933e9d11 100644 --- a/src/test/arith_rewriter.cpp +++ b/src/test/arith_rewriter.cpp @@ -1,10 +1,11 @@ #include "arith_rewriter.h" #include "bv_decl_plugin.h" #include "ast_pp.h" +#include "reg_decl_plugins.h" void tst_arith_rewriter() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_rewriter ar(m); arith_util au(m); expr_ref t1(m), t2(m), result(m); diff --git a/src/test/bv_simplifier_plugin.cpp b/src/test/bv_simplifier_plugin.cpp index 9c9a7100b..271d1a534 100644 --- a/src/test/bv_simplifier_plugin.cpp +++ b/src/test/bv_simplifier_plugin.cpp @@ -1,6 +1,7 @@ #include "bv_simplifier_plugin.h" #include "arith_decl_plugin.h" #include "ast_pp.h" +#include "reg_decl_plugins.h" class tst_bv_simplifier_plugin_cls { ast_manager m_manager; @@ -79,7 +80,7 @@ public: m_arith(m_manager), m_simp(m_manager, m_bsimp, m_bv_params), m_fid(m_manager.get_family_id("bv")) { - m_manager.register_decl_plugins(); + reg_decl_plugins(m_manager); } ~tst_bv_simplifier_plugin_cls() {} diff --git a/src/test/check_assumptions.cpp b/src/test/check_assumptions.cpp index dce982345..033e3fdc9 100644 --- a/src/test/check_assumptions.cpp +++ b/src/test/check_assumptions.cpp @@ -4,13 +4,14 @@ #include "arith_decl_plugin.h" #include "bv_decl_plugin.h" #include "smt_context.h" +#include "reg_decl_plugins.h" void tst_check_assumptions() { memory::initialize(0); front_end_params params; ast_manager mgr; - mgr.register_decl_plugins(); + reg_decl_plugins(mgr); sort_ref b(mgr.mk_bool_sort(), mgr); func_decl_ref pPred(mgr.mk_func_decl(symbol("p"), 0, static_cast(0), b), mgr); diff --git a/src/test/datalog_parser.cpp b/src/test/datalog_parser.cpp index 489808aba..2d8a04225 100644 --- a/src/test/datalog_parser.cpp +++ b/src/test/datalog_parser.cpp @@ -3,6 +3,7 @@ #include "arith_decl_plugin.h" #include "dl_context.h" #include "front_end_params.h" +#include "reg_decl_plugins.h" using namespace datalog; @@ -10,7 +11,7 @@ using namespace datalog; static void dparse_string(char const* str) { ast_manager m; front_end_params params; - m.register_decl_plugins(); + reg_decl_plugins(m); context ctx(m, params); parser* p = parser::create(ctx,m); @@ -37,7 +38,7 @@ static void dparse_string(char const* str) { static void dparse_file(char const* file) { ast_manager m; front_end_params params; - m.register_decl_plugins(); + reg_decl_plugins(m); context ctx(m, params); parser* p = parser::create(ctx,m); diff --git a/src/test/dl_query.cpp b/src/test/dl_query.cpp index 9d99c6ee6..469797bf0 100644 --- a/src/test/dl_query.cpp +++ b/src/test/dl_query.cpp @@ -3,7 +3,8 @@ #include "dl_table_relation.h" #include "dl_context.h" #include "front_end_params.h" -#include"stopwatch.h" +#include "stopwatch.h" +#include "reg_decl_plugins.h" using namespace datalog; @@ -127,7 +128,7 @@ void dl_query_test(ast_manager & m, front_end_params & fparams, params_ref& para void dl_query_test_wpa(front_end_params & fparams, params_ref& params) { params.set_bool(":magic-sets-for-queries", true); ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util arith(m); const char * problem_dir = "C:\\tvm\\src\\z3_2\\debug\\test\\w0.datalog"; dl_decl_util dl_util(m); diff --git a/src/test/dl_smt_relation.cpp b/src/test/dl_smt_relation.cpp index bf34688ea..0a473a7f9 100644 --- a/src/test/dl_smt_relation.cpp +++ b/src/test/dl_smt_relation.cpp @@ -3,13 +3,14 @@ #include "dl_context.h" #include "z3.h" #include "z3_private.h" +#include "reg_decl_plugins.h" namespace datalog { void test_smt_relation_unit() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util a(m); sort* int_sort = a.mk_int(); sort* real_sort = a.mk_real(); diff --git a/src/test/expr_context_simplifier.cpp b/src/test/expr_context_simplifier.cpp index 91bd29ca7..1ff4944d8 100644 --- a/src/test/expr_context_simplifier.cpp +++ b/src/test/expr_context_simplifier.cpp @@ -1,6 +1,7 @@ #include "expr_context_simplifier.h" #include "smtparser.h" #include "ast_pp.h" +#include "reg_decl_plugins.h" static void simplify_formula(ast_manager& m, expr* e) { expr_ref result(m); @@ -19,7 +20,7 @@ void tst_expr_context_simplifier() { ast_manager m; smtlib::parser* parser = smtlib::parser::create(m); - m.register_decl_plugins(); + reg_decl_plugins(m); parser->initialize_smtlib(); diff --git a/src/test/expr_pattern_match.cpp b/src/test/expr_pattern_match.cpp index 4e1fef1ed..e7088913e 100644 --- a/src/test/expr_pattern_match.cpp +++ b/src/test/expr_pattern_match.cpp @@ -4,10 +4,11 @@ #include "arith_decl_plugin.h" #include "bv_decl_plugin.h" #include "array_decl_plugin.h" +#include "reg_decl_plugins.h" void tst_expr_pattern_match() { ast_manager manager; - manager.register_decl_plugins(); + reg_decl_plugins(manager); expr_pattern_match apm(manager); diff --git a/src/test/expr_rand.cpp b/src/test/expr_rand.cpp index fec4e5d3f..1ceeba8b8 100644 --- a/src/test/expr_rand.cpp +++ b/src/test/expr_rand.cpp @@ -6,12 +6,13 @@ #include "ast_smt_pp.h" #include #include +#include "reg_decl_plugins.h" static unsigned rand_seed = 1; void tst_expr_arith(unsigned num_files) { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); expr_rand er(m); er.seed(rand_seed); diff --git a/src/test/factor_rewriter.cpp b/src/test/factor_rewriter.cpp index 110df86a3..625710fe1 100644 --- a/src/test/factor_rewriter.cpp +++ b/src/test/factor_rewriter.cpp @@ -1,10 +1,11 @@ #include "factor_rewriter.h" #include "bv_decl_plugin.h" #include "ast_pp.h" +#include "reg_decl_plugins.h" void tst_factor_rewriter() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); factor_rewriter_star fw(m); arith_util a(m); diff --git a/src/test/grobner.cpp b/src/test/grobner.cpp index 92ba2c854..89aea5049 100644 --- a/src/test/grobner.cpp +++ b/src/test/grobner.cpp @@ -24,6 +24,7 @@ Revision History: #include"arith_simplifier_plugin.h" #include"front_end_params.h" #include"grobner.h" +#include"reg_decl_plugins.h" void display_eqs(grobner & gb, v_dependency_manager & dep_m) { std::cerr << "RESULT:\n"; @@ -55,7 +56,7 @@ void tst_grobner(char ** argv, int argc, int & i) { ast_manager m; smtlib::parser* parser = smtlib::parser::create(m); - m.register_decl_plugins(); + reg_decl_plugins(m); parser->initialize_smtlib(); if (!parser->parse_file(file_path)) { diff --git a/src/test/horn_subsume_model_converter.cpp b/src/test/horn_subsume_model_converter.cpp index c99a50c87..28359b954 100644 --- a/src/test/horn_subsume_model_converter.cpp +++ b/src/test/horn_subsume_model_converter.cpp @@ -2,10 +2,11 @@ #include "horn_subsume_model_converter.h" #include "arith_decl_plugin.h" #include "model_smt2_pp.h" +#include "reg_decl_plugins.h" void tst_horn_subsume_model_converter() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util a(m); ptr_vector ints; diff --git a/src/test/model2expr.cpp b/src/test/model2expr.cpp index 3040ddadc..abca706c1 100644 --- a/src/test/model2expr.cpp +++ b/src/test/model2expr.cpp @@ -2,10 +2,11 @@ #include "ast_pp.h" #include "arith_decl_plugin.h" #include "model_smt2_pp.h" +#include "reg_decl_plugins.h" void tst_model2expr() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util a(m); ptr_vector ints; diff --git a/src/test/model_retrieval.cpp b/src/test/model_retrieval.cpp index 96d956b0e..2fa1cb24f 100644 --- a/src/test/model_retrieval.cpp +++ b/src/test/model_retrieval.cpp @@ -6,6 +6,7 @@ #include "bv_decl_plugin.h" #include "array_decl_plugin.h" #include "model_v2_pp.h" +#include "reg_decl_plugins.h" void tst_model_retrieval() { @@ -15,7 +16,7 @@ void tst_model_retrieval() ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); family_id array_fid = m.get_family_id(symbol("array")); array_util au(m); diff --git a/src/test/nlarith_util.cpp b/src/test/nlarith_util.cpp index 87d5f9594..f08fa020e 100644 --- a/src/test/nlarith_util.cpp +++ b/src/test/nlarith_util.cpp @@ -1,10 +1,11 @@ #include "nlarith_util.h" #include "arith_decl_plugin.h" #include "ast_pp.h" +#include "reg_decl_plugins.h" void tst_nlarith_util() { ast_manager M; - M.register_decl_plugins(); + reg_decl_plugins(M); arith_util A(M); sort_ref R(A.mk_real(), M); app_ref one(A.mk_numeral(rational(1), false), M); diff --git a/src/test/qe_defs.cpp b/src/test/qe_defs.cpp index 0620a3b59..d1c8232d8 100644 --- a/src/test/qe_defs.cpp +++ b/src/test/qe_defs.cpp @@ -2,6 +2,7 @@ #include "qe.h" #include "ast_pp.h" #include "smtparser.h" +#include "reg_decl_plugins.h" static void test_defs(ast_manager& m, expr* _fml) { @@ -48,7 +49,7 @@ static void test_defs_all(ast_manager& m, expr* _fml) { static void test_defs(char const* str) { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); scoped_ptr parser = smtlib::parser::create(m); parser->initialize_smtlib(); std::ostringstream buffer; diff --git a/src/test/quant_elim.cpp b/src/test/quant_elim.cpp index 0947b5583..3e8e8b16f 100644 --- a/src/test/quant_elim.cpp +++ b/src/test/quant_elim.cpp @@ -11,6 +11,7 @@ #include "smtparser.h" #include "lbool.h" #include +#include "reg_decl_plugins.h" static void test_qe(ast_manager& m, lbool expected_outcome, expr* fml, char const* option) { @@ -52,7 +53,7 @@ static void test_qe(ast_manager& m, lbool expected_outcome, expr* fml, char cons static void test_formula(lbool expected_outcome, char const* fml) { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); scoped_ptr parser = smtlib::parser::create(m); parser->initialize_smtlib(); diff --git a/src/test/quant_solve.cpp b/src/test/quant_solve.cpp index 096ae33de..003ae26b4 100644 --- a/src/test/quant_solve.cpp +++ b/src/test/quant_solve.cpp @@ -7,6 +7,7 @@ #include #include "expr_replacer.h" #include "smt_solver.h" +#include "reg_decl_plugins.h" static void validate_quant_solution(ast_manager& m, app* x, expr* fml, expr* t, expr* new_fml) { // verify: @@ -86,7 +87,7 @@ static void test_quant_solve1() { ast_manager m; arith_util ar(m); - m.register_decl_plugins(); + reg_decl_plugins(m); sort* i = ar.mk_int(); app_ref x(m.mk_const(symbol("x"),i), m); app_ref y(m.mk_const(symbol("y"),i), m); diff --git a/src/test/simple_parser.cpp b/src/test/simple_parser.cpp index 189fcd2cf..a5d4d8def 100644 --- a/src/test/simple_parser.cpp +++ b/src/test/simple_parser.cpp @@ -22,10 +22,11 @@ Revision History: #include"ast_pp.h" #include"well_sorted.h" #include"warning.h" +#include"reg_decl_plugins.h" void tst_simple_parser() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); arith_util m_util(m); cost_parser p(m); var_ref_vector vs(m); diff --git a/src/test/smt_context.cpp b/src/test/smt_context.cpp index 48ac71077..853bde068 100644 --- a/src/test/smt_context.cpp +++ b/src/test/smt_context.cpp @@ -1,11 +1,12 @@ #include "smt_context.h" +#include "reg_decl_plugins.h" void tst_smt_context() { front_end_params params; ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); smt::context ctx(m, params); diff --git a/src/test/smtparser.cpp b/src/test/smtparser.cpp index 6aa6f0e06..dc4f0eb74 100644 --- a/src/test/smtparser.cpp +++ b/src/test/smtparser.cpp @@ -7,7 +7,7 @@ #include "for_each_file.h" #include "array_decl_plugin.h" #include "bv_decl_plugin.h" - +#include "reg_decl_plugins.h" class for_each_file_smt : public for_each_file_proc { public: @@ -19,7 +19,7 @@ public: ast_manager ast_manager; smtlib::parser* parser = smtlib::parser::create(ast_manager); - ast_manager.register_decl_plugins(); + reg_decl_plugins(ast_manager); parser->initialize_smtlib(); diff --git a/src/test/substitution.cpp b/src/test/substitution.cpp index 80549c72d..38f85bb11 100644 --- a/src/test/substitution.cpp +++ b/src/test/substitution.cpp @@ -5,7 +5,7 @@ #include "bv_decl_plugin.h" #include "ast_pp.h" #include "arith_decl_plugin.h" - +#include "reg_decl_plugins.h" void tst_substitution() { @@ -16,7 +16,7 @@ void tst_substitution() enable_trace("subst_bug"); ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); var_ref v1(m.mk_var(0, m.mk_bool_sort()), m); var_ref v2(m.mk_var(1, m.mk_bool_sort()), m); diff --git a/src/test/symmetry.cpp b/src/test/symmetry.cpp index ff0a84dff..d296a346c 100644 --- a/src/test/symmetry.cpp +++ b/src/test/symmetry.cpp @@ -5,6 +5,7 @@ #include "nat_set.h" #include "stream_buffer.h" #include "obj_hashtable.h" +#include "reg_decl_plugins.h" class partition { public: @@ -723,7 +724,7 @@ public: void parse_file(char const* file_path, char const* file_tmp) { smtlib::parser* parser = smtlib::parser::create(m_mgr); - m_mgr.register_decl_plugins(); + reg_decl_plugins(m_mgr); parser->initialize_smtlib(); if (!parser->parse_file(file_path)) { diff --git a/src/test/theory_dl.cpp b/src/test/theory_dl.cpp index 9d5796963..d07ec34af 100644 --- a/src/test/theory_dl.cpp +++ b/src/test/theory_dl.cpp @@ -2,6 +2,7 @@ #include "dl_decl_plugin.h" #include "ast_pp.h" #include "model_v2_pp.h" +#include "reg_decl_plugins.h" void tst_theory_dl() { ast_manager m; @@ -9,7 +10,7 @@ void tst_theory_dl() { params.m_model = true; datalog::dl_decl_util u(m); smt::context ctx(m, params); - m.register_decl_plugins(); + reg_decl_plugins(m); expr_ref a(m), b(m), c(m); sort_ref s(m); s = u.mk_sort(symbol("S"),111); diff --git a/src/test/var_subst.cpp b/src/test/var_subst.cpp index ec8078025..efc4555fe 100644 --- a/src/test/var_subst.cpp +++ b/src/test/var_subst.cpp @@ -23,6 +23,7 @@ Revision History: #include"bv_decl_plugin.h" #include"array_decl_plugin.h" #include"for_each_expr.h" +#include"reg_decl_plugins.h" namespace find_q { struct proc { @@ -101,7 +102,7 @@ void tst_subst(ast_manager& m) { void tst_var_subst() { ast_manager m; - m.register_decl_plugins(); + reg_decl_plugins(m); tst_subst(m); scoped_ptr parser = smtlib::parser::create(m); From 9e5860a30f49cc186c99f5ad520934eef445ddda Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Wed, 24 Oct 2012 12:14:00 -0700 Subject: [PATCH 54/54] fixed compilation bugs Signed-off-by: Leonardo de Moura --- src/ast/reg_decl_plugins.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/ast/reg_decl_plugins.cpp b/src/ast/reg_decl_plugins.cpp index 042d51e23..fd4d49789 100644 --- a/src/ast/reg_decl_plugins.cpp +++ b/src/ast/reg_decl_plugins.cpp @@ -27,25 +27,25 @@ Revision History: #include"float_decl_plugin.h" void reg_decl_plugins(ast_manager & m) { - if (!get_plugin(get_family_id(symbol("arith")))) { - register_plugin(symbol("arith"), alloc(arith_decl_plugin)); + if (!m.get_plugin(m.get_family_id(symbol("arith")))) { + m.register_plugin(symbol("arith"), alloc(arith_decl_plugin)); } - if (!get_plugin(get_family_id(symbol("bv")))) { - register_plugin(symbol("bv"), alloc(bv_decl_plugin)); + if (!m.get_plugin(m.get_family_id(symbol("bv")))) { + m.register_plugin(symbol("bv"), alloc(bv_decl_plugin)); } - if (!get_plugin(get_family_id(symbol("array")))) { - register_plugin(symbol("array"), alloc(array_decl_plugin)); + if (!m.get_plugin(m.get_family_id(symbol("array")))) { + m.register_plugin(symbol("array"), alloc(array_decl_plugin)); } - if (!get_plugin(get_family_id(symbol("datatype")))) { - register_plugin(symbol("datatype"), alloc(datatype_decl_plugin)); + if (!m.get_plugin(m.get_family_id(symbol("datatype")))) { + m.register_plugin(symbol("datatype"), alloc(datatype_decl_plugin)); } - if (!get_plugin(get_family_id(symbol("datalog_relation")))) { - register_plugin(symbol("datalog_relation"), alloc(datalog::dl_decl_plugin)); + if (!m.get_plugin(m.get_family_id(symbol("datalog_relation")))) { + m.register_plugin(symbol("datalog_relation"), alloc(datalog::dl_decl_plugin)); } - if (!get_plugin(get_family_id(symbol("seq")))) { - register_plugin(symbol("seq"), alloc(seq_decl_plugin)); + if (!m.get_plugin(m.get_family_id(symbol("seq")))) { + m.register_plugin(symbol("seq"), alloc(seq_decl_plugin)); } - if (!get_plugin(get_family_id(symbol("float")))) { - register_plugin(symbol("float"), alloc(float_decl_plugin)); + if (!m.get_plugin(m.get_family_id(symbol("float")))) { + m.register_plugin(symbol("float"), alloc(float_decl_plugin)); } }