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.
- checksums.yaml +7 -0
- data/LICENSE.txt +26 -0
- data/README.md +101 -0
- data/ext/cadical/cadical/LICENSE +28 -0
- data/ext/cadical/cadical/README.md +65 -0
- data/ext/cadical/cadical/VERSION +1 -0
- data/ext/cadical/cadical/src/analyze.cpp +1360 -0
- data/ext/cadical/cadical/src/arena.cpp +30 -0
- data/ext/cadical/cadical/src/arena.hpp +105 -0
- data/ext/cadical/cadical/src/assume.cpp +616 -0
- data/ext/cadical/cadical/src/averages.cpp +34 -0
- data/ext/cadical/cadical/src/averages.hpp +37 -0
- data/ext/cadical/cadical/src/backbone.cpp +631 -0
- data/ext/cadical/cadical/src/backtrack.cpp +177 -0
- data/ext/cadical/cadical/src/backward.cpp +231 -0
- data/ext/cadical/cadical/src/bins.cpp +22 -0
- data/ext/cadical/cadical/src/bins.hpp +22 -0
- data/ext/cadical/cadical/src/block.cpp +824 -0
- data/ext/cadical/cadical/src/block.hpp +37 -0
- data/ext/cadical/cadical/src/cadical.cpp +1026 -0
- data/ext/cadical/cadical/src/cadical.hpp +1419 -0
- data/ext/cadical/cadical/src/ccadical.cpp +208 -0
- data/ext/cadical/cadical/src/ccadical.h +74 -0
- data/ext/cadical/cadical/src/checker.cpp +649 -0
- data/ext/cadical/cadical/src/checker.hpp +173 -0
- data/ext/cadical/cadical/src/clause.cpp +689 -0
- data/ext/cadical/cadical/src/clause.hpp +190 -0
- data/ext/cadical/cadical/src/collect.cpp +545 -0
- data/ext/cadical/cadical/src/compact.cpp +550 -0
- data/ext/cadical/cadical/src/condition.cpp +940 -0
- data/ext/cadical/cadical/src/config.cpp +101 -0
- data/ext/cadical/cadical/src/config.hpp +20 -0
- data/ext/cadical/cadical/src/congruence.cpp +7880 -0
- data/ext/cadical/cadical/src/congruence.hpp +757 -0
- data/ext/cadical/cadical/src/constrain.cpp +64 -0
- data/ext/cadical/cadical/src/contract.cpp +27 -0
- data/ext/cadical/cadical/src/contract.hpp +139 -0
- data/ext/cadical/cadical/src/cover.cpp +704 -0
- data/ext/cadical/cadical/src/cover.hpp +34 -0
- data/ext/cadical/cadical/src/decide.cpp +347 -0
- data/ext/cadical/cadical/src/decompose.cpp +738 -0
- data/ext/cadical/cadical/src/decompose.hpp +23 -0
- data/ext/cadical/cadical/src/deduplicate.cpp +275 -0
- data/ext/cadical/cadical/src/definition.cpp +283 -0
- data/ext/cadical/cadical/src/delay.hpp +38 -0
- data/ext/cadical/cadical/src/drattracer.cpp +153 -0
- data/ext/cadical/cadical/src/drattracer.hpp +55 -0
- data/ext/cadical/cadical/src/elim.cpp +1171 -0
- data/ext/cadical/cadical/src/elim.hpp +53 -0
- data/ext/cadical/cadical/src/elimfast.cpp +570 -0
- data/ext/cadical/cadical/src/ema.cpp +95 -0
- data/ext/cadical/cadical/src/ema.hpp +68 -0
- data/ext/cadical/cadical/src/extend.cpp +289 -0
- data/ext/cadical/cadical/src/external.cpp +1034 -0
- data/ext/cadical/cadical/src/external.hpp +487 -0
- data/ext/cadical/cadical/src/external_propagate.cpp +1316 -0
- data/ext/cadical/cadical/src/factor.cpp +1011 -0
- data/ext/cadical/cadical/src/factor.hpp +54 -0
- data/ext/cadical/cadical/src/file.cpp +506 -0
- data/ext/cadical/cadical/src/file.hpp +210 -0
- data/ext/cadical/cadical/src/flags.cpp +135 -0
- data/ext/cadical/cadical/src/flags.hpp +93 -0
- data/ext/cadical/cadical/src/flip.cpp +269 -0
- data/ext/cadical/cadical/src/format.cpp +89 -0
- data/ext/cadical/cadical/src/format.hpp +36 -0
- data/ext/cadical/cadical/src/frattracer.cpp +277 -0
- data/ext/cadical/cadical/src/frattracer.hpp +67 -0
- data/ext/cadical/cadical/src/gates.cpp +766 -0
- data/ext/cadical/cadical/src/heap.hpp +212 -0
- data/ext/cadical/cadical/src/idruptracer.cpp +566 -0
- data/ext/cadical/cadical/src/idruptracer.hpp +112 -0
- data/ext/cadical/cadical/src/instantiate.cpp +365 -0
- data/ext/cadical/cadical/src/instantiate.hpp +45 -0
- data/ext/cadical/cadical/src/internal.cpp +1265 -0
- data/ext/cadical/cadical/src/internal.hpp +1941 -0
- data/ext/cadical/cadical/src/inttypes.hpp +34 -0
- data/ext/cadical/cadical/src/ipasir.cpp +47 -0
- data/ext/cadical/cadical/src/ipasir.h +37 -0
- data/ext/cadical/cadical/src/kitten.c +2599 -0
- data/ext/cadical/cadical/src/kitten.h +97 -0
- data/ext/cadical/cadical/src/level.hpp +33 -0
- data/ext/cadical/cadical/src/lidruptracer.cpp +657 -0
- data/ext/cadical/cadical/src/lidruptracer.hpp +122 -0
- data/ext/cadical/cadical/src/limit.cpp +146 -0
- data/ext/cadical/cadical/src/limit.hpp +168 -0
- data/ext/cadical/cadical/src/logging.cpp +214 -0
- data/ext/cadical/cadical/src/logging.hpp +98 -0
- data/ext/cadical/cadical/src/lookahead.cpp +520 -0
- data/ext/cadical/cadical/src/lratchecker.cpp +833 -0
- data/ext/cadical/cadical/src/lratchecker.hpp +168 -0
- data/ext/cadical/cadical/src/lrattracer.cpp +200 -0
- data/ext/cadical/cadical/src/lrattracer.hpp +61 -0
- data/ext/cadical/cadical/src/lucky.cpp +506 -0
- data/ext/cadical/cadical/src/message.cpp +218 -0
- data/ext/cadical/cadical/src/message.hpp +65 -0
- data/ext/cadical/cadical/src/minimize.cpp +224 -0
- data/ext/cadical/cadical/src/mobical.cpp +5588 -0
- data/ext/cadical/cadical/src/occs.cpp +52 -0
- data/ext/cadical/cadical/src/occs.hpp +36 -0
- data/ext/cadical/cadical/src/options.cpp +359 -0
- data/ext/cadical/cadical/src/options.hpp +442 -0
- data/ext/cadical/cadical/src/parse.cpp +471 -0
- data/ext/cadical/cadical/src/parse.hpp +75 -0
- data/ext/cadical/cadical/src/phases.cpp +56 -0
- data/ext/cadical/cadical/src/phases.hpp +19 -0
- data/ext/cadical/cadical/src/probe.cpp +990 -0
- data/ext/cadical/cadical/src/profile.cpp +107 -0
- data/ext/cadical/cadical/src/profile.hpp +283 -0
- data/ext/cadical/cadical/src/proof.cpp +691 -0
- data/ext/cadical/cadical/src/proof.hpp +125 -0
- data/ext/cadical/cadical/src/propagate.cpp +584 -0
- data/ext/cadical/cadical/src/queue.cpp +90 -0
- data/ext/cadical/cadical/src/queue.hpp +74 -0
- data/ext/cadical/cadical/src/radix.hpp +180 -0
- data/ext/cadical/cadical/src/random.cpp +207 -0
- data/ext/cadical/cadical/src/random.h +44 -0
- data/ext/cadical/cadical/src/random.hpp +98 -0
- data/ext/cadical/cadical/src/range.hpp +125 -0
- data/ext/cadical/cadical/src/reap.cpp +127 -0
- data/ext/cadical/cadical/src/reap.hpp +28 -0
- data/ext/cadical/cadical/src/reduce.cpp +278 -0
- data/ext/cadical/cadical/src/reluctant.hpp +82 -0
- data/ext/cadical/cadical/src/rephase.cpp +402 -0
- data/ext/cadical/cadical/src/report.cpp +313 -0
- data/ext/cadical/cadical/src/resources.cpp +160 -0
- data/ext/cadical/cadical/src/resources.hpp +16 -0
- data/ext/cadical/cadical/src/restart.cpp +178 -0
- data/ext/cadical/cadical/src/restore.cpp +267 -0
- data/ext/cadical/cadical/src/score.cpp +51 -0
- data/ext/cadical/cadical/src/score.hpp +16 -0
- data/ext/cadical/cadical/src/shrink.cpp +507 -0
- data/ext/cadical/cadical/src/signal.cpp +136 -0
- data/ext/cadical/cadical/src/signal.hpp +33 -0
- data/ext/cadical/cadical/src/solution.cpp +50 -0
- data/ext/cadical/cadical/src/solver.cpp +1871 -0
- data/ext/cadical/cadical/src/stable.cpp +31 -0
- data/ext/cadical/cadical/src/stack.h +110 -0
- data/ext/cadical/cadical/src/stats.cpp +920 -0
- data/ext/cadical/cadical/src/stats.hpp +418 -0
- data/ext/cadical/cadical/src/subsume.cpp +645 -0
- data/ext/cadical/cadical/src/sweep.cpp +1960 -0
- data/ext/cadical/cadical/src/sweep.hpp +61 -0
- data/ext/cadical/cadical/src/terminal.cpp +38 -0
- data/ext/cadical/cadical/src/terminal.hpp +96 -0
- data/ext/cadical/cadical/src/ternary.cpp +450 -0
- data/ext/cadical/cadical/src/testing.hpp +24 -0
- data/ext/cadical/cadical/src/tier.cpp +189 -0
- data/ext/cadical/cadical/src/tracer.hpp +186 -0
- data/ext/cadical/cadical/src/transred.cpp +253 -0
- data/ext/cadical/cadical/src/unstable.cpp +29 -0
- data/ext/cadical/cadical/src/util.cpp +129 -0
- data/ext/cadical/cadical/src/util.hpp +181 -0
- data/ext/cadical/cadical/src/var.cpp +39 -0
- data/ext/cadical/cadical/src/var.hpp +22 -0
- data/ext/cadical/cadical/src/veripbtracer.cpp +427 -0
- data/ext/cadical/cadical/src/veripbtracer.hpp +106 -0
- data/ext/cadical/cadical/src/version.cpp +107 -0
- data/ext/cadical/cadical/src/version.hpp +13 -0
- data/ext/cadical/cadical/src/vivify.cpp +1893 -0
- data/ext/cadical/cadical/src/vivify.hpp +50 -0
- data/ext/cadical/cadical/src/walk.cpp +1088 -0
- data/ext/cadical/cadical/src/walk.hpp +91 -0
- data/ext/cadical/cadical/src/walk_full_occs.cpp +966 -0
- data/ext/cadical/cadical/src/warmup.cpp +403 -0
- data/ext/cadical/cadical/src/watch.cpp +126 -0
- data/ext/cadical/cadical/src/watch.hpp +77 -0
- data/ext/cadical/cadical_ext.c +778 -0
- data/ext/cadical/extconf.rb +26 -0
- data/lib/cadical/version.rb +3 -0
- data/lib/cadical.rb +12 -0
- metadata +218 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#ifndef _kitten_h_INCLUDED
|
|
2
|
+
#define _kitten_h_INCLUDED
|
|
3
|
+
|
|
4
|
+
#include <stdbool.h>
|
|
5
|
+
#include <stdint.h>
|
|
6
|
+
#include <stdio.h>
|
|
7
|
+
#include <stdlib.h>
|
|
8
|
+
|
|
9
|
+
#ifdef __cplusplus
|
|
10
|
+
extern "C" {
|
|
11
|
+
#endif
|
|
12
|
+
|
|
13
|
+
typedef struct kitten kitten;
|
|
14
|
+
|
|
15
|
+
kitten *kitten_init (void);
|
|
16
|
+
void kitten_clear (kitten *);
|
|
17
|
+
void kitten_release (kitten *);
|
|
18
|
+
|
|
19
|
+
#ifdef LOGGING
|
|
20
|
+
void kitten_set_logging (kitten *kitten);
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
void kitten_track_antecedents (kitten *);
|
|
24
|
+
|
|
25
|
+
void kitten_shuffle_clauses (kitten *);
|
|
26
|
+
void kitten_flip_phases (kitten *);
|
|
27
|
+
void kitten_randomize_phases (kitten *);
|
|
28
|
+
|
|
29
|
+
void kitten_assume (kitten *, unsigned lit);
|
|
30
|
+
void kitten_assume_signed (kitten *, int lit);
|
|
31
|
+
|
|
32
|
+
void kitten_clause (kitten *, size_t size, unsigned *);
|
|
33
|
+
void citten_clause_with_id (kitten *, unsigned id, size_t size, int *);
|
|
34
|
+
void kitten_unit (kitten *, unsigned);
|
|
35
|
+
void kitten_binary (kitten *, unsigned, unsigned);
|
|
36
|
+
|
|
37
|
+
void kitten_clause_with_id_and_exception (kitten *, unsigned id,
|
|
38
|
+
size_t size, const unsigned *,
|
|
39
|
+
unsigned except);
|
|
40
|
+
|
|
41
|
+
void citten_clause_with_id_and_exception (kitten *, unsigned id,
|
|
42
|
+
size_t size, const int *,
|
|
43
|
+
unsigned except);
|
|
44
|
+
void citten_clause_with_id_and_equivalence (kitten *, unsigned id,
|
|
45
|
+
size_t size, const int *,
|
|
46
|
+
unsigned, unsigned);
|
|
47
|
+
void kitten_no_ticks_limit (kitten *);
|
|
48
|
+
void kitten_set_ticks_limit (kitten *, uint64_t);
|
|
49
|
+
uint64_t kitten_current_ticks (kitten *);
|
|
50
|
+
|
|
51
|
+
void kitten_no_terminator (kitten *);
|
|
52
|
+
void kitten_set_terminator (kitten *, void *, int (*) (void *));
|
|
53
|
+
|
|
54
|
+
int kitten_solve (kitten *);
|
|
55
|
+
int kitten_status (kitten *);
|
|
56
|
+
|
|
57
|
+
signed char kitten_value (kitten *, unsigned);
|
|
58
|
+
signed char kitten_signed_value (kitten *, int); // converts second argument
|
|
59
|
+
signed char kitten_fixed (kitten *, unsigned);
|
|
60
|
+
signed char kitten_fixed_signed (kitten *, int); // converts
|
|
61
|
+
bool kitten_failed (kitten *, unsigned);
|
|
62
|
+
bool kitten_flip_literal (kitten *, unsigned);
|
|
63
|
+
bool kitten_flip_signed_literal (kitten *, int);
|
|
64
|
+
|
|
65
|
+
unsigned kitten_compute_clausal_core (kitten *, uint64_t *learned);
|
|
66
|
+
void kitten_shrink_to_clausal_core (kitten *);
|
|
67
|
+
|
|
68
|
+
void kitten_traverse_core_ids (kitten *, void *state,
|
|
69
|
+
void (*traverse) (void *state, unsigned id));
|
|
70
|
+
|
|
71
|
+
void kitten_traverse_core_clauses (kitten *, void *state,
|
|
72
|
+
void (*traverse) (void *state,
|
|
73
|
+
bool learned, size_t,
|
|
74
|
+
const unsigned *));
|
|
75
|
+
void kitten_traverse_core_clauses_with_id (
|
|
76
|
+
kitten *, void *state,
|
|
77
|
+
void (*traverse) (void *state, unsigned, bool learned, size_t,
|
|
78
|
+
const unsigned *));
|
|
79
|
+
void kitten_trace_core (kitten *, void *state,
|
|
80
|
+
void (*trace) (void *, unsigned, unsigned, bool,
|
|
81
|
+
size_t, const unsigned *, size_t,
|
|
82
|
+
const unsigned *));
|
|
83
|
+
|
|
84
|
+
int kitten_compute_prime_implicant (kitten *kitten, void *state,
|
|
85
|
+
bool (*ignore) (void *, unsigned));
|
|
86
|
+
|
|
87
|
+
void kitten_add_prime_implicant (kitten *kitten, void *state, int side,
|
|
88
|
+
void (*add_implicant) (void *, int, size_t,
|
|
89
|
+
const unsigned *));
|
|
90
|
+
|
|
91
|
+
int kitten_flip_and_implicant_for_signed_literal (kitten *kitten, int elit);
|
|
92
|
+
|
|
93
|
+
#ifdef __cplusplus
|
|
94
|
+
}
|
|
95
|
+
#endif
|
|
96
|
+
|
|
97
|
+
#endif
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#ifndef _level_hpp_INCLUDED
|
|
2
|
+
#define _level_hpp_INCLUDED
|
|
3
|
+
|
|
4
|
+
#include <climits>
|
|
5
|
+
|
|
6
|
+
namespace CaDiCaL {
|
|
7
|
+
|
|
8
|
+
// For each new decision we increase the decision level and push a 'Level'
|
|
9
|
+
// on the 'control' stack. The information gathered here is used in
|
|
10
|
+
// 'reuse_trail' and for early aborts in clause minimization.
|
|
11
|
+
|
|
12
|
+
struct Level {
|
|
13
|
+
|
|
14
|
+
int decision; // decision literal of this level
|
|
15
|
+
int trail; // trail start of this level
|
|
16
|
+
|
|
17
|
+
struct {
|
|
18
|
+
int count; // how many variables seen during 'analyze'
|
|
19
|
+
int trail; // smallest trail position seen on this level
|
|
20
|
+
} seen;
|
|
21
|
+
|
|
22
|
+
void reset () {
|
|
23
|
+
seen.count = 0;
|
|
24
|
+
seen.trail = INT_MAX;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
Level (int d, int t) : decision (d), trail (t) { reset (); }
|
|
28
|
+
Level () {}
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
} // namespace CaDiCaL
|
|
32
|
+
|
|
33
|
+
#endif
|