Split inst match generator into multiple files (#5805)
[cvc5.git] / src / CMakeLists.txt
1 #####################
2 ## CMakeLists.txt
3 ## Top contributors (to current version):
4 ## Mathias Preiner, Andrew Reynolds, Gereon Kremer
5 ## This file is part of the CVC4 project.
6 ## Copyright (c) 2009-2020 by the authors listed in the file AUTHORS
7 ## in the top-level source directory and their institutional affiliations.
8 ## All rights reserved. See the file COPYING in the top-level source
9 ## directory for licensing information.
10 ##
11 #-----------------------------------------------------------------------------#
12 # Collect libcvc4 source files
13
14 libcvc4_add_sources(
15 api/cvc4cpp.cpp
16 api/cvc4cpp.h
17 api/cvc4cppkind.h
18 context/backtrackable.h
19 context/cddense_set.h
20 context/cdhashmap.h
21 context/cdhashmap_forward.h
22 context/cdhashset.h
23 context/cdhashset_forward.h
24 context/cdinsert_hashmap.h
25 context/cdinsert_hashmap_forward.h
26 context/cdlist.h
27 context/cdlist_forward.h
28 context/cdmaybe.h
29 context/cdo.h
30 context/cdqueue.h
31 context/cdtrail_queue.h
32 context/context.cpp
33 context/context.h
34 context/context_mm.cpp
35 context/context_mm.h
36 decision/decision_attributes.h
37 decision/decision_engine.cpp
38 decision/decision_engine.h
39 decision/decision_strategy.h
40 decision/justification_heuristic.cpp
41 decision/justification_heuristic.h
42 lib/clock_gettime.c
43 lib/clock_gettime.h
44 lib/ffs.c
45 lib/ffs.h
46 lib/replacements.h
47 lib/strtok_r.c
48 lib/strtok_r.h
49 preprocessing/assertion_pipeline.cpp
50 preprocessing/assertion_pipeline.h
51 preprocessing/passes/ackermann.cpp
52 preprocessing/passes/ackermann.h
53 preprocessing/passes/apply_substs.cpp
54 preprocessing/passes/apply_substs.h
55 preprocessing/passes/bool_to_bv.cpp
56 preprocessing/passes/bool_to_bv.h
57 preprocessing/passes/bv_abstraction.cpp
58 preprocessing/passes/bv_abstraction.h
59 preprocessing/passes/bv_eager_atoms.cpp
60 preprocessing/passes/bv_eager_atoms.h
61 preprocessing/passes/bv_gauss.cpp
62 preprocessing/passes/bv_gauss.h
63 preprocessing/passes/bv_intro_pow2.cpp
64 preprocessing/passes/bv_intro_pow2.h
65 preprocessing/passes/bv_to_bool.cpp
66 preprocessing/passes/bv_to_bool.h
67 preprocessing/passes/bv_to_int.cpp
68 preprocessing/passes/bv_to_int.h
69 preprocessing/passes/extended_rewriter_pass.cpp
70 preprocessing/passes/extended_rewriter_pass.h
71 preprocessing/passes/foreign_theory_rewrite.cpp
72 preprocessing/passes/foreign_theory_rewrite.h
73 preprocessing/passes/fun_def_fmf.cpp
74 preprocessing/passes/fun_def_fmf.h
75 preprocessing/passes/global_negate.cpp
76 preprocessing/passes/global_negate.h
77 preprocessing/passes/ho_elim.cpp
78 preprocessing/passes/ho_elim.h
79 preprocessing/passes/int_to_bv.cpp
80 preprocessing/passes/int_to_bv.h
81 preprocessing/passes/ite_removal.cpp
82 preprocessing/passes/ite_removal.h
83 preprocessing/passes/ite_simp.cpp
84 preprocessing/passes/ite_simp.h
85 preprocessing/passes/miplib_trick.cpp
86 preprocessing/passes/miplib_trick.h
87 preprocessing/passes/nl_ext_purify.cpp
88 preprocessing/passes/nl_ext_purify.h
89 preprocessing/passes/non_clausal_simp.cpp
90 preprocessing/passes/non_clausal_simp.h
91 preprocessing/passes/pseudo_boolean_processor.cpp
92 preprocessing/passes/pseudo_boolean_processor.h
93 preprocessing/passes/quantifier_macros.cpp
94 preprocessing/passes/quantifier_macros.h
95 preprocessing/passes/quantifiers_preprocess.cpp
96 preprocessing/passes/quantifiers_preprocess.h
97 preprocessing/passes/real_to_int.cpp
98 preprocessing/passes/real_to_int.h
99 preprocessing/passes/rewrite.cpp
100 preprocessing/passes/rewrite.h
101 preprocessing/passes/sep_skolem_emp.cpp
102 preprocessing/passes/sep_skolem_emp.h
103 preprocessing/passes/sort_infer.cpp
104 preprocessing/passes/sort_infer.h
105 preprocessing/passes/static_learning.cpp
106 preprocessing/passes/static_learning.h
107 preprocessing/passes/strings_eager_pp.cpp
108 preprocessing/passes/strings_eager_pp.h
109 preprocessing/passes/sygus_inference.cpp
110 preprocessing/passes/sygus_inference.h
111 preprocessing/passes/synth_rew_rules.cpp
112 preprocessing/passes/synth_rew_rules.h
113 preprocessing/passes/theory_preprocess.cpp
114 preprocessing/passes/theory_preprocess.h
115 preprocessing/passes/theory_rewrite_eq.cpp
116 preprocessing/passes/theory_rewrite_eq.h
117 preprocessing/passes/unconstrained_simplifier.cpp
118 preprocessing/passes/unconstrained_simplifier.h
119 preprocessing/preprocessing_pass.cpp
120 preprocessing/preprocessing_pass.h
121 preprocessing/preprocessing_pass_context.cpp
122 preprocessing/preprocessing_pass_context.h
123 preprocessing/preprocessing_pass_registry.cpp
124 preprocessing/preprocessing_pass_registry.h
125 preprocessing/util/ite_utilities.cpp
126 preprocessing/util/ite_utilities.h
127 printer/ast/ast_printer.cpp
128 printer/ast/ast_printer.h
129 printer/cvc/cvc_printer.cpp
130 printer/cvc/cvc_printer.h
131 printer/let_binding.cpp
132 printer/let_binding.h
133 printer/printer.cpp
134 printer/printer.h
135 printer/smt2/smt2_printer.cpp
136 printer/smt2/smt2_printer.h
137 printer/tptp/tptp_printer.cpp
138 printer/tptp/tptp_printer.h
139 proof/clause_id.h
140 proof/cnf_proof.cpp
141 proof/cnf_proof.h
142 proof/proof_manager.cpp
143 proof/proof_manager.h
144 proof/sat_proof.h
145 proof/sat_proof_implementation.h
146 proof/unsat_core.cpp
147 proof/unsat_core.h
148 prop/bv_sat_solver_notify.h
149 prop/bvminisat/bvminisat.cpp
150 prop/bvminisat/bvminisat.h
151 prop/bvminisat/core/Dimacs.h
152 prop/bvminisat/core/Solver.cc
153 prop/bvminisat/core/Solver.h
154 prop/bvminisat/core/SolverTypes.h
155 prop/bvminisat/mtl/Alg.h
156 prop/bvminisat/mtl/Alloc.h
157 prop/bvminisat/mtl/Heap.h
158 prop/bvminisat/mtl/IntTypes.h
159 prop/bvminisat/mtl/Map.h
160 prop/bvminisat/mtl/Queue.h
161 prop/bvminisat/mtl/Sort.h
162 prop/bvminisat/mtl/Vec.h
163 prop/bvminisat/mtl/XAlloc.h
164 prop/bvminisat/simp/SimpSolver.cc
165 prop/bvminisat/simp/SimpSolver.h
166 prop/bvminisat/utils/Options.h
167 prop/cadical.cpp
168 prop/cadical.h
169 prop/cnf_stream.cpp
170 prop/cnf_stream.h
171 prop/cryptominisat.cpp
172 prop/cryptominisat.h
173 prop/kissat.cpp
174 prop/kissat.h
175 prop/proof_cnf_stream.cpp
176 prop/proof_cnf_stream.h
177 prop/minisat/core/Dimacs.h
178 prop/minisat/core/Solver.cc
179 prop/minisat/core/Solver.h
180 prop/minisat/core/SolverTypes.h
181 prop/minisat/minisat.cpp
182 prop/minisat/minisat.h
183 prop/minisat/mtl/Alg.h
184 prop/minisat/mtl/Alloc.h
185 prop/minisat/mtl/Heap.h
186 prop/minisat/mtl/IntTypes.h
187 prop/minisat/mtl/Map.h
188 prop/minisat/mtl/Queue.h
189 prop/minisat/mtl/Sort.h
190 prop/minisat/mtl/Vec.h
191 prop/minisat/mtl/XAlloc.h
192 prop/minisat/simp/SimpSolver.cc
193 prop/minisat/simp/SimpSolver.h
194 prop/minisat/utils/Options.h
195 prop/proof_post_processor.cpp
196 prop/proof_post_processor.h
197 prop/prop_engine.cpp
198 prop/prop_engine.h
199 prop/prop_proof_manager.cpp
200 prop/prop_proof_manager.h
201 prop/registrar.h
202 prop/sat_solver.h
203 prop/sat_proof_manager.cpp
204 prop/sat_proof_manager.h
205 prop/sat_solver_factory.cpp
206 prop/sat_solver_factory.h
207 prop/sat_solver_types.cpp
208 prop/sat_solver_types.h
209 prop/theory_proxy.cpp
210 prop/theory_proxy.h
211 smt/abduction_solver.cpp
212 smt/abduction_solver.h
213 smt/abstract_values.cpp
214 smt/abstract_values.h
215 smt/assertions.cpp
216 smt/assertions.h
217 smt/check_models.cpp
218 smt/check_models.h
219 smt/command.cpp
220 smt/command.h
221 smt/defined_function.h
222 smt/dump.cpp
223 smt/dump.h
224 smt/dump_manager.cpp
225 smt/dump_manager.h
226 smt/expand_definitions.cpp
227 smt/expand_definitions.h
228 smt/listeners.cpp
229 smt/listeners.h
230 smt/logic_exception.h
231 smt/logic_request.cpp
232 smt/logic_request.h
233 smt/interpolation_solver.cpp
234 smt/interpolation_solver.h
235 smt/managed_ostreams.cpp
236 smt/managed_ostreams.h
237 smt/model.cpp
238 smt/model.h
239 smt/model_core_builder.cpp
240 smt/model_core_builder.h
241 smt/model_blocker.cpp
242 smt/model_blocker.h
243 smt/node_command.cpp
244 smt/node_command.h
245 smt/options_manager.cpp
246 smt/options_manager.h
247 smt/output_manager.cpp
248 smt/output_manager.h
249 smt/quant_elim_solver.cpp
250 smt/quant_elim_solver.h
251 smt/preprocessor.cpp
252 smt/preprocessor.h
253 smt/preprocess_proof_generator.cpp
254 smt/preprocess_proof_generator.h
255 smt/process_assertions.cpp
256 smt/process_assertions.h
257 smt/proof_manager.cpp
258 smt/proof_manager.h
259 smt/proof_post_processor.cpp
260 smt/proof_post_processor.h
261 smt/set_defaults.cpp
262 smt/set_defaults.h
263 smt/smt_engine.cpp
264 smt/smt_engine.h
265 smt/smt_engine_scope.cpp
266 smt/smt_engine_scope.h
267 smt/smt_engine_state.cpp
268 smt/smt_engine_state.h
269 smt/smt_engine_stats.cpp
270 smt/smt_engine_stats.h
271 smt/smt_mode.cpp
272 smt/smt_mode.h
273 smt/smt_solver.cpp
274 smt/smt_solver.h
275 smt/smt_statistics_registry.cpp
276 smt/smt_statistics_registry.h
277 smt/sygus_solver.cpp
278 smt/sygus_solver.h
279 smt/term_formula_removal.cpp
280 smt/term_formula_removal.h
281 smt/unsat_core_manager.cpp
282 smt/unsat_core_manager.h
283 smt/update_ostream.h
284 smt/witness_form.cpp
285 smt/witness_form.h
286 smt_util/boolean_simplification.cpp
287 smt_util/boolean_simplification.h
288 smt_util/nary_builder.cpp
289 smt_util/nary_builder.h
290 theory/arith/approx_simplex.cpp
291 theory/arith/approx_simplex.h
292 theory/arith/arith_ite_utils.cpp
293 theory/arith/arith_ite_utils.h
294 theory/arith/arith_lemma.cpp
295 theory/arith/arith_lemma.h
296 theory/arith/arith_msum.cpp
297 theory/arith/arith_msum.h
298 theory/arith/arith_preprocess.cpp
299 theory/arith/arith_preprocess.h
300 theory/arith/arith_rewriter.cpp
301 theory/arith/arith_rewriter.h
302 theory/arith/arith_state.cpp
303 theory/arith/arith_state.h
304 theory/arith/arith_static_learner.cpp
305 theory/arith/arith_static_learner.h
306 theory/arith/arith_utilities.cpp
307 theory/arith/arith_utilities.h
308 theory/arith/arithvar.cpp
309 theory/arith/arithvar.h
310 theory/arith/attempt_solution_simplex.cpp
311 theory/arith/attempt_solution_simplex.h
312 theory/arith/bound_counts.h
313 theory/arith/bound_inference.cpp
314 theory/arith/bound_inference.h
315 theory/arith/callbacks.cpp
316 theory/arith/callbacks.h
317 theory/arith/congruence_manager.cpp
318 theory/arith/congruence_manager.h
319 theory/arith/constraint.cpp
320 theory/arith/constraint.h
321 theory/arith/constraint_forward.h
322 theory/arith/cut_log.cpp
323 theory/arith/cut_log.h
324 theory/arith/delta_rational.cpp
325 theory/arith/delta_rational.h
326 theory/arith/dio_solver.cpp
327 theory/arith/dio_solver.h
328 theory/arith/dual_simplex.cpp
329 theory/arith/dual_simplex.h
330 theory/arith/error_set.cpp
331 theory/arith/error_set.h
332 theory/arith/fc_simplex.cpp
333 theory/arith/fc_simplex.h
334 theory/arith/infer_bounds.cpp
335 theory/arith/infer_bounds.h
336 theory/arith/inference_id.cpp
337 theory/arith/inference_id.h
338 theory/arith/inference_manager.cpp
339 theory/arith/inference_manager.h
340 theory/arith/linear_equality.cpp
341 theory/arith/linear_equality.h
342 theory/arith/matrix.cpp
343 theory/arith/matrix.h
344 theory/arith/nl/cad_solver.cpp
345 theory/arith/nl/cad_solver.h
346 theory/arith/nl/cad/cdcac.cpp
347 theory/arith/nl/cad/cdcac.h
348 theory/arith/nl/cad/cdcac_utils.cpp
349 theory/arith/nl/cad/cdcac_utils.h
350 theory/arith/nl/cad/constraints.cpp
351 theory/arith/nl/cad/constraints.h
352 theory/arith/nl/cad/projections.cpp
353 theory/arith/nl/cad/projections.h
354 theory/arith/nl/cad/variable_ordering.cpp
355 theory/arith/nl/cad/variable_ordering.h
356 theory/arith/nl/ext/constraint.cpp
357 theory/arith/nl/ext/constraint.h
358 theory/arith/nl/ext/factoring_check.cpp
359 theory/arith/nl/ext/factoring_check.h
360 theory/arith/nl/ext/monomial.cpp
361 theory/arith/nl/ext/monomial.h
362 theory/arith/nl/ext/monomial_bounds_check.cpp
363 theory/arith/nl/ext/monomial_bounds_check.h
364 theory/arith/nl/ext/monomial_check.cpp
365 theory/arith/nl/ext/monomial_check.h
366 theory/arith/nl/ext/ext_state.cpp
367 theory/arith/nl/ext/ext_state.h
368 theory/arith/nl/ext/proof_checker.cpp
369 theory/arith/nl/ext/proof_checker.h
370 theory/arith/nl/ext/split_zero_check.cpp
371 theory/arith/nl/ext/split_zero_check.h
372 theory/arith/nl/ext/tangent_plane_check.cpp
373 theory/arith/nl/ext/tangent_plane_check.h
374 theory/arith/nl/ext_theory_callback.cpp
375 theory/arith/nl/ext_theory_callback.h
376 theory/arith/nl/iand_solver.cpp
377 theory/arith/nl/iand_solver.h
378 theory/arith/nl/icp/candidate.cpp
379 theory/arith/nl/icp/candidate.h
380 theory/arith/nl/icp/contraction_origins.cpp
381 theory/arith/nl/icp/contraction_origins.h
382 theory/arith/nl/icp/icp_solver.cpp
383 theory/arith/nl/icp/icp_solver.h
384 theory/arith/nl/icp/intersection.cpp
385 theory/arith/nl/icp/intersection.h
386 theory/arith/nl/iand_utils.cpp
387 theory/arith/nl/iand_utils.h
388 theory/arith/nl/nl_lemma_utils.cpp
389 theory/arith/nl/nl_lemma_utils.h
390 theory/arith/nl/nl_model.cpp
391 theory/arith/nl/nl_model.h
392 theory/arith/nl/nonlinear_extension.cpp
393 theory/arith/nl/nonlinear_extension.h
394 theory/arith/nl/poly_conversion.cpp
395 theory/arith/nl/poly_conversion.h
396 theory/arith/nl/stats.cpp
397 theory/arith/nl/stats.h
398 theory/arith/nl/strategy.cpp
399 theory/arith/nl/strategy.h
400 theory/arith/nl/transcendental/exponential_solver.cpp
401 theory/arith/nl/transcendental/exponential_solver.h
402 theory/arith/nl/transcendental/proof_checker.cpp
403 theory/arith/nl/transcendental/proof_checker.h
404 theory/arith/nl/transcendental/sine_solver.cpp
405 theory/arith/nl/transcendental/sine_solver.h
406 theory/arith/nl/transcendental/taylor_generator.cpp
407 theory/arith/nl/transcendental/taylor_generator.h
408 theory/arith/nl/transcendental/transcendental_solver.cpp
409 theory/arith/nl/transcendental/transcendental_solver.h
410 theory/arith/nl/transcendental/transcendental_state.cpp
411 theory/arith/nl/transcendental/transcendental_state.h
412 theory/arith/normal_form.cpp
413 theory/arith/normal_form.h
414 theory/arith/operator_elim.cpp
415 theory/arith/operator_elim.h
416 theory/arith/partial_model.cpp
417 theory/arith/partial_model.h
418 theory/arith/proof_checker.cpp
419 theory/arith/proof_checker.h
420 theory/arith/proof_macros.h
421 theory/arith/rewrites.cpp
422 theory/arith/rewrites.h
423 theory/arith/simplex.cpp
424 theory/arith/simplex.h
425 theory/arith/simplex_update.cpp
426 theory/arith/simplex_update.h
427 theory/arith/soi_simplex.cpp
428 theory/arith/soi_simplex.h
429 theory/arith/tableau.cpp
430 theory/arith/tableau.h
431 theory/arith/tableau_sizes.cpp
432 theory/arith/tableau_sizes.h
433 theory/arith/theory_arith.cpp
434 theory/arith/theory_arith.h
435 theory/arith/theory_arith_private.cpp
436 theory/arith/theory_arith_private.h
437 theory/arith/theory_arith_type_rules.h
438 theory/arith/type_enumerator.h
439 theory/arrays/array_info.cpp
440 theory/arrays/array_info.h
441 theory/arrays/inference_manager.cpp
442 theory/arrays/inference_manager.h
443 theory/arrays/proof_checker.cpp
444 theory/arrays/proof_checker.h
445 theory/arrays/skolem_cache.cpp
446 theory/arrays/skolem_cache.h
447 theory/arrays/theory_arrays.cpp
448 theory/arrays/theory_arrays.h
449 theory/arrays/theory_arrays_rewriter.cpp
450 theory/arrays/theory_arrays_rewriter.h
451 theory/arrays/theory_arrays_type_rules.h
452 theory/arrays/type_enumerator.h
453 theory/arrays/union_find.cpp
454 theory/arrays/union_find.h
455 theory/assertion.cpp
456 theory/assertion.h
457 theory/atom_requests.cpp
458 theory/atom_requests.h
459 theory/bags/bags_rewriter.cpp
460 theory/bags/bags_rewriter.h
461 theory/bags/bag_solver.cpp
462 theory/bags/bag_solver.h
463 theory/bags/bags_statistics.cpp
464 theory/bags/bags_statistics.h
465 theory/bags/infer_info.cpp
466 theory/bags/infer_info.h
467 theory/bags/inference_generator.cpp
468 theory/bags/inference_generator.h
469 theory/bags/inference_manager.cpp
470 theory/bags/inference_manager.h
471 theory/bags/make_bag_op.cpp
472 theory/bags/make_bag_op.h
473 theory/bags/normal_form.cpp
474 theory/bags/normal_form.h
475 theory/bags/rewrites.cpp
476 theory/bags/rewrites.h
477 theory/bags/solver_state.cpp
478 theory/bags/solver_state.h
479 theory/bags/term_registry.cpp
480 theory/bags/term_registry.h
481 theory/bags/theory_bags.cpp
482 theory/bags/theory_bags.h
483 theory/bags/theory_bags_type_enumerator.cpp
484 theory/bags/theory_bags_type_enumerator.h
485 theory/bags/theory_bags_type_rules.h
486 theory/booleans/circuit_propagator.cpp
487 theory/booleans/circuit_propagator.h
488 theory/booleans/proof_circuit_propagator.cpp
489 theory/booleans/proof_circuit_propagator.h
490 theory/booleans/proof_checker.cpp
491 theory/booleans/proof_checker.h
492 theory/booleans/theory_bool.cpp
493 theory/booleans/theory_bool.h
494 theory/booleans/theory_bool_rewriter.cpp
495 theory/booleans/theory_bool_rewriter.h
496 theory/booleans/theory_bool_type_rules.h
497 theory/booleans/type_enumerator.h
498 theory/builtin/proof_checker.cpp
499 theory/builtin/proof_checker.h
500 theory/builtin/theory_builtin.cpp
501 theory/builtin/theory_builtin.h
502 theory/builtin/theory_builtin_rewriter.cpp
503 theory/builtin/theory_builtin_rewriter.h
504 theory/builtin/theory_builtin_type_rules.cpp
505 theory/builtin/theory_builtin_type_rules.h
506 theory/builtin/type_enumerator.cpp
507 theory/builtin/type_enumerator.h
508 theory/bv/abstraction.cpp
509 theory/bv/abstraction.h
510 theory/bv/bitblast/aig_bitblaster.cpp
511 theory/bv/bitblast/aig_bitblaster.h
512 theory/bv/bitblast/bitblast_strategies_template.h
513 theory/bv/bitblast/bitblast_utils.h
514 theory/bv/bitblast/bitblaster.h
515 theory/bv/bitblast/eager_bitblaster.cpp
516 theory/bv/bitblast/eager_bitblaster.h
517 theory/bv/bitblast/lazy_bitblaster.cpp
518 theory/bv/bitblast/lazy_bitblaster.h
519 theory/bv/bitblast/simple_bitblaster.cpp
520 theory/bv/bitblast/simple_bitblaster.h
521 theory/bv/bv_eager_solver.cpp
522 theory/bv/bv_eager_solver.h
523 theory/bv/bv_inequality_graph.cpp
524 theory/bv/bv_inequality_graph.h
525 theory/bv/bv_quick_check.cpp
526 theory/bv/bv_quick_check.h
527 theory/bv/bv_solver.h
528 theory/bv/bv_solver_lazy.cpp
529 theory/bv/bv_solver_lazy.h
530 theory/bv/bv_solver_simple.cpp
531 theory/bv/bv_solver_simple.h
532 theory/bv/bv_subtheory.h
533 theory/bv/bv_subtheory_algebraic.cpp
534 theory/bv/bv_subtheory_algebraic.h
535 theory/bv/bv_subtheory_bitblast.cpp
536 theory/bv/bv_subtheory_bitblast.h
537 theory/bv/bv_subtheory_core.cpp
538 theory/bv/bv_subtheory_core.h
539 theory/bv/bv_subtheory_inequality.cpp
540 theory/bv/bv_subtheory_inequality.h
541 theory/bv/proof_checker.cpp
542 theory/bv/proof_checker.h
543 theory/bv/slicer.cpp
544 theory/bv/slicer.h
545 theory/bv/theory_bv.cpp
546 theory/bv/theory_bv.h
547 theory/bv/theory_bv_rewrite_rules.h
548 theory/bv/theory_bv_rewrite_rules_constant_evaluation.h
549 theory/bv/theory_bv_rewrite_rules_core.h
550 theory/bv/theory_bv_rewrite_rules_normalization.h
551 theory/bv/theory_bv_rewrite_rules_operator_elimination.h
552 theory/bv/theory_bv_rewrite_rules_simplification.h
553 theory/bv/theory_bv_rewriter.cpp
554 theory/bv/theory_bv_rewriter.h
555 theory/bv/theory_bv_type_rules.h
556 theory/bv/theory_bv_utils.cpp
557 theory/bv/theory_bv_utils.h
558 theory/bv/type_enumerator.h
559 theory/care_graph.h
560 theory/combination_care_graph.cpp
561 theory/combination_care_graph.h
562 theory/combination_engine.cpp
563 theory/combination_engine.h
564 theory/datatypes/datatypes_rewriter.cpp
565 theory/datatypes/datatypes_rewriter.h
566 theory/datatypes/inference.cpp
567 theory/datatypes/inference.h
568 theory/datatypes/inference_manager.cpp
569 theory/datatypes/inference_manager.h
570 theory/datatypes/infer_proof_cons.cpp
571 theory/datatypes/infer_proof_cons.h
572 theory/datatypes/proof_checker.cpp
573 theory/datatypes/proof_checker.h
574 theory/datatypes/sygus_datatype_utils.cpp
575 theory/datatypes/sygus_datatype_utils.h
576 theory/datatypes/sygus_extension.cpp
577 theory/datatypes/sygus_extension.h
578 theory/datatypes/sygus_simple_sym.cpp
579 theory/datatypes/sygus_simple_sym.h
580 theory/datatypes/theory_datatypes.cpp
581 theory/datatypes/theory_datatypes.h
582 theory/datatypes/theory_datatypes_type_rules.h
583 theory/datatypes/theory_datatypes_utils.cpp
584 theory/datatypes/theory_datatypes_utils.h
585 theory/datatypes/type_enumerator.cpp
586 theory/datatypes/type_enumerator.h
587 theory/decision_manager.cpp
588 theory/decision_manager.h
589 theory/decision_strategy.cpp
590 theory/decision_strategy.h
591 theory/eager_proof_generator.cpp
592 theory/eager_proof_generator.h
593 theory/ee_manager.cpp
594 theory/ee_manager.h
595 theory/ee_manager_distributed.cpp
596 theory/ee_manager_distributed.h
597 theory/ee_setup_info.h
598 theory/engine_output_channel.cpp
599 theory/engine_output_channel.h
600 theory/evaluator.cpp
601 theory/evaluator.h
602 theory/ext_theory.cpp
603 theory/ext_theory.h
604 theory/fp/fp_converter.cpp
605 theory/fp/fp_converter.h
606 theory/fp/theory_fp.cpp
607 theory/fp/theory_fp.h
608 theory/fp/theory_fp_rewriter.cpp
609 theory/fp/theory_fp_rewriter.h
610 theory/fp/theory_fp_type_rules.h
611 theory/fp/type_enumerator.h
612 theory/interrupted.h
613 theory/inference_manager_buffered.cpp
614 theory/inference_manager_buffered.h
615 theory/logic_info.cpp
616 theory/logic_info.h
617 theory/model_manager.cpp
618 theory/model_manager.h
619 theory/model_manager_distributed.cpp
620 theory/model_manager_distributed.h
621 theory/output_channel.cpp
622 theory/output_channel.h
623 theory/quantifiers/alpha_equivalence.cpp
624 theory/quantifiers/alpha_equivalence.h
625 theory/quantifiers/anti_skolem.cpp
626 theory/quantifiers/anti_skolem.h
627 theory/quantifiers/bv_inverter.cpp
628 theory/quantifiers/bv_inverter.h
629 theory/quantifiers/bv_inverter_utils.cpp
630 theory/quantifiers/bv_inverter_utils.h
631 theory/quantifiers/candidate_rewrite_database.cpp
632 theory/quantifiers/candidate_rewrite_database.h
633 theory/quantifiers/candidate_rewrite_filter.cpp
634 theory/quantifiers/candidate_rewrite_filter.h
635 theory/quantifiers/cegqi/ceg_arith_instantiator.cpp
636 theory/quantifiers/cegqi/ceg_arith_instantiator.h
637 theory/quantifiers/cegqi/ceg_bv_instantiator.cpp
638 theory/quantifiers/cegqi/ceg_bv_instantiator.h
639 theory/quantifiers/cegqi/ceg_bv_instantiator_utils.cpp
640 theory/quantifiers/cegqi/ceg_bv_instantiator_utils.h
641 theory/quantifiers/cegqi/ceg_dt_instantiator.cpp
642 theory/quantifiers/cegqi/ceg_dt_instantiator.h
643 theory/quantifiers/cegqi/ceg_instantiator.cpp
644 theory/quantifiers/cegqi/ceg_instantiator.h
645 theory/quantifiers/cegqi/inst_strategy_cegqi.cpp
646 theory/quantifiers/cegqi/inst_strategy_cegqi.h
647 theory/quantifiers/cegqi/nested_qe.cpp
648 theory/quantifiers/cegqi/nested_qe.h
649 theory/quantifiers/cegqi/vts_term_cache.cpp
650 theory/quantifiers/cegqi/vts_term_cache.h
651 theory/quantifiers/conjecture_generator.cpp
652 theory/quantifiers/conjecture_generator.h
653 theory/quantifiers/dynamic_rewrite.cpp
654 theory/quantifiers/dynamic_rewrite.h
655 theory/quantifiers/ematching/candidate_generator.cpp
656 theory/quantifiers/ematching/candidate_generator.h
657 theory/quantifiers/ematching/ho_trigger.cpp
658 theory/quantifiers/ematching/ho_trigger.h
659 theory/quantifiers/ematching/inst_match_generator.cpp
660 theory/quantifiers/ematching/inst_match_generator.h
661 theory/quantifiers/ematching/inst_match_generator_multi.cpp
662 theory/quantifiers/ematching/inst_match_generator_multi.h
663 theory/quantifiers/ematching/inst_match_generator_multi_linear.cpp
664 theory/quantifiers/ematching/inst_match_generator_multi_linear.h
665 theory/quantifiers/ematching/inst_match_generator_simple.cpp
666 theory/quantifiers/ematching/inst_match_generator_simple.h
667 theory/quantifiers/ematching/inst_strategy.h
668 theory/quantifiers/ematching/inst_strategy_e_matching.cpp
669 theory/quantifiers/ematching/inst_strategy_e_matching.h
670 theory/quantifiers/ematching/inst_strategy_e_matching_user.cpp
671 theory/quantifiers/ematching/inst_strategy_e_matching_user.h
672 theory/quantifiers/ematching/instantiation_engine.cpp
673 theory/quantifiers/ematching/instantiation_engine.h
674 theory/quantifiers/ematching/trigger.cpp
675 theory/quantifiers/ematching/trigger.h
676 theory/quantifiers/ematching/trigger_trie.cpp
677 theory/quantifiers/ematching/trigger_trie.h
678 theory/quantifiers/ematching/var_match_generator.cpp
679 theory/quantifiers/ematching/var_match_generator.h
680 theory/quantifiers/equality_infer.cpp
681 theory/quantifiers/equality_infer.h
682 theory/quantifiers/equality_query.cpp
683 theory/quantifiers/equality_query.h
684 theory/quantifiers/expr_miner.cpp
685 theory/quantifiers/expr_miner.h
686 theory/quantifiers/expr_miner_manager.cpp
687 theory/quantifiers/expr_miner_manager.h
688 theory/quantifiers/extended_rewrite.cpp
689 theory/quantifiers/extended_rewrite.h
690 theory/quantifiers/first_order_model.cpp
691 theory/quantifiers/first_order_model.h
692 theory/quantifiers/fmf/bounded_integers.cpp
693 theory/quantifiers/fmf/bounded_integers.h
694 theory/quantifiers/fmf/full_model_check.cpp
695 theory/quantifiers/fmf/full_model_check.h
696 theory/quantifiers/fmf/model_builder.cpp
697 theory/quantifiers/fmf/model_builder.h
698 theory/quantifiers/fmf/model_engine.cpp
699 theory/quantifiers/fmf/model_engine.h
700 theory/quantifiers/fun_def_evaluator.cpp
701 theory/quantifiers/fun_def_evaluator.h
702 theory/quantifiers/inst_match.cpp
703 theory/quantifiers/inst_match.h
704 theory/quantifiers/inst_match_trie.cpp
705 theory/quantifiers/inst_match_trie.h
706 theory/quantifiers/inst_strategy_enumerative.cpp
707 theory/quantifiers/inst_strategy_enumerative.h
708 theory/quantifiers/instantiate.cpp
709 theory/quantifiers/instantiate.h
710 theory/quantifiers/instantiation_list.cpp
711 theory/quantifiers/instantiation_list.h
712 theory/quantifiers/lazy_trie.cpp
713 theory/quantifiers/lazy_trie.h
714 theory/quantifiers/proof_checker.cpp
715 theory/quantifiers/proof_checker.h
716 theory/quantifiers/quant_conflict_find.cpp
717 theory/quantifiers/quant_conflict_find.h
718 theory/quantifiers/quant_relevance.cpp
719 theory/quantifiers/quant_relevance.h
720 theory/quantifiers/quant_rep_bound_ext.cpp
721 theory/quantifiers/quant_rep_bound_ext.h
722 theory/quantifiers/quant_split.cpp
723 theory/quantifiers/quant_split.h
724 theory/quantifiers/quant_util.cpp
725 theory/quantifiers/quant_util.h
726 theory/quantifiers/quantifiers_attributes.cpp
727 theory/quantifiers/quantifiers_attributes.h
728 theory/quantifiers/quantifiers_modules.cpp
729 theory/quantifiers/quantifiers_modules.h
730 theory/quantifiers/quantifiers_rewriter.cpp
731 theory/quantifiers/quantifiers_rewriter.h
732 theory/quantifiers/quantifiers_state.cpp
733 theory/quantifiers/quantifiers_state.h
734 theory/quantifiers/query_generator.cpp
735 theory/quantifiers/query_generator.h
736 theory/quantifiers/relevant_domain.cpp
737 theory/quantifiers/relevant_domain.h
738 theory/quantifiers/single_inv_partition.cpp
739 theory/quantifiers/single_inv_partition.h
740 theory/quantifiers/skolemize.cpp
741 theory/quantifiers/skolemize.h
742 theory/quantifiers/solution_filter.cpp
743 theory/quantifiers/solution_filter.h
744 theory/quantifiers/sygus/ce_guided_single_inv.cpp
745 theory/quantifiers/sygus/ce_guided_single_inv.h
746 theory/quantifiers/sygus/ce_guided_single_inv_sol.cpp
747 theory/quantifiers/sygus/ce_guided_single_inv_sol.h
748 theory/quantifiers/sygus/cegis.cpp
749 theory/quantifiers/sygus/cegis.h
750 theory/quantifiers/sygus/cegis_core_connective.cpp
751 theory/quantifiers/sygus/cegis_core_connective.h
752 theory/quantifiers/sygus/cegis_unif.cpp
753 theory/quantifiers/sygus/cegis_unif.h
754 theory/quantifiers/sygus/example_eval_cache.cpp
755 theory/quantifiers/sygus/example_eval_cache.h
756 theory/quantifiers/sygus/example_infer.cpp
757 theory/quantifiers/sygus/example_infer.h
758 theory/quantifiers/sygus/example_min_eval.cpp
759 theory/quantifiers/sygus/example_min_eval.h
760 theory/quantifiers/sygus/enum_stream_substitution.cpp
761 theory/quantifiers/sygus/enum_stream_substitution.h
762 theory/quantifiers/sygus/example_infer.cpp
763 theory/quantifiers/sygus/example_infer.h
764 theory/quantifiers/sygus/example_min_eval.cpp
765 theory/quantifiers/sygus/example_min_eval.h
766 theory/quantifiers/sygus/sygus_abduct.cpp
767 theory/quantifiers/sygus/sygus_abduct.h
768 theory/quantifiers/sygus/sygus_enumerator.cpp
769 theory/quantifiers/sygus/sygus_enumerator.h
770 theory/quantifiers/sygus/sygus_enumerator_basic.cpp
771 theory/quantifiers/sygus/sygus_enumerator_basic.h
772 theory/quantifiers/sygus/sygus_eval_unfold.cpp
773 theory/quantifiers/sygus/sygus_eval_unfold.h
774 theory/quantifiers/sygus/sygus_explain.cpp
775 theory/quantifiers/sygus/sygus_explain.h
776 theory/quantifiers/sygus/sygus_grammar_cons.cpp
777 theory/quantifiers/sygus/sygus_grammar_cons.h
778 theory/quantifiers/sygus/sygus_grammar_norm.cpp
779 theory/quantifiers/sygus/sygus_grammar_norm.h
780 theory/quantifiers/sygus/sygus_grammar_red.cpp
781 theory/quantifiers/sygus/sygus_grammar_red.h
782 theory/quantifiers/sygus/sygus_interpol.cpp
783 theory/quantifiers/sygus/sygus_interpol.h
784 theory/quantifiers/sygus/sygus_invariance.cpp
785 theory/quantifiers/sygus/sygus_invariance.h
786 theory/quantifiers/sygus/sygus_module.cpp
787 theory/quantifiers/sygus/sygus_module.h
788 theory/quantifiers/sygus/sygus_pbe.cpp
789 theory/quantifiers/sygus/sygus_pbe.h
790 theory/quantifiers/sygus/sygus_process_conj.cpp
791 theory/quantifiers/sygus/sygus_process_conj.h
792 theory/quantifiers/sygus/sygus_qe_preproc.cpp
793 theory/quantifiers/sygus/sygus_qe_preproc.h
794 theory/quantifiers/sygus/sygus_repair_const.cpp
795 theory/quantifiers/sygus/sygus_repair_const.h
796 theory/quantifiers/sygus/sygus_stats.cpp
797 theory/quantifiers/sygus/sygus_stats.h
798 theory/quantifiers/sygus/sygus_unif.cpp
799 theory/quantifiers/sygus/sygus_unif.h
800 theory/quantifiers/sygus/sygus_unif_io.cpp
801 theory/quantifiers/sygus/sygus_unif_io.h
802 theory/quantifiers/sygus/sygus_unif_rl.cpp
803 theory/quantifiers/sygus/sygus_unif_rl.h
804 theory/quantifiers/sygus/sygus_unif_strat.cpp
805 theory/quantifiers/sygus/sygus_unif_strat.h
806 theory/quantifiers/sygus/sygus_utils.cpp
807 theory/quantifiers/sygus/sygus_utils.h
808 theory/quantifiers/sygus/synth_conjecture.cpp
809 theory/quantifiers/sygus/synth_conjecture.h
810 theory/quantifiers/sygus/synth_engine.cpp
811 theory/quantifiers/sygus/synth_engine.h
812 theory/quantifiers/sygus/template_infer.cpp
813 theory/quantifiers/sygus/template_infer.h
814 theory/quantifiers/sygus/term_database_sygus.cpp
815 theory/quantifiers/sygus/term_database_sygus.h
816 theory/quantifiers/sygus/type_info.cpp
817 theory/quantifiers/sygus/type_info.h
818 theory/quantifiers/sygus/type_node_id_trie.cpp
819 theory/quantifiers/sygus/type_node_id_trie.h
820 theory/quantifiers/sygus/transition_inference.cpp
821 theory/quantifiers/sygus/transition_inference.h
822 theory/quantifiers/sygus_inst.cpp
823 theory/quantifiers/sygus_inst.h
824 theory/quantifiers/sygus_sampler.cpp
825 theory/quantifiers/sygus_sampler.h
826 theory/quantifiers/term_database.cpp
827 theory/quantifiers/term_database.h
828 theory/quantifiers/term_enumeration.cpp
829 theory/quantifiers/term_enumeration.h
830 theory/quantifiers/term_util.cpp
831 theory/quantifiers/term_util.h
832 theory/quantifiers/theory_quantifiers.cpp
833 theory/quantifiers/theory_quantifiers.h
834 theory/quantifiers/theory_quantifiers_type_rules.h
835 theory/quantifiers_engine.cpp
836 theory/quantifiers_engine.h
837 theory/relevance_manager.cpp
838 theory/relevance_manager.h
839 theory/rep_set.cpp
840 theory/rep_set.h
841 theory/rewriter.cpp
842 theory/rewriter.h
843 theory/rewriter_attributes.h
844 theory/sep/theory_sep.cpp
845 theory/sep/theory_sep.h
846 theory/sep/theory_sep_rewriter.cpp
847 theory/sep/theory_sep_rewriter.h
848 theory/sep/theory_sep_type_rules.h
849 theory/sets/cardinality_extension.cpp
850 theory/sets/cardinality_extension.h
851 theory/sets/inference_manager.cpp
852 theory/sets/inference_manager.h
853 theory/sets/normal_form.h
854 theory/sets/rels_utils.h
855 theory/sets/singleton_op.cpp
856 theory/sets/singleton_op.h
857 theory/sets/skolem_cache.cpp
858 theory/sets/skolem_cache.h
859 theory/sets/solver_state.cpp
860 theory/sets/solver_state.h
861 theory/sets/term_registry.cpp
862 theory/sets/term_registry.h
863 theory/sets/theory_sets.cpp
864 theory/sets/theory_sets.h
865 theory/sets/theory_sets_private.cpp
866 theory/sets/theory_sets_private.h
867 theory/sets/theory_sets_rels.cpp
868 theory/sets/theory_sets_rels.h
869 theory/sets/theory_sets_rewriter.cpp
870 theory/sets/theory_sets_rewriter.h
871 theory/sets/theory_sets_type_enumerator.cpp
872 theory/sets/theory_sets_type_enumerator.h
873 theory/sets/theory_sets_type_rules.h
874 theory/shared_solver.cpp
875 theory/shared_solver.h
876 theory/shared_solver_distributed.cpp
877 theory/shared_solver_distributed.h
878 theory/shared_terms_database.cpp
879 theory/shared_terms_database.h
880 theory/smt_engine_subsolver.cpp
881 theory/smt_engine_subsolver.h
882 theory/sort_inference.cpp
883 theory/sort_inference.h
884 theory/strings/arith_entail.cpp
885 theory/strings/arith_entail.h
886 theory/strings/base_solver.cpp
887 theory/strings/base_solver.h
888 theory/strings/core_solver.cpp
889 theory/strings/core_solver.h
890 theory/strings/eager_solver.cpp
891 theory/strings/eager_solver.h
892 theory/strings/extf_solver.cpp
893 theory/strings/extf_solver.h
894 theory/strings/eqc_info.cpp
895 theory/strings/eqc_info.h
896 theory/strings/infer_info.cpp
897 theory/strings/infer_info.h
898 theory/strings/infer_proof_cons.cpp
899 theory/strings/infer_proof_cons.h
900 theory/strings/inference_manager.cpp
901 theory/strings/inference_manager.h
902 theory/strings/normal_form.cpp
903 theory/strings/normal_form.h
904 theory/strings/proof_checker.cpp
905 theory/strings/proof_checker.h
906 theory/strings/regexp_elim.cpp
907 theory/strings/regexp_elim.h
908 theory/strings/regexp_entail.cpp
909 theory/strings/regexp_entail.h
910 theory/strings/regexp_operation.cpp
911 theory/strings/regexp_operation.h
912 theory/strings/regexp_solver.cpp
913 theory/strings/regexp_solver.h
914 theory/strings/rewrites.cpp
915 theory/strings/rewrites.h
916 theory/strings/sequences_rewriter.cpp
917 theory/strings/sequences_rewriter.h
918 theory/strings/sequences_stats.cpp
919 theory/strings/sequences_stats.h
920 theory/strings/skolem_cache.cpp
921 theory/strings/skolem_cache.h
922 theory/strings/solver_state.cpp
923 theory/strings/solver_state.h
924 theory/strings/strategy.cpp
925 theory/strings/strategy.h
926 theory/strings/strings_entail.cpp
927 theory/strings/strings_entail.h
928 theory/strings/strings_fmf.cpp
929 theory/strings/strings_fmf.h
930 theory/strings/strings_rewriter.cpp
931 theory/strings/strings_rewriter.h
932 theory/strings/theory_strings.cpp
933 theory/strings/theory_strings.h
934 theory/strings/theory_strings_preprocess.cpp
935 theory/strings/theory_strings_preprocess.h
936 theory/strings/theory_strings_type_rules.h
937 theory/strings/theory_strings_utils.cpp
938 theory/strings/theory_strings_utils.h
939 theory/strings/term_registry.cpp
940 theory/strings/term_registry.h
941 theory/strings/type_enumerator.cpp
942 theory/strings/type_enumerator.h
943 theory/strings/word.cpp
944 theory/strings/word.h
945 theory/subs_minimize.cpp
946 theory/subs_minimize.h
947 theory/substitutions.cpp
948 theory/substitutions.h
949 theory/term_registration_visitor.cpp
950 theory/term_registration_visitor.h
951 theory/theory.cpp
952 theory/theory.h
953 theory/theory_engine.cpp
954 theory/theory_engine.h
955 theory/theory_engine_proof_generator.cpp
956 theory/theory_engine_proof_generator.h
957 theory/theory_id.cpp
958 theory/theory_id.h
959 theory/theory_eq_notify.h
960 theory/theory_inference.cpp
961 theory/theory_inference.h
962 theory/theory_inference_manager.cpp
963 theory/theory_inference_manager.h
964 theory/theory_model.cpp
965 theory/theory_model.h
966 theory/theory_model_builder.cpp
967 theory/theory_model_builder.h
968 theory/theory_preprocessor.cpp
969 theory/theory_preprocessor.h
970 theory/theory_proof_step_buffer.cpp
971 theory/theory_proof_step_buffer.h
972 theory/theory_rewriter.cpp
973 theory/theory_rewriter.h
974 theory/theory_state.cpp
975 theory/theory_state.h
976 theory/theory_test_utils.h
977 theory/trust_node.cpp
978 theory/trust_node.h
979 theory/trust_substitutions.cpp
980 theory/trust_substitutions.h
981 theory/type_enumerator.h
982 theory/type_set.cpp
983 theory/type_set.h
984 theory/uf/cardinality_extension.cpp
985 theory/uf/cardinality_extension.h
986 theory/uf/equality_engine.cpp
987 theory/uf/equality_engine.h
988 theory/uf/equality_engine_iterator.cpp
989 theory/uf/equality_engine_iterator.h
990 theory/uf/equality_engine_notify.h
991 theory/uf/equality_engine_types.h
992 theory/uf/eq_proof.cpp
993 theory/uf/eq_proof.h
994 theory/uf/proof_checker.cpp
995 theory/uf/proof_checker.h
996 theory/uf/proof_equality_engine.cpp
997 theory/uf/proof_equality_engine.h
998 theory/uf/ho_extension.cpp
999 theory/uf/ho_extension.h
1000 theory/uf/symmetry_breaker.cpp
1001 theory/uf/symmetry_breaker.h
1002 theory/uf/theory_uf.cpp
1003 theory/uf/theory_uf.h
1004 theory/uf/theory_uf_model.cpp
1005 theory/uf/theory_uf_model.h
1006 theory/uf/theory_uf_rewriter.h
1007 theory/uf/theory_uf_type_rules.h
1008 theory/valuation.cpp
1009 theory/valuation.h
1010 )
1011
1012 #-----------------------------------------------------------------------------#
1013 # Add required include paths for this and all subdirectories.
1014
1015 include_directories(include)
1016 include_directories(. ${CMAKE_CURRENT_BINARY_DIR})
1017
1018 #-----------------------------------------------------------------------------#
1019
1020 set(KINDS_FILES
1021 ${PROJECT_SOURCE_DIR}/src/theory/builtin/kinds
1022 ${PROJECT_SOURCE_DIR}/src/theory/booleans/kinds
1023 ${PROJECT_SOURCE_DIR}/src/theory/uf/kinds
1024 ${PROJECT_SOURCE_DIR}/src/theory/arith/kinds
1025 ${PROJECT_SOURCE_DIR}/src/theory/bv/kinds
1026 ${PROJECT_SOURCE_DIR}/src/theory/fp/kinds
1027 ${PROJECT_SOURCE_DIR}/src/theory/arrays/kinds
1028 ${PROJECT_SOURCE_DIR}/src/theory/datatypes/kinds
1029 ${PROJECT_SOURCE_DIR}/src/theory/sep/kinds
1030 ${PROJECT_SOURCE_DIR}/src/theory/sets/kinds
1031 ${PROJECT_SOURCE_DIR}/src/theory/bags/kinds
1032 ${PROJECT_SOURCE_DIR}/src/theory/strings/kinds
1033 ${PROJECT_SOURCE_DIR}/src/theory/quantifiers/kinds)
1034
1035 #-----------------------------------------------------------------------------#
1036 # Add subdirectories
1037
1038 add_subdirectory(base)
1039 add_subdirectory(expr)
1040 add_subdirectory(options)
1041 if (NOT BUILD_LIB_ONLY)
1042 add_subdirectory(parser)
1043 endif()
1044 add_subdirectory(theory)
1045 add_subdirectory(util)
1046
1047 #-----------------------------------------------------------------------------#
1048 # All sources for libcvc4 are now collected in LIBCVC4_SRCS and (if generated)
1049 # LIBCVC4_GEN_SRCS (via libcvc4_add_sources). We can now build libcvc4.
1050
1051 set_source_files_properties(${LIBCVC4_GEN_SRCS} PROPERTIES GENERATED TRUE)
1052 add_library(cvc4 ${LIBCVC4_SRCS} ${LIBCVC4_GEN_SRCS})
1053 target_include_directories(cvc4
1054 PUBLIC
1055 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
1056 $<INSTALL_INTERFACE:include>
1057 )
1058
1059 install(TARGETS cvc4
1060 EXPORT cvc4-targets
1061 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
1062 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
1063
1064 set_target_properties(cvc4 PROPERTIES SOVERSION ${CVC4_SOVERSION})
1065 target_compile_definitions(cvc4
1066 PRIVATE
1067 -D__BUILDING_CVC4LIB
1068 -D__STDC_LIMIT_MACROS
1069 -D__STDC_FORMAT_MACROS
1070 )
1071 # Add libcvc4 dependencies for generated sources.
1072 add_dependencies(cvc4 gen-expr gen-gitinfo gen-options gen-tags gen-theory)
1073
1074 # Add library/include dependencies
1075 if(ENABLE_VALGRIND)
1076 target_include_directories(cvc4 PRIVATE ${Valgrind_INCLUDE_DIR})
1077 endif()
1078 if(USE_ABC)
1079 target_link_libraries(cvc4 ${ABC_LIBRARIES})
1080 target_include_directories(cvc4 PRIVATE ${ABC_INCLUDE_DIR})
1081 endif()
1082 if(USE_CADICAL)
1083 target_link_libraries(cvc4 ${CaDiCaL_LIBRARIES})
1084 target_include_directories(cvc4 PRIVATE ${CaDiCaL_INCLUDE_DIR})
1085 endif()
1086 if(USE_CLN)
1087 target_link_libraries(cvc4 ${CLN_LIBRARIES})
1088 target_include_directories(cvc4 PUBLIC $<BUILD_INTERFACE:${CLN_INCLUDE_DIR}>)
1089 endif()
1090 if(USE_CRYPTOMINISAT)
1091 target_link_libraries(cvc4 ${CryptoMiniSat_LIBRARIES})
1092 target_include_directories(cvc4 PRIVATE ${CryptoMiniSat_INCLUDE_DIR})
1093 endif()
1094 if(USE_KISSAT)
1095 target_link_libraries(cvc4 ${Kissat_LIBRARIES})
1096 target_include_directories(cvc4 PRIVATE ${Kissat_INCLUDE_DIR})
1097 endif()
1098 if(USE_DRAT2ER)
1099 target_link_libraries(cvc4 ${Drat2Er_LIBRARIES})
1100 target_include_directories(cvc4 PRIVATE ${Drat2Er_INCLUDE_DIR})
1101 endif()
1102 if(USE_GLPK)
1103 target_link_libraries(cvc4 ${GLPK_LIBRARIES})
1104 target_include_directories(cvc4 PRIVATE ${GLPK_INCLUDE_DIR})
1105 endif()
1106 if(USE_LFSC)
1107 target_link_libraries(cvc4 ${LFSC_LIBRARIES})
1108 target_include_directories(cvc4 PRIVATE ${LFSC_INCLUDE_DIR})
1109 endif()
1110 if(USE_POLY)
1111 target_link_libraries(cvc4 ${POLY_LIBRARIES})
1112 target_include_directories(cvc4 PRIVATE ${POLY_INCLUDE_DIR})
1113 endif()
1114 if(USE_SYMFPU)
1115 target_include_directories(cvc4
1116 PUBLIC $<BUILD_INTERFACE:${SymFPU_INCLUDE_DIR}>)
1117 endif()
1118
1119 # Note: When linked statically GMP needs to be linked after CLN since CLN
1120 # depends on GMP.
1121 target_link_libraries(cvc4 ${GMP_LIBRARIES})
1122 target_include_directories(cvc4 PUBLIC $<BUILD_INTERFACE:${GMP_INCLUDE_DIR}>)
1123
1124 # Add rt library
1125 # Note: For glibc < 2.17 we have to additionally link against rt (man clock_gettime).
1126 # RT_LIBRARIES should be empty for glibc >= 2.17
1127 target_link_libraries(cvc4 ${RT_LIBRARIES})
1128
1129 #-----------------------------------------------------------------------------#
1130 # Visit main subdirectory after creating target cvc4. For target main, we have
1131 # to manually add library dependencies since we can't use
1132 # target_link_libraries(...) with object libraries for cmake versions <= 3.12.
1133 # Thus, we can only visit main as soon as all dependencies for cvc4 are set up.
1134
1135 if (NOT BUILD_LIB_ONLY)
1136 add_subdirectory(main)
1137 endif()
1138
1139 #-----------------------------------------------------------------------------#
1140 # Note:
1141 # We define all install commands for all public headers here in one
1142 # place so that we can easily remove them as soon as we enforce the new
1143 # C++ API.
1144 #
1145 # All (generated) headers that either include cvc4_public.h or
1146 # cvc4parser_public.h need to be listed explicitly here.
1147 #
1148 install(FILES
1149 api/cvc4cpp.h
1150 api/cvc4cppkind.h
1151 DESTINATION
1152 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4/api)
1153 install(FILES
1154 base/configuration.h
1155 base/exception.h
1156 base/listener.h
1157 base/modal_exception.h
1158 DESTINATION
1159 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4/base)
1160 install(FILES
1161 context/cdhashmap_forward.h
1162 context/cdhashset_forward.h
1163 context/cdinsert_hashmap_forward.h
1164 context/cdlist_forward.h
1165 DESTINATION
1166 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4/context)
1167 install(FILES
1168 include/cvc4.h
1169 include/cvc4_public.h
1170 include/cvc4parser_public.h
1171 DESTINATION
1172 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4)
1173 install(FILES
1174 expr/array_store_all.h
1175 expr/ascription_type.h
1176 expr/emptyset.h
1177 expr/expr_iomanip.h
1178 expr/record.h
1179 expr/sequence.h
1180 expr/symbol_manager.h
1181 expr/symbol_table.h
1182 expr/type.h
1183 expr/uninterpreted_constant.h
1184 expr/variable_type_map.h
1185 ${CMAKE_CURRENT_BINARY_DIR}/expr/expr.h
1186 ${CMAKE_CURRENT_BINARY_DIR}/expr/kind.h
1187 ${CMAKE_CURRENT_BINARY_DIR}/expr/expr_manager.h
1188 DESTINATION
1189 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4/expr)
1190 install(FILES
1191 options/language.h
1192 options/option_exception.h
1193 options/options.h
1194 options/printer_modes.h
1195 options/set_language.h
1196 DESTINATION
1197 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4/options)
1198 install(FILES
1199 parser/input.h
1200 parser/parser.h
1201 parser/parser_builder.h
1202 parser/parser_exception.h
1203 parser/parse_op.h
1204 DESTINATION
1205 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4/parser)
1206 install(FILES
1207 DESTINATION
1208 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4/printer)
1209 install(FILES
1210 proof/unsat_core.h
1211 DESTINATION
1212 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4/proof)
1213 install(FILES
1214 smt/command.h
1215 smt/logic_exception.h
1216 smt/smt_engine.h
1217 DESTINATION
1218 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4/smt)
1219 install(FILES
1220 theory/logic_info.h
1221 theory/theory_id.h
1222 DESTINATION
1223 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4/theory)
1224 install(FILES
1225 util/abstract_value.h
1226 util/bitvector.h
1227 util/bool.h
1228 util/cardinality.h
1229 util/divisible.h
1230 util/gmp_util.h
1231 util/hash.h
1232 util/iand.h
1233 util/integer_cln_imp.h
1234 util/integer_gmp_imp.h
1235 util/maybe.h
1236 util/poly_util.h
1237 util/rational_cln_imp.h
1238 util/rational_gmp_imp.h
1239 util/real_algebraic_number_poly_imp.h
1240 util/regexp.h
1241 util/resource_manager.h
1242 util/result.h
1243 util/sexpr.h
1244 util/statistics.h
1245 util/string.h
1246 util/tuple.h
1247 util/unsafe_interrupt_exception.h
1248 ${CMAKE_CURRENT_BINARY_DIR}/util/integer.h
1249 ${CMAKE_CURRENT_BINARY_DIR}/util/rational.h
1250 ${CMAKE_CURRENT_BINARY_DIR}/util/real_algebraic_number.h
1251 ${CMAKE_CURRENT_BINARY_DIR}/util/floatingpoint_literal_symfpu.h
1252 DESTINATION
1253 ${CMAKE_INSTALL_INCLUDEDIR}/cvc4/util)
1254
1255 # Fix include paths for all public headers.
1256 # Note: This is a temporary fix until the new C++ API is in place.
1257 install(CODE "execute_process(COMMAND
1258 ${CMAKE_CURRENT_LIST_DIR}/fix-install-headers.sh
1259 ${CMAKE_INSTALL_PREFIX})")