cdclkit 0.1.1__tar.gz → 0.1.2__tar.gz
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.
- {cdclkit-0.1.1 → cdclkit-0.1.2}/PKG-INFO +21 -7
- {cdclkit-0.1.1 → cdclkit-0.1.2}/README.md +19 -5
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/__init__.py +1 -1
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/PKG-INFO +21 -7
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/requires.txt +1 -1
- {cdclkit-0.1.1 → cdclkit-0.1.2}/pyproject.toml +2 -2
- {cdclkit-0.1.1 → cdclkit-0.1.2}/LICENSE +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/__main__.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/brute.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/cli.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/encodings.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/heap.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/model.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/mus.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/native.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/pipeline.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/portfolio.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/preprocess.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/pyeq.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/solver.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/SOURCES.txt +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/dependency_links.txt +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/entry_points.txt +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/top_level.txt +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/setup.cfg +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_core.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_encodings.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_integration.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_mus.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_native.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_native_solver.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_packaging.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_pipeline.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_portfolio.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_preprocess.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_proof.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_pyeq.py +0 -0
- {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_solver.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cdclkit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: A CDCL SAT solver, preprocessor, encoding library and modelling layer, written from scratch in readable Python. Every answer comes with a certificate.
|
|
5
5
|
Author: Carlo Perassi
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -24,7 +24,7 @@ Description-Content-Type: text/markdown
|
|
|
24
24
|
License-File: LICENSE
|
|
25
25
|
Requires-Dist: dratify>=0.1.1
|
|
26
26
|
Provides-Extra: native
|
|
27
|
-
Requires-Dist: cdclkit-native==0.1.
|
|
27
|
+
Requires-Dist: cdclkit-native==0.1.2; extra == "native"
|
|
28
28
|
Dynamic: license-file
|
|
29
29
|
|
|
30
30
|
# cdclkit
|
|
@@ -35,9 +35,17 @@ library and a modelling layer — written from scratch in readable Python.**
|
|
|
35
35
|
Every answer comes with a certificate, and the certificate gets checked.
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
pip install cdclkit
|
|
38
|
+
pip install cdclkit # pure Python
|
|
39
|
+
pip install "cdclkit[native]" # plus the Rust engine, ~18x faster
|
|
39
40
|
```
|
|
40
41
|
|
|
42
|
+
Three packages, and no third-party code:
|
|
43
|
+
[`cdclkit`](https://pypi.org/project/cdclkit/),
|
|
44
|
+
[`dratify`](https://pypi.org/project/dratify/) (the proof checker, zero
|
|
45
|
+
dependencies), and optionally
|
|
46
|
+
[`cdclkit-native`](https://pypi.org/project/cdclkit-native/) (abi3 wheels for
|
|
47
|
+
Linux and macOS).
|
|
48
|
+
|
|
41
49
|
```bash
|
|
42
50
|
python3 -m cdclkit solve instance.cnf --self-check --check-model
|
|
43
51
|
```
|
|
@@ -79,15 +87,19 @@ puzzle, graph colouring, bounded model checking, circuit equivalence.
|
|
|
79
87
|
| `portfolio` | parallel configurations |
|
|
80
88
|
| `pyeq` | **experimental** — bounded equivalence of two Python integer functions |
|
|
81
89
|
|
|
82
|
-
An optional Rust engine (`
|
|
90
|
+
An optional Rust engine ([`cdclkit-native`](https://pypi.org/project/cdclkit-native/))
|
|
91
|
+
is roughly 18x faster
|
|
83
92
|
and **bit-exact** with the Python one: identical conflicts, decisions and
|
|
84
93
|
propagations on every instance. The pure-Python path has zero third-party
|
|
85
94
|
dependencies and is the one that must never break.
|
|
86
95
|
|
|
87
96
|
## Relationship to dratify
|
|
88
97
|
|
|
89
|
-
Proof checking lives in a separate package,
|
|
90
|
-
|
|
98
|
+
Proof checking lives in a separate package,
|
|
99
|
+
[`dratify`](https://pypi.org/project/dratify/)
|
|
100
|
+
([source](https://github.com/carlok/dratify), also a
|
|
101
|
+
[Rust crate](https://crates.io/crates/dratify)), which `cdclkit` depends on.
|
|
102
|
+
That split is deliberate:
|
|
91
103
|
|
|
92
104
|
- You should not have to install a SAT solver to verify a proof someone else
|
|
93
105
|
produced.
|
|
@@ -96,7 +108,9 @@ which `cdclkit` depends on. That split is deliberate:
|
|
|
96
108
|
solver rather than only by its own suite.
|
|
97
109
|
|
|
98
110
|
`dratify` has no dependencies of its own, so installing `cdclkit` pulls in no
|
|
99
|
-
third-party code.
|
|
111
|
+
third-party code. With `[native]`, `cdclkit-native` hands its compiled checker
|
|
112
|
+
to `dratify` through `register_native()`, so proof checking gets the Rust
|
|
113
|
+
implementation too rather than only the solver.
|
|
100
114
|
|
|
101
115
|
## Performance
|
|
102
116
|
|
|
@@ -6,9 +6,17 @@ library and a modelling layer — written from scratch in readable Python.**
|
|
|
6
6
|
Every answer comes with a certificate, and the certificate gets checked.
|
|
7
7
|
|
|
8
8
|
```bash
|
|
9
|
-
pip install cdclkit
|
|
9
|
+
pip install cdclkit # pure Python
|
|
10
|
+
pip install "cdclkit[native]" # plus the Rust engine, ~18x faster
|
|
10
11
|
```
|
|
11
12
|
|
|
13
|
+
Three packages, and no third-party code:
|
|
14
|
+
[`cdclkit`](https://pypi.org/project/cdclkit/),
|
|
15
|
+
[`dratify`](https://pypi.org/project/dratify/) (the proof checker, zero
|
|
16
|
+
dependencies), and optionally
|
|
17
|
+
[`cdclkit-native`](https://pypi.org/project/cdclkit-native/) (abi3 wheels for
|
|
18
|
+
Linux and macOS).
|
|
19
|
+
|
|
12
20
|
```bash
|
|
13
21
|
python3 -m cdclkit solve instance.cnf --self-check --check-model
|
|
14
22
|
```
|
|
@@ -50,15 +58,19 @@ puzzle, graph colouring, bounded model checking, circuit equivalence.
|
|
|
50
58
|
| `portfolio` | parallel configurations |
|
|
51
59
|
| `pyeq` | **experimental** — bounded equivalence of two Python integer functions |
|
|
52
60
|
|
|
53
|
-
An optional Rust engine (`
|
|
61
|
+
An optional Rust engine ([`cdclkit-native`](https://pypi.org/project/cdclkit-native/))
|
|
62
|
+
is roughly 18x faster
|
|
54
63
|
and **bit-exact** with the Python one: identical conflicts, decisions and
|
|
55
64
|
propagations on every instance. The pure-Python path has zero third-party
|
|
56
65
|
dependencies and is the one that must never break.
|
|
57
66
|
|
|
58
67
|
## Relationship to dratify
|
|
59
68
|
|
|
60
|
-
Proof checking lives in a separate package,
|
|
61
|
-
|
|
69
|
+
Proof checking lives in a separate package,
|
|
70
|
+
[`dratify`](https://pypi.org/project/dratify/)
|
|
71
|
+
([source](https://github.com/carlok/dratify), also a
|
|
72
|
+
[Rust crate](https://crates.io/crates/dratify)), which `cdclkit` depends on.
|
|
73
|
+
That split is deliberate:
|
|
62
74
|
|
|
63
75
|
- You should not have to install a SAT solver to verify a proof someone else
|
|
64
76
|
produced.
|
|
@@ -67,7 +79,9 @@ which `cdclkit` depends on. That split is deliberate:
|
|
|
67
79
|
solver rather than only by its own suite.
|
|
68
80
|
|
|
69
81
|
`dratify` has no dependencies of its own, so installing `cdclkit` pulls in no
|
|
70
|
-
third-party code.
|
|
82
|
+
third-party code. With `[native]`, `cdclkit-native` hands its compiled checker
|
|
83
|
+
to `dratify` through `register_native()`, so proof checking gets the Rust
|
|
84
|
+
implementation too rather than only the solver.
|
|
71
85
|
|
|
72
86
|
## Performance
|
|
73
87
|
|
|
@@ -52,7 +52,7 @@ from .preprocess import Preprocessor, preprocess
|
|
|
52
52
|
from dratify.proof import DRATChecker, MemoryProof, ProofWriter, check_proof
|
|
53
53
|
from .solver import Config, SAT, Solver, Stats, UNKNOWN, UNSAT
|
|
54
54
|
|
|
55
|
-
__version__ = "0.1.
|
|
55
|
+
__version__ = "0.1.2"
|
|
56
56
|
|
|
57
57
|
__all__ = [
|
|
58
58
|
"CNF",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cdclkit
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: A CDCL SAT solver, preprocessor, encoding library and modelling layer, written from scratch in readable Python. Every answer comes with a certificate.
|
|
5
5
|
Author: Carlo Perassi
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -24,7 +24,7 @@ Description-Content-Type: text/markdown
|
|
|
24
24
|
License-File: LICENSE
|
|
25
25
|
Requires-Dist: dratify>=0.1.1
|
|
26
26
|
Provides-Extra: native
|
|
27
|
-
Requires-Dist: cdclkit-native==0.1.
|
|
27
|
+
Requires-Dist: cdclkit-native==0.1.2; extra == "native"
|
|
28
28
|
Dynamic: license-file
|
|
29
29
|
|
|
30
30
|
# cdclkit
|
|
@@ -35,9 +35,17 @@ library and a modelling layer — written from scratch in readable Python.**
|
|
|
35
35
|
Every answer comes with a certificate, and the certificate gets checked.
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
pip install cdclkit
|
|
38
|
+
pip install cdclkit # pure Python
|
|
39
|
+
pip install "cdclkit[native]" # plus the Rust engine, ~18x faster
|
|
39
40
|
```
|
|
40
41
|
|
|
42
|
+
Three packages, and no third-party code:
|
|
43
|
+
[`cdclkit`](https://pypi.org/project/cdclkit/),
|
|
44
|
+
[`dratify`](https://pypi.org/project/dratify/) (the proof checker, zero
|
|
45
|
+
dependencies), and optionally
|
|
46
|
+
[`cdclkit-native`](https://pypi.org/project/cdclkit-native/) (abi3 wheels for
|
|
47
|
+
Linux and macOS).
|
|
48
|
+
|
|
41
49
|
```bash
|
|
42
50
|
python3 -m cdclkit solve instance.cnf --self-check --check-model
|
|
43
51
|
```
|
|
@@ -79,15 +87,19 @@ puzzle, graph colouring, bounded model checking, circuit equivalence.
|
|
|
79
87
|
| `portfolio` | parallel configurations |
|
|
80
88
|
| `pyeq` | **experimental** — bounded equivalence of two Python integer functions |
|
|
81
89
|
|
|
82
|
-
An optional Rust engine (`
|
|
90
|
+
An optional Rust engine ([`cdclkit-native`](https://pypi.org/project/cdclkit-native/))
|
|
91
|
+
is roughly 18x faster
|
|
83
92
|
and **bit-exact** with the Python one: identical conflicts, decisions and
|
|
84
93
|
propagations on every instance. The pure-Python path has zero third-party
|
|
85
94
|
dependencies and is the one that must never break.
|
|
86
95
|
|
|
87
96
|
## Relationship to dratify
|
|
88
97
|
|
|
89
|
-
Proof checking lives in a separate package,
|
|
90
|
-
|
|
98
|
+
Proof checking lives in a separate package,
|
|
99
|
+
[`dratify`](https://pypi.org/project/dratify/)
|
|
100
|
+
([source](https://github.com/carlok/dratify), also a
|
|
101
|
+
[Rust crate](https://crates.io/crates/dratify)), which `cdclkit` depends on.
|
|
102
|
+
That split is deliberate:
|
|
91
103
|
|
|
92
104
|
- You should not have to install a SAT solver to verify a proof someone else
|
|
93
105
|
produced.
|
|
@@ -96,7 +108,9 @@ which `cdclkit` depends on. That split is deliberate:
|
|
|
96
108
|
solver rather than only by its own suite.
|
|
97
109
|
|
|
98
110
|
`dratify` has no dependencies of its own, so installing `cdclkit` pulls in no
|
|
99
|
-
third-party code.
|
|
111
|
+
third-party code. With `[native]`, `cdclkit-native` hands its compiled checker
|
|
112
|
+
to `dratify` through `register_native()`, so proof checking gets the Rust
|
|
113
|
+
implementation too rather than only the solver.
|
|
100
114
|
|
|
101
115
|
## Performance
|
|
102
116
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cdclkit"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.2"
|
|
8
8
|
description = "A CDCL SAT solver, preprocessor, encoding library and modelling layer, written from scratch in readable Python. Every answer comes with a certificate."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -35,7 +35,7 @@ dependencies = ["dratify>=0.1.1"]
|
|
|
35
35
|
# The Rust accelerator, as abi3 wheels for Linux and macOS. Pinned exactly:
|
|
36
36
|
# the two are bit-exact by construction and a mismatched pair is a divergence
|
|
37
37
|
# nobody would look for. tests/test_packaging.py enforces the pin.
|
|
38
|
-
native = ["cdclkit-native==0.1.
|
|
38
|
+
native = ["cdclkit-native==0.1.2"]
|
|
39
39
|
|
|
40
40
|
[project.scripts]
|
|
41
41
|
cdclkit = "cdclkit.__main__:main"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|