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.
Files changed (38) hide show
  1. {cdclkit-0.1.1 → cdclkit-0.1.2}/PKG-INFO +21 -7
  2. {cdclkit-0.1.1 → cdclkit-0.1.2}/README.md +19 -5
  3. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/__init__.py +1 -1
  4. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/PKG-INFO +21 -7
  5. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/requires.txt +1 -1
  6. {cdclkit-0.1.1 → cdclkit-0.1.2}/pyproject.toml +2 -2
  7. {cdclkit-0.1.1 → cdclkit-0.1.2}/LICENSE +0 -0
  8. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/__main__.py +0 -0
  9. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/brute.py +0 -0
  10. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/cli.py +0 -0
  11. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/encodings.py +0 -0
  12. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/heap.py +0 -0
  13. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/model.py +0 -0
  14. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/mus.py +0 -0
  15. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/native.py +0 -0
  16. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/pipeline.py +0 -0
  17. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/portfolio.py +0 -0
  18. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/preprocess.py +0 -0
  19. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/pyeq.py +0 -0
  20. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit/solver.py +0 -0
  21. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/SOURCES.txt +0 -0
  22. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/dependency_links.txt +0 -0
  23. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/entry_points.txt +0 -0
  24. {cdclkit-0.1.1 → cdclkit-0.1.2}/cdclkit.egg-info/top_level.txt +0 -0
  25. {cdclkit-0.1.1 → cdclkit-0.1.2}/setup.cfg +0 -0
  26. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_core.py +0 -0
  27. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_encodings.py +0 -0
  28. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_integration.py +0 -0
  29. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_mus.py +0 -0
  30. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_native.py +0 -0
  31. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_native_solver.py +0 -0
  32. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_packaging.py +0 -0
  33. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_pipeline.py +0 -0
  34. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_portfolio.py +0 -0
  35. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_preprocess.py +0 -0
  36. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_proof.py +0 -0
  37. {cdclkit-0.1.1 → cdclkit-0.1.2}/tests/test_pyeq.py +0 -0
  38. {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.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.1; extra == "native"
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 (`pip install cdclkit[native]`) is roughly 18x faster
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, [`dratify`](https://github.com/carlok/dratify),
90
- which `cdclkit` depends on. That split is deliberate:
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 (`pip install cdclkit[native]`) is roughly 18x faster
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, [`dratify`](https://github.com/carlok/dratify),
61
- which `cdclkit` depends on. That split is deliberate:
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.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.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.1; extra == "native"
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 (`pip install cdclkit[native]`) is roughly 18x faster
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, [`dratify`](https://github.com/carlok/dratify),
90
- which `cdclkit` depends on. That split is deliberate:
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
 
@@ -1,4 +1,4 @@
1
1
  dratify>=0.1.1
2
2
 
3
3
  [native]
4
- cdclkit-native==0.1.1
4
+ cdclkit-native==0.1.2
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cdclkit"
7
- version = "0.1.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.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