cadical 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +26 -0
  3. data/README.md +101 -0
  4. data/ext/cadical/cadical/LICENSE +28 -0
  5. data/ext/cadical/cadical/README.md +65 -0
  6. data/ext/cadical/cadical/VERSION +1 -0
  7. data/ext/cadical/cadical/src/analyze.cpp +1360 -0
  8. data/ext/cadical/cadical/src/arena.cpp +30 -0
  9. data/ext/cadical/cadical/src/arena.hpp +105 -0
  10. data/ext/cadical/cadical/src/assume.cpp +616 -0
  11. data/ext/cadical/cadical/src/averages.cpp +34 -0
  12. data/ext/cadical/cadical/src/averages.hpp +37 -0
  13. data/ext/cadical/cadical/src/backbone.cpp +631 -0
  14. data/ext/cadical/cadical/src/backtrack.cpp +177 -0
  15. data/ext/cadical/cadical/src/backward.cpp +231 -0
  16. data/ext/cadical/cadical/src/bins.cpp +22 -0
  17. data/ext/cadical/cadical/src/bins.hpp +22 -0
  18. data/ext/cadical/cadical/src/block.cpp +824 -0
  19. data/ext/cadical/cadical/src/block.hpp +37 -0
  20. data/ext/cadical/cadical/src/cadical.cpp +1026 -0
  21. data/ext/cadical/cadical/src/cadical.hpp +1419 -0
  22. data/ext/cadical/cadical/src/ccadical.cpp +208 -0
  23. data/ext/cadical/cadical/src/ccadical.h +74 -0
  24. data/ext/cadical/cadical/src/checker.cpp +649 -0
  25. data/ext/cadical/cadical/src/checker.hpp +173 -0
  26. data/ext/cadical/cadical/src/clause.cpp +689 -0
  27. data/ext/cadical/cadical/src/clause.hpp +190 -0
  28. data/ext/cadical/cadical/src/collect.cpp +545 -0
  29. data/ext/cadical/cadical/src/compact.cpp +550 -0
  30. data/ext/cadical/cadical/src/condition.cpp +940 -0
  31. data/ext/cadical/cadical/src/config.cpp +101 -0
  32. data/ext/cadical/cadical/src/config.hpp +20 -0
  33. data/ext/cadical/cadical/src/congruence.cpp +7880 -0
  34. data/ext/cadical/cadical/src/congruence.hpp +757 -0
  35. data/ext/cadical/cadical/src/constrain.cpp +64 -0
  36. data/ext/cadical/cadical/src/contract.cpp +27 -0
  37. data/ext/cadical/cadical/src/contract.hpp +139 -0
  38. data/ext/cadical/cadical/src/cover.cpp +704 -0
  39. data/ext/cadical/cadical/src/cover.hpp +34 -0
  40. data/ext/cadical/cadical/src/decide.cpp +347 -0
  41. data/ext/cadical/cadical/src/decompose.cpp +738 -0
  42. data/ext/cadical/cadical/src/decompose.hpp +23 -0
  43. data/ext/cadical/cadical/src/deduplicate.cpp +275 -0
  44. data/ext/cadical/cadical/src/definition.cpp +283 -0
  45. data/ext/cadical/cadical/src/delay.hpp +38 -0
  46. data/ext/cadical/cadical/src/drattracer.cpp +153 -0
  47. data/ext/cadical/cadical/src/drattracer.hpp +55 -0
  48. data/ext/cadical/cadical/src/elim.cpp +1171 -0
  49. data/ext/cadical/cadical/src/elim.hpp +53 -0
  50. data/ext/cadical/cadical/src/elimfast.cpp +570 -0
  51. data/ext/cadical/cadical/src/ema.cpp +95 -0
  52. data/ext/cadical/cadical/src/ema.hpp +68 -0
  53. data/ext/cadical/cadical/src/extend.cpp +289 -0
  54. data/ext/cadical/cadical/src/external.cpp +1034 -0
  55. data/ext/cadical/cadical/src/external.hpp +487 -0
  56. data/ext/cadical/cadical/src/external_propagate.cpp +1316 -0
  57. data/ext/cadical/cadical/src/factor.cpp +1011 -0
  58. data/ext/cadical/cadical/src/factor.hpp +54 -0
  59. data/ext/cadical/cadical/src/file.cpp +506 -0
  60. data/ext/cadical/cadical/src/file.hpp +210 -0
  61. data/ext/cadical/cadical/src/flags.cpp +135 -0
  62. data/ext/cadical/cadical/src/flags.hpp +93 -0
  63. data/ext/cadical/cadical/src/flip.cpp +269 -0
  64. data/ext/cadical/cadical/src/format.cpp +89 -0
  65. data/ext/cadical/cadical/src/format.hpp +36 -0
  66. data/ext/cadical/cadical/src/frattracer.cpp +277 -0
  67. data/ext/cadical/cadical/src/frattracer.hpp +67 -0
  68. data/ext/cadical/cadical/src/gates.cpp +766 -0
  69. data/ext/cadical/cadical/src/heap.hpp +212 -0
  70. data/ext/cadical/cadical/src/idruptracer.cpp +566 -0
  71. data/ext/cadical/cadical/src/idruptracer.hpp +112 -0
  72. data/ext/cadical/cadical/src/instantiate.cpp +365 -0
  73. data/ext/cadical/cadical/src/instantiate.hpp +45 -0
  74. data/ext/cadical/cadical/src/internal.cpp +1265 -0
  75. data/ext/cadical/cadical/src/internal.hpp +1941 -0
  76. data/ext/cadical/cadical/src/inttypes.hpp +34 -0
  77. data/ext/cadical/cadical/src/ipasir.cpp +47 -0
  78. data/ext/cadical/cadical/src/ipasir.h +37 -0
  79. data/ext/cadical/cadical/src/kitten.c +2599 -0
  80. data/ext/cadical/cadical/src/kitten.h +97 -0
  81. data/ext/cadical/cadical/src/level.hpp +33 -0
  82. data/ext/cadical/cadical/src/lidruptracer.cpp +657 -0
  83. data/ext/cadical/cadical/src/lidruptracer.hpp +122 -0
  84. data/ext/cadical/cadical/src/limit.cpp +146 -0
  85. data/ext/cadical/cadical/src/limit.hpp +168 -0
  86. data/ext/cadical/cadical/src/logging.cpp +214 -0
  87. data/ext/cadical/cadical/src/logging.hpp +98 -0
  88. data/ext/cadical/cadical/src/lookahead.cpp +520 -0
  89. data/ext/cadical/cadical/src/lratchecker.cpp +833 -0
  90. data/ext/cadical/cadical/src/lratchecker.hpp +168 -0
  91. data/ext/cadical/cadical/src/lrattracer.cpp +200 -0
  92. data/ext/cadical/cadical/src/lrattracer.hpp +61 -0
  93. data/ext/cadical/cadical/src/lucky.cpp +506 -0
  94. data/ext/cadical/cadical/src/message.cpp +218 -0
  95. data/ext/cadical/cadical/src/message.hpp +65 -0
  96. data/ext/cadical/cadical/src/minimize.cpp +224 -0
  97. data/ext/cadical/cadical/src/mobical.cpp +5588 -0
  98. data/ext/cadical/cadical/src/occs.cpp +52 -0
  99. data/ext/cadical/cadical/src/occs.hpp +36 -0
  100. data/ext/cadical/cadical/src/options.cpp +359 -0
  101. data/ext/cadical/cadical/src/options.hpp +442 -0
  102. data/ext/cadical/cadical/src/parse.cpp +471 -0
  103. data/ext/cadical/cadical/src/parse.hpp +75 -0
  104. data/ext/cadical/cadical/src/phases.cpp +56 -0
  105. data/ext/cadical/cadical/src/phases.hpp +19 -0
  106. data/ext/cadical/cadical/src/probe.cpp +990 -0
  107. data/ext/cadical/cadical/src/profile.cpp +107 -0
  108. data/ext/cadical/cadical/src/profile.hpp +283 -0
  109. data/ext/cadical/cadical/src/proof.cpp +691 -0
  110. data/ext/cadical/cadical/src/proof.hpp +125 -0
  111. data/ext/cadical/cadical/src/propagate.cpp +584 -0
  112. data/ext/cadical/cadical/src/queue.cpp +90 -0
  113. data/ext/cadical/cadical/src/queue.hpp +74 -0
  114. data/ext/cadical/cadical/src/radix.hpp +180 -0
  115. data/ext/cadical/cadical/src/random.cpp +207 -0
  116. data/ext/cadical/cadical/src/random.h +44 -0
  117. data/ext/cadical/cadical/src/random.hpp +98 -0
  118. data/ext/cadical/cadical/src/range.hpp +125 -0
  119. data/ext/cadical/cadical/src/reap.cpp +127 -0
  120. data/ext/cadical/cadical/src/reap.hpp +28 -0
  121. data/ext/cadical/cadical/src/reduce.cpp +278 -0
  122. data/ext/cadical/cadical/src/reluctant.hpp +82 -0
  123. data/ext/cadical/cadical/src/rephase.cpp +402 -0
  124. data/ext/cadical/cadical/src/report.cpp +313 -0
  125. data/ext/cadical/cadical/src/resources.cpp +160 -0
  126. data/ext/cadical/cadical/src/resources.hpp +16 -0
  127. data/ext/cadical/cadical/src/restart.cpp +178 -0
  128. data/ext/cadical/cadical/src/restore.cpp +267 -0
  129. data/ext/cadical/cadical/src/score.cpp +51 -0
  130. data/ext/cadical/cadical/src/score.hpp +16 -0
  131. data/ext/cadical/cadical/src/shrink.cpp +507 -0
  132. data/ext/cadical/cadical/src/signal.cpp +136 -0
  133. data/ext/cadical/cadical/src/signal.hpp +33 -0
  134. data/ext/cadical/cadical/src/solution.cpp +50 -0
  135. data/ext/cadical/cadical/src/solver.cpp +1871 -0
  136. data/ext/cadical/cadical/src/stable.cpp +31 -0
  137. data/ext/cadical/cadical/src/stack.h +110 -0
  138. data/ext/cadical/cadical/src/stats.cpp +920 -0
  139. data/ext/cadical/cadical/src/stats.hpp +418 -0
  140. data/ext/cadical/cadical/src/subsume.cpp +645 -0
  141. data/ext/cadical/cadical/src/sweep.cpp +1960 -0
  142. data/ext/cadical/cadical/src/sweep.hpp +61 -0
  143. data/ext/cadical/cadical/src/terminal.cpp +38 -0
  144. data/ext/cadical/cadical/src/terminal.hpp +96 -0
  145. data/ext/cadical/cadical/src/ternary.cpp +450 -0
  146. data/ext/cadical/cadical/src/testing.hpp +24 -0
  147. data/ext/cadical/cadical/src/tier.cpp +189 -0
  148. data/ext/cadical/cadical/src/tracer.hpp +186 -0
  149. data/ext/cadical/cadical/src/transred.cpp +253 -0
  150. data/ext/cadical/cadical/src/unstable.cpp +29 -0
  151. data/ext/cadical/cadical/src/util.cpp +129 -0
  152. data/ext/cadical/cadical/src/util.hpp +181 -0
  153. data/ext/cadical/cadical/src/var.cpp +39 -0
  154. data/ext/cadical/cadical/src/var.hpp +22 -0
  155. data/ext/cadical/cadical/src/veripbtracer.cpp +427 -0
  156. data/ext/cadical/cadical/src/veripbtracer.hpp +106 -0
  157. data/ext/cadical/cadical/src/version.cpp +107 -0
  158. data/ext/cadical/cadical/src/version.hpp +13 -0
  159. data/ext/cadical/cadical/src/vivify.cpp +1893 -0
  160. data/ext/cadical/cadical/src/vivify.hpp +50 -0
  161. data/ext/cadical/cadical/src/walk.cpp +1088 -0
  162. data/ext/cadical/cadical/src/walk.hpp +91 -0
  163. data/ext/cadical/cadical/src/walk_full_occs.cpp +966 -0
  164. data/ext/cadical/cadical/src/warmup.cpp +403 -0
  165. data/ext/cadical/cadical/src/watch.cpp +126 -0
  166. data/ext/cadical/cadical/src/watch.hpp +77 -0
  167. data/ext/cadical/cadical_ext.c +778 -0
  168. data/ext/cadical/extconf.rb +26 -0
  169. data/lib/cadical/version.rb +3 -0
  170. data/lib/cadical.rb +12 -0
  171. metadata +218 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f84fde139dbf6d48d99ca9c0af8eede205596d7c596930659a830d824352f3c0
4
+ data.tar.gz: 5e93a72a594d4ca2a10ede543277a3cf3fc4753eb3076f3ce70f2e67ebda956e
5
+ SHA512:
6
+ metadata.gz: 54dde2e043141394213d5666a6733cdc979400abba48112fc1606e5914b0f45668137f41675fdf2e8be5c92c9010621db94fc45988be93a18362b7f0a7496f4b
7
+ data.tar.gz: 8840576c8452117127df21f20fd840c9142b9f47d75e2255d64e495ff15b68fabeb2f0d64f2330dbf625ec1a21bd02cf1e82875b98a0bd1da82c887f57fbcd0c
data/LICENSE.txt ADDED
@@ -0,0 +1,26 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Yusuke Endoh
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ---
24
+
25
+ This gem bundles the CaDiCaL SAT solver (ext/cadical/cadical/), which is
26
+ distributed under the MIT License. See ext/cadical/cadical/LICENSE.
data/README.md ADDED
@@ -0,0 +1,101 @@
1
+ # cadical
2
+
3
+ A Ruby binding for [CaDiCaL](https://github.com/arminbiere/cadical), a state-of-the-art
4
+ incremental SAT solver. The CaDiCaL C++ sources are vendored and compiled straight into
5
+ the extension, so there is no external dependency.
6
+
7
+ This is a thin, general-purpose binding over CaDiCaL's C API (`ccadical_*`). The Ruby class is
8
+ `CaDiCaL`, and `CaDiCaL.new` creates a solver.
9
+
10
+ ## Installation
11
+
12
+ ```sh
13
+ gem install cadical
14
+ ```
15
+
16
+ Building the extension requires a C++17 compiler.
17
+
18
+ ## Usage
19
+
20
+ A literal is an `Integer` in DIMACS form: positive `v` = "variable `v` is true", `-v` =
21
+ false. A clause is just a list of literals.
22
+
23
+ ```ruby
24
+ require "cadical"
25
+
26
+ c = CaDiCaL.new
27
+ x1, x2 = c.new_var, c.new_var
28
+
29
+ c.add(x1, x2) # (x1 \/ x2)
30
+ c.add(x1, -x2) # (x1 \/ !x2)
31
+ c.add(-x1, -x2) # (!x1 \/ !x2)
32
+
33
+ c.solve # => :sat
34
+ c.true?(x1) # => true
35
+ c.true?(x2) # => false
36
+ ```
37
+
38
+ ### Incremental solving
39
+
40
+ Clauses added with `#add` stay for good, so you can keep solving as you learn more. An
41
+ assumption is a temporary hypothesis for the next `#solve` only -- handy to pose what-if
42
+ questions without rebuilding the formula:
43
+
44
+ ```ruby
45
+ c.assume(-x1) # what if x1 were false?
46
+ c.solve # => :unsat -- the clauses above force x1 true
47
+ c.solve # => :sat again; the assumption is already gone
48
+ ```
49
+
50
+ A constraint is the same idea but a whole clause (a disjunction), at most one at a time:
51
+
52
+ ```ruby
53
+ c.constrain(-x1, x2) # require (!x1 \/ x2) for the next solve only
54
+ c.solve # => :unsat
55
+ c.constraint_failed? # => true -- the constraint is what made it unsat
56
+ ```
57
+
58
+ ## API
59
+
60
+ `CaDiCaL` (every `ccadical_*` function, plus a couple of conveniences)
61
+
62
+ | method | C function | description |
63
+ | --- | --- | --- |
64
+ | `CaDiCaL.signature` | `ccadical_signature` | the bundled CaDiCaL version string |
65
+ | `CaDiCaL.new` | `ccadical_init` | create a solver |
66
+ | `#release` | `ccadical_release` | free the solver now (else at GC) |
67
+ | `#add(*lits)` | `ccadical_add` | add a permanent clause (splat an array: `add(*clause)`) |
68
+ | `#assume(lit)` | `ccadical_assume` | assume a literal for the next `solve` only |
69
+ | `#constrain(*lits)` | `ccadical_constrain` | temporary constraint clause for the next `solve` |
70
+ | `#constraint_failed?` | `ccadical_constraint_failed` | did the constraint cause the last UNSAT? |
71
+ | `#solve` | `ccadical_solve` | solve -> `:sat` / `:unsat` / `:unknown` |
72
+ | `#simplify` | `ccadical_simplify` | inprocessing -> `:sat` / `:unsat` / `:unknown` |
73
+ | `#val(lit)` | `ccadical_val` | raw model value (signed literal) |
74
+ | `#failed(lit)` | `ccadical_failed` | did this assumption take part in the last UNSAT core? |
75
+ | `#fixed(lit)` | `ccadical_fixed` | `1` / `-1` / `0`: proven true / false / not yet fixed |
76
+ | `#set_terminate { }` | `ccadical_set_terminate` | abort `solve` when the block is truthy (no block clears) |
77
+ | `#set_learn(max) { \|clause\| }` | `ccadical_set_learn` | observe learned clauses (no block clears) |
78
+ | `#terminate` | `ccadical_terminate` | force the running solve to stop |
79
+ | `#declare_one_more_variable` | `ccadical_declare_one_more_variable` | allocate one fresh variable |
80
+ | `#declare_more_variables(n)` | `ccadical_declare_more_variables` | allocate `n` variables |
81
+ | `#vars` | `ccadical_vars` | number of variables |
82
+ | `#phase(lit)` / `#unphase(lit)` | `ccadical_phase` / `ccadical_unphase` | set / clear a forced decision phase |
83
+ | `#freeze_lit(lit)` / `#melt_lit(lit)` / `#frozen_lit?(lit)` | `ccadical_freeze` / `_melt` / `_frozen` | freeze a literal against elimination |
84
+ | `#set_option(name, v)` / `#get_option(name)` | `ccadical_set_option` / `_get_option` | options |
85
+ | `#limit(name, v)` | `ccadical_limit` | set a solve limit |
86
+ | `#active` / `#irredundant` | `ccadical_active` / `_irredundant` | active-variable / irredundant-clause counts |
87
+ | `#trace_proof(path)` / `#close_proof` / `#conclude` | `ccadical_trace_proof` / `_close_proof` / `_conclude` | DRAT proof tracing |
88
+ | `#new_var` | -- | alias for `#declare_one_more_variable` |
89
+ | `#true?(lit)` | -- | convenience boolean: is `lit` assigned true? |
90
+ | `#true_var` / `#false_var` | -- | a variable pinned true / false, usable as a constant literal |
91
+
92
+ ## Notes
93
+
94
+ Unlike many SAT-solver APIs where any integer can be used as a literal directly, the bundled
95
+ CaDiCaL (with its defaults) rejects a literal whose variable was not produced by `#new_var`
96
+ (the examples above use it). Set `c.set_option("factor", 0)` to allow raw integer literals.
97
+
98
+ ## License
99
+
100
+ MIT. The bundled CaDiCaL solver (`ext/cadical/cadical/`) is also MIT-licensed; see
101
+ `ext/cadical/cadical/LICENSE`.
@@ -0,0 +1,28 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2016-2021 Armin Biere, Johannes Kepler University Linz, Austria
4
+ Copyright (c) 2020-2021 Mathias Fleury, Johannes Kepler University Linz, Austria
5
+ Copyright (c) 2020-2021 Nils Froleyks, Johannes Kepler University Linz, Austria
6
+ Copyright (c) 2022-2025 Katalin Fazekas, Vienna University of Technology, Austria
7
+ Copyright (c) 2021-2025 Armin Biere, University of Freiburg, Germany
8
+ Copyright (c) 2021-2025 Mathias Fleury, University of Freiburg, Germany
9
+ Copyright (c) 2023-2025 Florian Pollitt, University of Freiburg, Germany
10
+ Copyright (c) 2024-2024 Tobias Faller, University of Freiburg, Germany
11
+
12
+ Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ of this software and associated documentation files (the "Software"), to deal
14
+ in the Software without restriction, including without limitation the rights
15
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
+ copies of the Software, and to permit persons to whom the Software is
17
+ furnished to do so, subject to the following conditions:
18
+
19
+ The above copyright notice and this permission notice shall be included in all
20
+ copies or substantial portions of the Software.
21
+
22
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
+ SOFTWARE.
@@ -0,0 +1,65 @@
1
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
2
+
3
+
4
+ CaDiCaL Simplified Satisfiability Solver
5
+ ===============================================================================
6
+
7
+ The goal of the development of CaDiCaL was to obtain a CDCL solver,
8
+ which is easy to understand and change, while at the same time not being
9
+ much slower than other state-of-the-art CDCL solvers.
10
+
11
+ Originally we wanted to also radically simplify the design and internal data
12
+ structures, but that goal was only achieved partially, at least for instance
13
+ compared to Lingeling.
14
+
15
+ However, the code is much better documented and CaDiCaL actually became in
16
+ general faster than Lingeling even though it is missing some preprocessors
17
+ (mostly parity and cardinality constraint reasoning), which would be crucial
18
+ to solve certain instances.
19
+
20
+ Use `./configure && make` to configure and build `cadical` and the library
21
+ `libcadical.a` in the default `build` sub-directory. The header file of
22
+ the library is [`src/cadical.hpp`](src/cadical.hpp) and includes an example
23
+ for API usage.
24
+
25
+ See [`BUILD.md`](BUILD.md) for options and more details related to the build
26
+ process and [`test/README.md`](test/README.md) for testing the library and
27
+ the solver. Since release 1.5.1 we have a [`NEWS.md`](NEWS.md) file.
28
+ You might also want to check out [`CONTRIBUTING.md`](CONTRIBUTING.md) on
29
+ if you want to contribute.
30
+
31
+ The solver has the following usage `cadical [ dimacs [ proof ] ]`.
32
+ See `cadical -h` for more options.
33
+
34
+ If you want to cite CaDiCaL please use as reference our CaDiCaL 2.0 tool
35
+ paper which appeared at CAV'24:
36
+
37
+ <p>
38
+ <a
39
+ href="https://cca.informatik.uni-freiburg.de/papers/BiereFallerFazekasFleuryFroleyksPollitt-CAV24.pdf">CaDiCaL
40
+ 2.0</a>
41
+ <br>
42
+ <a href="https://cca.informatik.uni-freiburg.de/biere">Armin Biere</a>,
43
+ <a href="https://cca.informatik.uni-freiburg.de/fallert">Tobias Faller</a>,
44
+ <a href="https://kfazekas.github.io">Katalin Fazekas</a>,
45
+ <a href="https://cca.informatik.uni-freiburg.de/fleury">Mathias Fleury</a>,
46
+ <a href="https://fmv.jku.at/froleyks">Nils Froleyks</a> and
47
+ <a href="https://cca.informatik.uni-freiburg.de/pollittf">Florian Pollitt</a>
48
+ <br>
49
+ <i>
50
+ Proc.&nbsp;Computer Aidded Verification - 26th Intl.&nbsp;Conf.&nbsp;(CAV'24)</i>
51
+ <br>
52
+ Lecture Notes in Computer Science (LNCS)
53
+ <br>
54
+ vol.&nbsp;14681,
55
+ pages 133-152,
56
+ Springer 2024
57
+ <br>
58
+ [ <a href="https://cca.informatik.uni-freiburg.de/papers/BiereFallerFazekasFleuryFroleyksPollitt-CAV24.pdf">paper</a>
59
+ | <a href="https://cca.informatik.uni-freiburg.de/papers/BiereFallerFazekasFleuryFroleyksPollitt-CAV24.bib">bibtex</a>
60
+ | <a href="https://cca.informatik.uni-freiburg.de/papers/BiereFallerFazekasFleuryFroleyksPollitt-CAV24-Springer.pdf">official</a>
61
+ | <a href="https://zenodo.org/records/10943125">artifact</a>
62
+ | <a href="https://github.com/arminbiere/cadical">github</a>
63
+ | <a href="https://doi.org/10.1007/978-3-031-37703-7">doi</a>
64
+ ]
65
+ </p>
@@ -0,0 +1 @@
1
+ 3.0.0