unicode-logic-kit 0.31.0__py3-none-any.whl

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 (237) hide show
  1. unicode_logic_kit/__init__.py +385 -0
  2. unicode_logic_kit/__main__.py +520 -0
  3. unicode_logic_kit/_deadline.py +219 -0
  4. unicode_logic_kit/ace/__init__.py +126 -0
  5. unicode_logic_kit/ace/_align.py +135 -0
  6. unicode_logic_kit/ace/chem_lexicon.py +128 -0
  7. unicode_logic_kit/ace/drs_reader.py +570 -0
  8. unicode_logic_kit/ace/mapping.py +666 -0
  9. unicode_logic_kit/ace/reverse_modal.py +138 -0
  10. unicode_logic_kit/ace/runner.py +551 -0
  11. unicode_logic_kit/ace/translate.py +452 -0
  12. unicode_logic_kit/ace/verbalize.py +1070 -0
  13. unicode_logic_kit/api.py +1284 -0
  14. unicode_logic_kit/atp/__init__.py +177 -0
  15. unicode_logic_kit/atp/_ascii_names.py +113 -0
  16. unicode_logic_kit/atp/_html.py +72 -0
  17. unicode_logic_kit/atp/_substructural_input.py +228 -0
  18. unicode_logic_kit/atp/_tff_problem.py +715 -0
  19. unicode_logic_kit/atp/_tptp_problem.py +1111 -0
  20. unicode_logic_kit/atp/_writer_support.py +289 -0
  21. unicode_logic_kit/atp/clingo_backend.py +1180 -0
  22. unicode_logic_kit/atp/cvc5_backend.py +1385 -0
  23. unicode_logic_kit/atp/eprover_backend.py +732 -0
  24. unicode_logic_kit/atp/finite_domain.py +1055 -0
  25. unicode_logic_kit/atp/fitch.py +1547 -0
  26. unicode_logic_kit/atp/fitch_search.py +551 -0
  27. unicode_logic_kit/atp/hets_backend.py +339 -0
  28. unicode_logic_kit/atp/hybrid_down.py +120 -0
  29. unicode_logic_kit/atp/incremental.py +250 -0
  30. unicode_logic_kit/atp/kripke_enum.py +741 -0
  31. unicode_logic_kit/atp/lambek.py +436 -0
  32. unicode_logic_kit/atp/leo3_backend.py +332 -0
  33. unicode_logic_kit/atp/linear.py +738 -0
  34. unicode_logic_kit/atp/lj.py +705 -0
  35. unicode_logic_kit/atp/logic_backends.py +566 -0
  36. unicode_logic_kit/atp/ltl_tableau.py +1084 -0
  37. unicode_logic_kit/atp/minizinc_backend.py +1402 -0
  38. unicode_logic_kit/atp/modal_tableau.py +1382 -0
  39. unicode_logic_kit/atp/nanocop_backend.py +410 -0
  40. unicode_logic_kit/atp/portfolio.py +489 -0
  41. unicode_logic_kit/atp/protocol.py +1803 -0
  42. unicode_logic_kit/atp/prover9_entailment.py +1153 -0
  43. unicode_logic_kit/atp/resolution.py +1376 -0
  44. unicode_logic_kit/atp/resolution_check.py +1114 -0
  45. unicode_logic_kit/atp/sequent.py +1050 -0
  46. unicode_logic_kit/atp/tableau.py +921 -0
  47. unicode_logic_kit/atp/tableau_check.py +543 -0
  48. unicode_logic_kit/atp/tptp_ncl.py +811 -0
  49. unicode_logic_kit/atp/tptp_tff.py +1546 -0
  50. unicode_logic_kit/atp/tstp.py +1333 -0
  51. unicode_logic_kit/atp/tstp_check.py +1096 -0
  52. unicode_logic_kit/atp/twee_backend.py +236 -0
  53. unicode_logic_kit/atp/twee_check.py +711 -0
  54. unicode_logic_kit/atp/twee_entailment.py +953 -0
  55. unicode_logic_kit/atp/vampire_entailment.py +540 -0
  56. unicode_logic_kit/atp/z3_arith.py +470 -0
  57. unicode_logic_kit/atp/z3_equivalence.py +36 -0
  58. unicode_logic_kit/atp/z3_fuzzy.py +362 -0
  59. unicode_logic_kit/atp/z3_input.py +500 -0
  60. unicode_logic_kit/atp/z3_models.py +208 -0
  61. unicode_logic_kit/chem/__init__.py +88 -0
  62. unicode_logic_kit/chem/_naming.py +284 -0
  63. unicode_logic_kit/chem/cache.py +185 -0
  64. unicode_logic_kit/chem/interop.py +244 -0
  65. unicode_logic_kit/chem/mol.py +525 -0
  66. unicode_logic_kit/chem/signature.py +112 -0
  67. unicode_logic_kit/comorphism.py +497 -0
  68. unicode_logic_kit/dl/__init__.py +384 -0
  69. unicode_logic_kit/dl/classification.py +227 -0
  70. unicode_logic_kit/dl/concepts.py +632 -0
  71. unicode_logic_kit/dl/datatypes.py +818 -0
  72. unicode_logic_kit/dl/owl_functional.py +2433 -0
  73. unicode_logic_kit/dl/owl_manchester.py +1637 -0
  74. unicode_logic_kit/dl/owl_reasoner.py +790 -0
  75. unicode_logic_kit/dl/parser.py +391 -0
  76. unicode_logic_kit/dl/tableau.py +4048 -0
  77. unicode_logic_kit/dl/translate.py +2704 -0
  78. unicode_logic_kit/drt/__init__.py +94 -0
  79. unicode_logic_kit/drt/export.py +179 -0
  80. unicode_logic_kit/drt/nodes.py +506 -0
  81. unicode_logic_kit/drt/parser.py +965 -0
  82. unicode_logic_kit/drt/resolve.py +195 -0
  83. unicode_logic_kit/drt/reverse.py +175 -0
  84. unicode_logic_kit/eval/__init__.py +106 -0
  85. unicode_logic_kit/eval/batch.py +382 -0
  86. unicode_logic_kit/eval/canonical.py +663 -0
  87. unicode_logic_kit/eval/chem_batch.py +606 -0
  88. unicode_logic_kit/eval/converses.py +200 -0
  89. unicode_logic_kit/eval/datasets/__init__.py +136 -0
  90. unicode_logic_kit/eval/datasets/_base.py +263 -0
  91. unicode_logic_kit/eval/datasets/_proofwriter_proof.py +422 -0
  92. unicode_logic_kit/eval/datasets/c3po.py +678 -0
  93. unicode_logic_kit/eval/datasets/folio.py +158 -0
  94. unicode_logic_kit/eval/datasets/fracas.py +418 -0
  95. unicode_logic_kit/eval/datasets/groves.py +191 -0
  96. unicode_logic_kit/eval/datasets/logicbench.py +467 -0
  97. unicode_logic_kit/eval/datasets/logicnli.py +303 -0
  98. unicode_logic_kit/eval/datasets/malls.py +133 -0
  99. unicode_logic_kit/eval/datasets/pfolio.py +594 -0
  100. unicode_logic_kit/eval/datasets/pmb.py +242 -0
  101. unicode_logic_kit/eval/datasets/prontoqa.py +611 -0
  102. unicode_logic_kit/eval/datasets/proofwriter.py +1431 -0
  103. unicode_logic_kit/eval/datasets/proverqa.py +674 -0
  104. unicode_logic_kit/eval/datasets/willow.py +478 -0
  105. unicode_logic_kit/eval/equivalence.py +466 -0
  106. unicode_logic_kit/eval/exercise_gen.py +533 -0
  107. unicode_logic_kit/eval/explain.py +791 -0
  108. unicode_logic_kit/eval/generality.py +750 -0
  109. unicode_logic_kit/eval/metric_hf.py +458 -0
  110. unicode_logic_kit/eval/predicate_match.py +343 -0
  111. unicode_logic_kit/eval/theory_check.py +1170 -0
  112. unicode_logic_kit/eval/validate.py +306 -0
  113. unicode_logic_kit/fol/__init__.py +177 -0
  114. unicode_logic_kit/fol/_atom_keys.py +510 -0
  115. unicode_logic_kit/fol/_fol_nodes.py +3586 -0
  116. unicode_logic_kit/fol/_free_parameters.py +105 -0
  117. unicode_logic_kit/fol/_ho_nodes.py +448 -0
  118. unicode_logic_kit/fol/_hybrid_nodes.py +308 -0
  119. unicode_logic_kit/fol/_identifiers.py +1091 -0
  120. unicode_logic_kit/fol/_lambek_nodes.py +112 -0
  121. unicode_logic_kit/fol/_linear_nodes.py +352 -0
  122. unicode_logic_kit/fol/_modal_nodes.py +1467 -0
  123. unicode_logic_kit/fol/_msfl_nodes.py +2196 -0
  124. unicode_logic_kit/fol/_numeral_symbols.py +231 -0
  125. unicode_logic_kit/fol/_so_nodes.py +200 -0
  126. unicode_logic_kit/fol/_symbol_names.py +81 -0
  127. unicode_logic_kit/fol/_team_nodes.py +181 -0
  128. unicode_logic_kit/fol/_tptp_symbols.py +551 -0
  129. unicode_logic_kit/fol/_truth_constants.py +117 -0
  130. unicode_logic_kit/fol/casl_export.py +1135 -0
  131. unicode_logic_kit/fol/casl_import.py +929 -0
  132. unicode_logic_kit/fol/derivation.py +367 -0
  133. unicode_logic_kit/fol/dialect_detect.py +70 -0
  134. unicode_logic_kit/fol/dialect_repair.py +537 -0
  135. unicode_logic_kit/fol/frames.py +637 -0
  136. unicode_logic_kit/fol/grammars/terminals.lark +31 -0
  137. unicode_logic_kit/fol/lambda_tools.py +297 -0
  138. unicode_logic_kit/fol/latex_input.py +429 -0
  139. unicode_logic_kit/fol/modal_translation.py +944 -0
  140. unicode_logic_kit/fol/msflparser.py +1033 -0
  141. unicode_logic_kit/fol/naming.py +422 -0
  142. unicode_logic_kit/fol/nodes.py +241 -0
  143. unicode_logic_kit/fol/normalforms.py +492 -0
  144. unicode_logic_kit/fol/pal.py +287 -0
  145. unicode_logic_kit/fol/prolog_export.py +566 -0
  146. unicode_logic_kit/fol/prolog_input.py +505 -0
  147. unicode_logic_kit/fol/prover9_input.py +1325 -0
  148. unicode_logic_kit/fol/qml.py +1760 -0
  149. unicode_logic_kit/fol/qmltp_input.py +525 -0
  150. unicode_logic_kit/fol/sanitize.py +221 -0
  151. unicode_logic_kit/fol/serialize.py +79 -0
  152. unicode_logic_kit/fol/signature.py +1290 -0
  153. unicode_logic_kit/fol/simplify_check.py +544 -0
  154. unicode_logic_kit/fol/spans.py +594 -0
  155. unicode_logic_kit/fol/tptp_input.py +1503 -0
  156. unicode_logic_kit/fol/tptp_repair.py +941 -0
  157. unicode_logic_kit/fol/unification.py +157 -0
  158. unicode_logic_kit/fol/verbalize.py +263 -0
  159. unicode_logic_kit/hets/__init__.py +163 -0
  160. unicode_logic_kit/hets/bridge.py +142 -0
  161. unicode_logic_kit/hets/client.py +748 -0
  162. unicode_logic_kit/hets/docker.py +420 -0
  163. unicode_logic_kit/hets/dol.py +712 -0
  164. unicode_logic_kit/hets/haskell_json.py +355 -0
  165. unicode_logic_kit/hets/owl_backend.py +794 -0
  166. unicode_logic_kit/hets/owl_cli.py +598 -0
  167. unicode_logic_kit/hets/symbols.py +512 -0
  168. unicode_logic_kit/hol/__init__.py +140 -0
  169. unicode_logic_kit/hol/_ho_common.py +323 -0
  170. unicode_logic_kit/hol/_isabelle_binders.py +125 -0
  171. unicode_logic_kit/hol/classical.py +812 -0
  172. unicode_logic_kit/hol/deepshallow/__init__.py +45 -0
  173. unicode_logic_kit/hol/deepshallow/_common.py +177 -0
  174. unicode_logic_kit/hol/deepshallow/conditional.py +225 -0
  175. unicode_logic_kit/hol/deepshallow/intuitionistic.py +181 -0
  176. unicode_logic_kit/hol/deepshallow/modal.py +217 -0
  177. unicode_logic_kit/hol/deepshallow/qml.py +406 -0
  178. unicode_logic_kit/hol/deepshallow/relevant.py +206 -0
  179. unicode_logic_kit/hol/free.py +753 -0
  180. unicode_logic_kit/hol/goedel.py +336 -0
  181. unicode_logic_kit/hol/ho_modal.py +1743 -0
  182. unicode_logic_kit/hol/intuitionistic.py +403 -0
  183. unicode_logic_kit/hol/isabelle_conditional.py +593 -0
  184. unicode_logic_kit/hol/isabelle_modal.py +1908 -0
  185. unicode_logic_kit/hol/isabelle_relevant.py +412 -0
  186. unicode_logic_kit/hol/isabelle_runner.py +1147 -0
  187. unicode_logic_kit/hol/isabelle_substructural.py +884 -0
  188. unicode_logic_kit/hol/lean.py +1018 -0
  189. unicode_logic_kit/hol/manyvalued.py +921 -0
  190. unicode_logic_kit/hol/secondorder.py +687 -0
  191. unicode_logic_kit/hol/thf_modal.py +941 -0
  192. unicode_logic_kit/hol/thirdorder.py +397 -0
  193. unicode_logic_kit/ilp/__init__.py +89 -0
  194. unicode_logic_kit/ilp/readback.py +389 -0
  195. unicode_logic_kit/ilp/separation.py +153 -0
  196. unicode_logic_kit/ilp/task.py +730 -0
  197. unicode_logic_kit/logic.py +163 -0
  198. unicode_logic_kit/mcp/__init__.py +28 -0
  199. unicode_logic_kit/mcp/__main__.py +5 -0
  200. unicode_logic_kit/mcp/chem_tools.py +1031 -0
  201. unicode_logic_kit/mcp/server.py +2453 -0
  202. unicode_logic_kit/mcp/syntax_spec.py +681 -0
  203. unicode_logic_kit/prob/__init__.py +53 -0
  204. unicode_logic_kit/prob/_bdd.py +225 -0
  205. unicode_logic_kit/prob/_column_gen.py +668 -0
  206. unicode_logic_kit/prob/distribution.py +686 -0
  207. unicode_logic_kit/prob/nilsson.py +470 -0
  208. unicode_logic_kit/py.typed +0 -0
  209. unicode_logic_kit/semantics/__init__.py +137 -0
  210. unicode_logic_kit/semantics/_modal_reject.py +156 -0
  211. unicode_logic_kit/semantics/action_models.py +466 -0
  212. unicode_logic_kit/semantics/asp_models.py +1200 -0
  213. unicode_logic_kit/semantics/conditional.py +580 -0
  214. unicode_logic_kit/semantics/dynamic_epistemic.py +95 -0
  215. unicode_logic_kit/semantics/free_logic.py +913 -0
  216. unicode_logic_kit/semantics/fuzzy.py +384 -0
  217. unicode_logic_kit/semantics/fuzzy_kripke.py +442 -0
  218. unicode_logic_kit/semantics/intuitionistic.py +581 -0
  219. unicode_logic_kit/semantics/kripke.py +1139 -0
  220. unicode_logic_kit/semantics/manyvalued.py +580 -0
  221. unicode_logic_kit/semantics/matrix.py +342 -0
  222. unicode_logic_kit/semantics/model_eval.py +1135 -0
  223. unicode_logic_kit/semantics/modelfinder.py +1036 -0
  224. unicode_logic_kit/semantics/nonmonotonic.py +372 -0
  225. unicode_logic_kit/semantics/relevant.py +331 -0
  226. unicode_logic_kit/semantics/secondorder.py +657 -0
  227. unicode_logic_kit/semantics/structures.py +352 -0
  228. unicode_logic_kit/semantics/tarski.py +975 -0
  229. unicode_logic_kit/semantics/team.py +315 -0
  230. unicode_logic_kit/semantics/team_translation.py +416 -0
  231. unicode_logic_kit/semantics/thirdorder.py +358 -0
  232. unicode_logic_kit/semantics/tnorm.py +85 -0
  233. unicode_logic_kit/semantics/truthtable.py +201 -0
  234. unicode_logic_kit-0.31.0.dist-info/METADATA +333 -0
  235. unicode_logic_kit-0.31.0.dist-info/RECORD +237 -0
  236. unicode_logic_kit-0.31.0.dist-info/WHEEL +4 -0
  237. unicode_logic_kit-0.31.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,333 @@
1
+ Metadata-Version: 2.4
2
+ Name: unicode-logic-kit
3
+ Version: 0.31.0
4
+ Summary: Parse, translate, prove and model-check logic formulas in Unicode notation: first-order, modal, description and higher-order logic, one API over a dozen provers, and an MCP server
5
+ Project-URL: Documentation, https://unicode-logic-kit.readthedocs.io/
6
+ Project-URL: Repository, https://github.com/fvossel/unicode-logic-kit
7
+ Project-URL: Issues, https://github.com/fvossel/unicode-logic-kit/issues
8
+ Project-URL: Changelog, https://github.com/fvossel/unicode-logic-kit/blob/main/CHANGELOG.md
9
+ Author-email: Felix Vossel <fvossel@uos.de>
10
+ License: MIT
11
+ License-File: LICENSE
12
+ Keywords: autoformalization,automated-reasoning,description-logic,first-order-logic,fol,higher-order-logic,lambda-calculus,llm,logic,lukasiewicz,mcp,modal-logic,model-checking,nl-to-fol,non-classical-logic,owl,parser,smt,theorem-proving,tptp,unicode
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Topic :: Scientific/Engineering
24
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
25
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
26
+ Classifier: Typing :: Typed
27
+ Requires-Python: >=3.10
28
+ Requires-Dist: lark>=1.1
29
+ Requires-Dist: z3-solver>=4.12
30
+ Provides-Extra: asp
31
+ Requires-Dist: clingo>=5.6; extra == 'asp'
32
+ Provides-Extra: chem
33
+ Requires-Dist: rdkit>=2023.9; extra == 'chem'
34
+ Provides-Extra: cp
35
+ Requires-Dist: minizinc>=0.9; extra == 'cp'
36
+ Provides-Extra: cvc5
37
+ Requires-Dist: cvc5<2,>=1.3; extra == 'cvc5'
38
+ Provides-Extra: docs
39
+ Requires-Dist: furo>=2024.1.29; extra == 'docs'
40
+ Requires-Dist: myst-parser>=2.0; extra == 'docs'
41
+ Requires-Dist: sphinx>=7.0; extra == 'docs'
42
+ Provides-Extra: hf
43
+ Requires-Dist: datasets>=2.14; extra == 'hf'
44
+ Requires-Dist: evaluate>=0.4; extra == 'hf'
45
+ Provides-Extra: lint
46
+ Requires-Dist: mypy==2.3.1; extra == 'lint'
47
+ Provides-Extra: mcp
48
+ Requires-Dist: mcp<3,>=2.0; extra == 'mcp'
49
+ Provides-Extra: owl
50
+ Requires-Dist: owlready2>=0.46; extra == 'owl'
51
+ Provides-Extra: test
52
+ Requires-Dist: pytest-xdist>=3.0; extra == 'test'
53
+ Requires-Dist: pytest>=7.0; extra == 'test'
54
+ Description-Content-Type: text/markdown
55
+
56
+ # unicode-logic-kit
57
+
58
+ [![Tests](https://github.com/fvossel/unicode-logic-kit/actions/workflows/tests.yml/badge.svg)](https://github.com/fvossel/unicode-logic-kit/actions/workflows/tests.yml)
59
+ [![Isabelle live tests](https://github.com/fvossel/unicode-logic-kit/actions/workflows/isabelle-tests.yml/badge.svg)](https://github.com/fvossel/unicode-logic-kit/actions/workflows/isabelle-tests.yml)
60
+ [![PyPI](https://img.shields.io/pypi/v/unicode-logic-kit)](https://pypi.org/project/unicode-logic-kit/)
61
+ [![Docs](https://readthedocs.org/projects/unicode-logic-kit/badge/?version=latest)](https://unicode-logic-kit.readthedocs.io/)
62
+
63
+ A Python toolkit for **logic with Unicode operators** — *parse, transform, and reason
64
+ about* formulas of classical first-order logic and well beyond it: modal, temporal,
65
+ hybrid, many-valued, fuzzy, intuitionistic, relevant, second- and third-order,
66
+ description, dependence/IF, substructural, and a range of further non-classical
67
+ logics. On top of that sits **infrastructure for NL→logic research**:
68
+ one small API a verification loop can drive, one uniform verdict type over a dozen
69
+ provers, and an evaluation toolbox for scoring LLM-generated formulas against
70
+ benchmark gold data.
71
+
72
+ ```python
73
+ from unicode_logic_kit import MSFLParser, is_valid
74
+
75
+ phi = MSFLParser().parse(
76
+ "∀x (Human(x) → Mortal(x)) ∧ Human(socrates) → Mortal(socrates)")
77
+ print(is_valid(phi)) # True
78
+ ```
79
+
80
+ > **Renamed in 0.31.0.** Up to 0.30.0 this package was `unicode-fol-kit`
81
+ > (`import unicode_fol_kit`): first-order logic is one of the logics it handles,
82
+ > not the whole of it. `pip install -U unicode-fol-kit` still works — it installs
83
+ > this package and forwards the old import name with a `DeprecationWarning` — but
84
+ > new code should `pip install unicode-logic-kit` and `import unicode_logic_kit`.
85
+ > Nothing else changed its name, the `UFK_` environment variables included.
86
+
87
+ ## Why this kit?
88
+
89
+ - **One facade, seven verbs, built for LLM loops.** `api.parse_any` (dialect
90
+ auto-detection over Unicode / TPTP / LaTeX / Prover9 / SMT-LIB — never raises,
91
+ records every parser's objection), `api.check` (well-formedness + signature
92
+ conformance with did-you-mean suggestions), `api.equivalent`, `api.prove`,
93
+ `api.countermodel`, `api.repair` (a diagnose→suggest→fix generator whose fixer
94
+ callback is *your* LLM), `api.translate` (logic-to-logic via a comorphism
95
+ registry). Every result has a JSON-compatible `to_dict()`, and the API carries an
96
+ explicit stability policy.
97
+ - **Logics as values, and a translation that carries its side conditions.**
98
+ `FOL(MSFOL(f))` converts a sorted formula and keeps its side axioms (each
99
+ sort is non-empty, each sorted constant lies in its sort) *with* the term, as
100
+ a `Sentence`; `api.prove` adds them as premises itself, which is the
101
+ difference between a proof and a spurious countermodel. Each of
102
+ the nine registry edges declares what it preserves (`comorphism.GUARANTEES`),
103
+ which side axioms its image needs and which options it reads; a composed path
104
+ reports the weakest guarantee on it. There is no implicit coercion between
105
+ logics on purpose — see
106
+ [Translating between logics](https://unicode-logic-kit.readthedocs.io/en/latest/guide/logic-graph.html)
107
+ for why a translation is not an upcast.
108
+ - **An MCP server out of the box.** `pip install unicode-logic-kit[mcp]`, then
109
+ `python -m unicode_logic_kit.mcp` exposes the toolkit as thirty-seven Model
110
+ Context Protocol tools (23 general-purpose, 6 for chemistry, 8 for
111
+ description logic) — any MCP client (Claude Code/Desktop, agent
112
+ frameworks, editors) can parse, prove, diagnose and translate without
113
+ writing Python; the repair loop inverts naturally (the client LLM is the
114
+ fixer). An error-analysis layer comes along: prediction-vs-gold
115
+ breakdowns with symbol diffs (`compare_formulas`), corpus metrics
116
+ (`score_batch`), satisfiability of premise sets with model witnesses
117
+ (`check_consistency`), normal forms, cross-syntax rendering, truth
118
+ tables, signature extraction, and DRS→FOL for discourse phenomena.
119
+ - **Model checking against real structures, not just model finding.** A
120
+ molecule, a knowledge-graph neighbourhood, a scene graph is *given* — the
121
+ question is whether a definition holds of it. `FiniteStructure` +
122
+ `evaluate_in_structure` answer that directly: no prenex form, no CNF
123
+ (both are documented timeout sources elsewhere), quantifiers ranging over
124
+ indexed candidate sets rather than the whole domain, counting quantifiers
125
+ counted instead of expanded, and properties that are decidable on a
126
+ structure but not first-order definable over it (connectivity, ring
127
+ membership) admitted as **computed predicates**. `unicode_logic_kit.chem`
128
+ turns a SMILES string into such a structure over the ChemLog signature.
129
+ - **Rule learning, both directions, with the silent failures made loud.**
130
+ `unicode_logic_kit.ilp` turns those same structures into an ILP task (Popper's
131
+ `bk.pl` / `exs.pl` / `bias.pl`) and reads the learned Prolog clause back as a
132
+ kit formula you can model-check. Two encoding mistakes produce a hypothesis
133
+ that scores **precision 1.00 and means nothing** — example-local individual
134
+ names a learner joins across, and the example argument on every predicate —
135
+ and both are refused rather than documented, on the way out and on the way
136
+ back. `check_separation` asks the question that has to come first: does your
137
+ reference definition separate the two example sets at all?
138
+ - **Exact probabilistic logic — no sampling, no floats.**
139
+ `prob.entailment_bounds` answers "what does P(bird)=0.9 entail about
140
+ P(fly)?" with the exact tightest interval (Nilsson's probabilistic
141
+ entailment as a rational LP over possible worlds, conditionals included);
142
+ `prob.query` answers ProbLog-style queries over definite programs with
143
+ independent probabilistic facts under Sato's distribution semantics —
144
+ every result an exact `Fraction`, every unsupported fragment a loud
145
+ refusal.
146
+ - **Twenty-five prover backends, one honest `Verdict`.** The kit's own calculi and
147
+ semantic searches (resolution — with sound paramodulation/demodulation for
148
+ equality, no hand-supplied congruence axioms needed —, analytic tableaux
149
+ with recorded, independently checkable proof objects, modal tableau, finite
150
+ model finder, bounded Kripke enumeration, QML embedding) are first-class
151
+ citizens next to Z3,
152
+ cvc5, Vampire, E, Zipperposition, Twee (equational proofs re-verified by an
153
+ independent checker before the kit reports them), Prover9, Leo-III, Isabelle,
154
+ nanoCoP-M (native first-order modal logic, opt-in with a mandatory independent
155
+ cross-check) and a Dockerized HETS server (CASL export *and* round-trip
156
+ import with native many-sortedness, multi-spec DOL library emission,
157
+ SPASS/darwin behind one name, comorphism provenance in every
158
+ verdict). Every route returns the same
159
+ `Verdict` with a semantic status (`proved` / `refuted` / `unknown` / `error`),
160
+ a separate *why-not-more* axis (`timeout` ≠ `bound_hit` ≠ `incomplete` ≠
161
+ `unsupported`), the SZS status, wall time, and JSON-able witnesses. Chains,
162
+ portfolios (`portfolio_prove`, parallel with agreement thresholds and a
163
+ soundness alarm on prover disagreement), and cached batch runs
164
+ (`batch_decide`) are built on top.
165
+ - **An evaluation toolbox for NL→FOL work.** A graded equivalence ladder (exact →
166
+ canonical → vocabulary-aligned → solver, with a tri-state solver level and
167
+ partial credit), AST-level symbol alignment, gold-formula self-audit, and
168
+ adapters for **FOLIO, MALLS, GROVES, WillowNLtoFOL, ProntoQA, ProofWriter,
169
+ LogicNLI, ProverQA and FraCaS** — each with its upstream schema verified at the
170
+ source and its limitations documented instead of smoothed over. FraCaS is the
171
+ pure-NLI one: no gold formulas at all, so the translation step is an injected
172
+ callable and the kit only decides.
173
+ - **Countermodels that explain themselves.** `api.countermodel` returns a
174
+ machine-readable witness *plus* a plain-English rendering ("The countermodel has
175
+ 2 possible worlds. … At world 0 the formula fails."), and refutation actually
176
+ covers the temporal fragment: `Ⓕ P → P` comes back **refuted** with a two-world
177
+ Kripke witness, not "unknown".
178
+ - **Honesty as a contract.** No route silently degrades: fuzzy input is refused by
179
+ classical provers rather than collapsed, an unavailable backend raises instead
180
+ of vanishing from the chain, incomplete methods report *why* they stopped, and
181
+ every proof method has an independent checker.
182
+
183
+ ```python
184
+ from unicode_logic_kit import api
185
+
186
+ result = api.parse_any("∀x (Raven(x) → Black(x))") # LLM output, any dialect
187
+ report = api.check(result.formula,
188
+ signature={"predicates": {"Raven": 1, "Black": 1}})
189
+ verdict = api.prove(api.parse_any("Black(tweety)").formula,
190
+ premises=[result.formula,
191
+ api.parse_any("Raven(tweety)").formula])
192
+ print(verdict.status, verdict.backend, verdict.szs_status) # proved z3 Theorem
193
+ ```
194
+
195
+ One parser class, `MSFLParser`, has **nine modes** (classical FOL, many-sorted FOL,
196
+ many-sorted and single-sorted Łukasiewicz fuzzy logic, modal/temporal/epistemic/deontic/
197
+ hybrid, second-order, third-order, team-semantic dependence/IF logic, intuitionistic linear logic,
198
+ and the Lambek calculus) selected by constructor flags, with natural Unicode surface
199
+ syntax (`∀ ∃ ∧ ∨ ¬ → ↔ ⊕ ⊗ □ ◇ @ ⊸ 𝟙 …`) and no ASCII fallbacks.
200
+
201
+ On top of the AST sits a full reasoning stack — **four proof methods** (a built-in
202
+ resolution prover, Fitch natural deduction with checker *and* searcher, the Gentzen
203
+ sequent calculi **LK**/**LJ** — the latter backed by Dyckhoff's **G4ip**, a genuine
204
+ terminating decision procedure for propositional intuitionistic logic — and analytic
205
+ tableaux), a **finite model finder**, SMT (Z3) and external-prover (Prover9 / Vampire)
206
+ backends, truth tables, and dedicated semantics for every logic. Every proof method has
207
+ an **independent checker** — including `check_resolution_proof`, which certifies
208
+ externally produced resolution derivations (paramodulation steps included) with
209
+ its own from-scratch unification, and `check_tableau_proof`, which re-derives
210
+ every α/β/γ/δ step of a recorded tableau with its own substitution and
211
+ δ-freshness check.
212
+ Formulas import/export to TPTP (incl. header `Status`/`Rating` metadata via
213
+ `parse_tptp_problem`), Prover9, SMT-LIB, LaTeX, and JSON.
214
+
215
+ ## 📖 Documentation
216
+
217
+ **Full guide and API reference: <https://unicode-logic-kit.readthedocs.io/>**
218
+
219
+ The documentation walks through every logic with runnable examples — start with the
220
+ [Quickstart](https://unicode-logic-kit.readthedocs.io/en/latest/guide/quickstart.html) and
221
+ [Choosing a tool](https://unicode-logic-kit.readthedocs.io/en/latest/guide/choosing.html).
222
+
223
+ Beyond deciding formulas:
224
+ [Model checking](https://unicode-logic-kit.readthedocs.io/en/latest/guide/model-checking.html)
225
+ (evaluate a formula in a structure you already have — including molecules),
226
+ [Verification](https://unicode-logic-kit.readthedocs.io/en/latest/guide/verification.html)
227
+ (is a definition *set* coherent, or just too easily satisfied?),
228
+ [Probabilistic logic](https://unicode-logic-kit.readthedocs.io/en/latest/guide/probabilistic.html)
229
+ (exact bounds and queries, no sampling), and
230
+ [MCP](https://unicode-logic-kit.readthedocs.io/en/latest/guide/mcp.html)
231
+ (the toolkit, grammar included, as tools for a language model).
232
+
233
+ ## Installation
234
+
235
+ ```bash
236
+ pip install unicode-logic-kit
237
+ ```
238
+
239
+ Requires Python 3.10+. Z3 ships with the package. `pip install
240
+ "unicode-logic-kit[cvc5]"` adds cvc5 as a second in-process SMT backend (it then
241
+ joins the default proving chain right after Z3); `[mcp]` adds the MCP server
242
+ (`python -m unicode_logic_kit.mcp`); `[hf]` adds the HuggingFace-`evaluate`
243
+ metric wrapper; `[owl]` adds owlready2, so `dl.owl_reasoner` can hand a
244
+ description-logic problem to HermiT (needs a JVM on `PATH`) and decide the
245
+ inverse roles and nominals the in-house tableau refuses by name — note that
246
+ owlready2 is LGPL-3.0-or-later, unlike this MIT-licensed kit. Prover9, Vampire, E, Zipperposition, Twee, nanoCoP-M
247
+ (needs your own ECLiPSe/SWI-Prolog install; `$UFK_NANOCOP_CMD`), and
248
+ Isabelle are optional external tools you install separately to unlock the
249
+ corresponding backends, and the HETS backend wants Docker (`docker pull
250
+ spechub2/hets:latest`; a running server is discovered on `localhost:8000`
251
+ or via `$UFK_HETS_URL`) — each is discovered explicitly and reports itself
252
+ as unavailable rather than silently disappearing.
253
+
254
+ ## Logics at a glance
255
+
256
+ | Logic | Enable / entry point | Decide / reason with |
257
+ |---|---|---|
258
+ | Classical FOL / MSFOL | `MSFLParser()` / `many_sorted=True` | resolution, Z3, Prover9/Vampire, tableaux, Fitch, LK, finite model finder |
259
+ | Fuzzy Łukasiewicz / Gödel / product | `MSFLParser(fuzzy=True)` | `fuzzy_evaluate`, `fuzzy_is_valid(…, tnorm=…)` (Z3 reals, quantifier grounding; Łukasiewicz and Gödel only — the product t-norm is evaluator-only and `fuzzy_is_valid` refuses it by name); classical routes (`is_valid`, normal forms, resolution) refuse fuzzy input rather than silently collapsing it — opt in explicitly with `to_fol(node)` |
260
+ | Modal / temporal / epistemic / deontic | `MSFLParser(modal=True)` | `satisfies_modal`, `standard_translation`, native `is_modal_valid` / `modal_decide` (K…S5, B, KD45) |
261
+ | Quantified modal | `KripkeModel(domains=…)` | `qml_is_valid` per domain regime + frame; THF / Isabelle export |
262
+ | Many-valued K3 / LP / Belnap FDE | `truth_table`, `semantics.matrix` | `matrix_is_valid` / `matrix_entails` over any finite `TruthMatrix`, incl. THF/Isabelle export |
263
+ | Intuitionistic | `int_valid` / `int_countermodel` | propositional **decision procedure** (`int_prove`/`int_decide`, G4ip) + bounded first-order Kripke search; LJ checker |
264
+ | Second-order | `MSFLParser(second_order=True)` | `satisfies_so`, bounded `so_is_valid_finite` / `so_find_countermodel` |
265
+ | Third-order (incl. modal) | `MSFLParser(third_order=True[, modal=True])` | a predicate whose ARGUMENT is a property (`Pos(G)`, `Pos(λx. ¬G(x))`); slot types inferred across a theory; `to_thf_to` / `to_isabelle_to` and the shallow modal embedding `hol.ho_modal`; `hol.goedel` checks Gödel's ontological argument both ways |
266
+ | Description logic **ALCHQ** | `unicode_logic_kit.dl` | `concept_satisfiable` / `subsumes` / `abox_consistent` (tableau, TBox + ABox, role hierarchies + transitive roles, qualified number restrictions `AtLeast`/`AtMost` on simple roles); `parse_concept`/`parse_gci`/`parse_manchester` plus `concept_to_fol`/`kb_to_fol`/`tbox_to_fol`/`rbox_to_fol`/`abox_to_fol` reuse the FOL provers (Z3's `Count` expansion for the number restrictions) and Isabelle/THF exports |
267
+ | Free · public-announcement · counterfactual · circumscription | `semantics.free_logic` / `dynamic_epistemic` / `conditional` / `nonmonotonic` | `free_is_valid`/`free_entails` (bounded search); `[φ!]ψ`/`⟨φ!⟩ψ` parse in modal mode and decide via `reduce_announcements`; `cf_valid` over Lewis V / VW / VC (`centering=`, default weakly centered); `minimal_entails` and the unbounded `circumscription_entails_so` |
268
+ | Hybrid **H(@)** (nominals, `@i φ`) | `MSFLParser(modal=True)` | `KripkeModel(nominals=…)`, `hybrid_is_valid` per frame (standard translation + Z3) |
269
+ | Relevant logic **B** | classical syntax + `semantics.relevant` | `rel_valid` / `rel_countermodel` (Routley–Meyer, bounded exhaustive search); `isabelle_decide_relevant` certifies both directions |
270
+ | Dependence / IF (team semantics) | `MSFLParser(dependence=True)` | `team_satisfies` / `team_models` over finite structures; `dependence_to_eso` translates the guarded/slashed sentence fragment to ESO for `satisfies_so` / Isabelle export |
271
+ | Linear logic (ILL, incl. `⊤`/`𝟘`) · Lambek calculus | `MSFLParser(linear=True)` / `lambek=True` | `ill_prove` (cut-free; complete for !-free) · `lambek_derivable` (decision procedure); either derivation replays as a machine-checked Isabelle lemma |
272
+
273
+ With a local **Isabelle** installed, the `hol` subpackage's shallow embeddings become
274
+ *proofs*: `isabelle_decide_modal` / `isabelle_decide_fol` / `isabelle_decide_relevant`
275
+ actually run the prover, and `hol.isabelle_substructural` replays a Python-found
276
+ ILL/Lambek derivation as a machine-checked lemma. The `hol.deepshallow` subpackage goes
277
+ further, emitting — for propositional modal, intuitionistic, Lewis-conditional and
278
+ relevant logic, plus a Tier 2 quantified fragment (K frame, constant domain, alethic
279
+ □/◇ only) — the **deep, maximal-shallow and minimal-shallow** embeddings side by
280
+ side with **machine-checked faithfulness proofs** between them (Benzmüller,
281
+ arXiv:2502.19311), verified end to end by Isabelle. See
282
+ the [higher-order guide](https://unicode-logic-kit.readthedocs.io/en/latest/guide/higher-order.html).
283
+
284
+ ## Command line
285
+
286
+ ```bash
287
+ python -m unicode_logic_kit "∀x P(x)" --to latex
288
+ ```
289
+
290
+ `--mode` selects the parser dialect — `fol` (default), `msfol`, `msfl`, `fl`, `modal`,
291
+ `second_order`, `dependence`, `linear`, `lambek` — and `--to` the rendering: `tree`,
292
+ `unicode`, `latex`, `tptp`, `prover9`, `json`, `dot`.
293
+
294
+ The seven-verb facade is also scriptable via subcommands (`--json` for
295
+ machine-readable output; exit codes encode the verdict):
296
+
297
+ ```bash
298
+ python -m unicode_logic_kit prove "Ⓕ P → P" --dialect modal
299
+ python -m unicode_logic_kit check "∀x (Human(x) → Mortal(x))" --json
300
+ ```
301
+
302
+ plus `equiv`, `countermodel`, `repair`, and `translate`.
303
+
304
+ ## Building the documentation locally
305
+
306
+ ```bash
307
+ pip install -e ".[docs]"
308
+ sphinx-build -b html docs docs/_build/html
309
+ ```
310
+
311
+ ## Citation
312
+
313
+ If you use this toolkit in academic work, please cite the accompanying preprint:
314
+
315
+ ```bibtex
316
+ @misc{vossel2025advancingnaturallanguageformalization,
317
+ title={Advancing Natural Language Formalization to First Order Logic with Fine-tuned LLMs},
318
+ author={Felix Vossel and Till Mossakowski and Björn Gehrke},
319
+ year={2025},
320
+ eprint={2509.22338},
321
+ archivePrefix={arXiv},
322
+ primaryClass={cs.CL},
323
+ url={https://arxiv.org/abs/2509.22338},
324
+ }
325
+ ```
326
+
327
+ > Vossel, F., Mossakowski, T., & Gehrke, B. (2025). *Advancing Natural Language
328
+ > Formalization to First Order Logic with Fine-tuned LLMs.* arXiv preprint
329
+ > arXiv:2509.22338.
330
+
331
+ ## License
332
+
333
+ MIT
@@ -0,0 +1,237 @@
1
+ unicode_logic_kit/__init__.py,sha256=qgvJclru_cS8sVOvYydO8oy8Zdeb6kw8xNosMg80TOY,18928
2
+ unicode_logic_kit/__main__.py,sha256=G8PfI6X1kYl8U3cy9jppcrJwiGznk4bqbvr99a_qWVI,20545
3
+ unicode_logic_kit/_deadline.py,sha256=PRQowL1vr5cElq5FyTDuidGSGkxbE8kB1R8rn767NL0,11269
4
+ unicode_logic_kit/api.py,sha256=RP5N0CZtXlhUvXtzIXRogvCNfYW0bhRZmdoZrGsmt1U,62532
5
+ unicode_logic_kit/comorphism.py,sha256=3M3VBvzTtC2tVM6qviyzE5KoTHlpE_yUurOfgNs36TE,24506
6
+ unicode_logic_kit/logic.py,sha256=c_rDv3Unc97QRL-Seh9cF3J3PPlL7kuHt5ntnd0kdmk,7500
7
+ unicode_logic_kit/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ unicode_logic_kit/ace/__init__.py,sha256=zA5qn92bEqmefm0Yawf96y1tQ-_PcL8E3a-8CZFvpGQ,7004
9
+ unicode_logic_kit/ace/_align.py,sha256=pkyDt08tPmJBCf-ogYXcvvV_nugbDtf4AYN0dVVCIdc,5785
10
+ unicode_logic_kit/ace/chem_lexicon.py,sha256=kz2BJYer2lKReu-HVVpdkw27MRGl6j2iTSCumTsodnQ,5186
11
+ unicode_logic_kit/ace/drs_reader.py,sha256=36UvUNo0iNeylxniRZMTnJBSoox-ybtJ-vrQm3qw67w,19757
12
+ unicode_logic_kit/ace/mapping.py,sha256=AvZFpU8xhleoelIUyf9GSpLceqTR5VhdtKqQitee5-s,29483
13
+ unicode_logic_kit/ace/reverse_modal.py,sha256=sWEiY2CGeQajivvIIIHD7oigGQWyGYjaOM6yUblxjNQ,6668
14
+ unicode_logic_kit/ace/runner.py,sha256=SmjusPYbmQ5ZUQ1nENI5o6juHz2mXtsWL7DoNLqNb4A,24924
15
+ unicode_logic_kit/ace/translate.py,sha256=rgYC_c4CFQPZN4lpDppkQ9OqYFhIh2jgoE34Zkqamys,21887
16
+ unicode_logic_kit/ace/verbalize.py,sha256=93eX933Tb2CZ7CVV6moNEjsVlYIBbAgsb5dyF_FBmBs,46918
17
+ unicode_logic_kit/atp/__init__.py,sha256=7FTmLpSMFdeRUCQIJyCzJYn0XG7uPvVQzzRGDv-r2-M,7819
18
+ unicode_logic_kit/atp/_ascii_names.py,sha256=_8jgf8GhnMkyq1fYQ9cmD0-LCMLAT9MP87m-4bZAm-A,5677
19
+ unicode_logic_kit/atp/_html.py,sha256=Uq86TT5FzaDbE9G9PsKz7nIPXOC0x5JPm_xAenXDXPc,3745
20
+ unicode_logic_kit/atp/_substructural_input.py,sha256=mzHg75D5vkSkIQ_sdXcTdZXmAUn9BHmn5G78qWM_d6M,11544
21
+ unicode_logic_kit/atp/_tff_problem.py,sha256=eLDQ7ix3dPmpUFFNkNO41MBlsK2MPwU3ksoAN_ENhF8,38092
22
+ unicode_logic_kit/atp/_tptp_problem.py,sha256=w_-Qdh4LrNxbrKlM1zybFp-p1gHWqqAs2TEF0JJgLtk,65605
23
+ unicode_logic_kit/atp/_writer_support.py,sha256=vkRMshLQ-Mfnqeqo8dhgv7i4tU73MPZxrhaXxoENoE0,14763
24
+ unicode_logic_kit/atp/clingo_backend.py,sha256=E5ESNehswT2QG2njsXwwmmiuaI5XK-zlSEoA1BcIq0w,63223
25
+ unicode_logic_kit/atp/cvc5_backend.py,sha256=G-tHkTEC-eQ0LY8eGWCYGH231ETdY49mnJLOixhotBc,77991
26
+ unicode_logic_kit/atp/eprover_backend.py,sha256=p6TAE9C6NrFPcxBhOWGixP2mEo8XiiReXalypVjR5MU,39647
27
+ unicode_logic_kit/atp/finite_domain.py,sha256=bn4gxYEBrlHtu487AZ6BMmlmgTvkSAUhCtTxR4cGvHo,56534
28
+ unicode_logic_kit/atp/fitch.py,sha256=1ne8sgTut5T12WdvYuJh6FPqoWdcDddhAQky0N0APjw,69220
29
+ unicode_logic_kit/atp/fitch_search.py,sha256=T7Me1r-Et4Jpr_VeBZkKQmkD7NBsXdTcUUP4ncyj1kc,23723
30
+ unicode_logic_kit/atp/hets_backend.py,sha256=KJZEUPh0fad09NxOKQlrnpStjoTsphc2l4hDaVQGu2g,18038
31
+ unicode_logic_kit/atp/hybrid_down.py,sha256=8HhP2AohtVWKIv-pGAQvObYgKdIgofnK5ofvwK3rFXM,6459
32
+ unicode_logic_kit/atp/incremental.py,sha256=JHPLwMi2oy0Ks90LgvEsx9JdYpgK8dpY2-sHQuEIfLY,12725
33
+ unicode_logic_kit/atp/kripke_enum.py,sha256=Qw8lPlge0T_qJoipne-8TUqkFgCCX_XBIZQH9TQGz_I,38030
34
+ unicode_logic_kit/atp/lambek.py,sha256=p_ieWAU8vLiCflDeB06gCfaZk36lgv6H15m1AEvd9KE,19744
35
+ unicode_logic_kit/atp/leo3_backend.py,sha256=vWhKkeP7NHYJrp_EKVk4ufXPg0vZwtK1Govv9YvEUMo,17155
36
+ unicode_logic_kit/atp/linear.py,sha256=L1e5fEzuTgR-v6xtlNtMUm_O25ZVlz2GvkGEgbDuAGc,31777
37
+ unicode_logic_kit/atp/lj.py,sha256=j4BWOaavci85KURATcxoi_kKS9r9d3oNUSKIhxspiGo,34842
38
+ unicode_logic_kit/atp/logic_backends.py,sha256=yELsw29DdF1IVnELfJd8Vp1X4J596UKThh7VRrt2KCg,31196
39
+ unicode_logic_kit/atp/ltl_tableau.py,sha256=QYP2M4IidhCSxFjqxEi-iu1mQMl0ERu-nBDN4eyZc3c,51421
40
+ unicode_logic_kit/atp/minizinc_backend.py,sha256=ZWOVKOn03l7phlnNkBw6su5PKqWheWfn2Wcsxg7oZ2Y,71664
41
+ unicode_logic_kit/atp/modal_tableau.py,sha256=9Tj0rNAKCkLb6h9s9Ew3F1dEE6xtWa_WDNjUvQwwMl0,69781
42
+ unicode_logic_kit/atp/nanocop_backend.py,sha256=iBpDbOS69y8SQL2fxtaxUAqsN_1r8Y9zZ-N49QTaHVY,19452
43
+ unicode_logic_kit/atp/portfolio.py,sha256=oiIrsEBAe7cQ3cEObABkMCXsMZTamVeXRi2vicdMKTY,25572
44
+ unicode_logic_kit/atp/protocol.py,sha256=mJAdX6Y7aeWZwSGI3-8NQpWAVKgyiUihVL5aWgSD8wk,91227
45
+ unicode_logic_kit/atp/prover9_entailment.py,sha256=wg0oyx1E9FS1hDajiqS5TCEBZaA42__tLhYs-TEQGUw,64600
46
+ unicode_logic_kit/atp/resolution.py,sha256=MkTebvPSGzuVAW4RixXrHFC42JnDHNwheePfeXdmWhs,69723
47
+ unicode_logic_kit/atp/resolution_check.py,sha256=CRts2S9Yg1fQNaQ2c36UnWhx5ucpxzExXdHTW-MIR9c,53517
48
+ unicode_logic_kit/atp/sequent.py,sha256=xlgk-2aqYucW39gPMY5Ikl-0iDtZeX75lye-makLATs,46143
49
+ unicode_logic_kit/atp/tableau.py,sha256=2xpZ0j0X2pNB1yEjIcef1y9ggMh3bqx-TdbqaOr6wz0,44288
50
+ unicode_logic_kit/atp/tableau_check.py,sha256=6O13Cdcpfzk436TwHNSfxCcCsBx2enOVYRGf6HrFrpA,28888
51
+ unicode_logic_kit/atp/tptp_ncl.py,sha256=pC4hw1d89MUs_MXqjTDwY865RFbd3Grke8LLaL7JdMY,47160
52
+ unicode_logic_kit/atp/tptp_tff.py,sha256=35M5lJhY17WqqUYBvZRwQi8uJdwwbMo7YYpAWw_mcC4,81112
53
+ unicode_logic_kit/atp/tstp.py,sha256=15sSr3tYkSg1rrMbW03puOyLdgwnrmtCYPrKTHJiNXQ,68290
54
+ unicode_logic_kit/atp/tstp_check.py,sha256=S1clfq2BEBLpz_Qd1A7p6e7ZvTfbSQMKzUgDFctas84,56123
55
+ unicode_logic_kit/atp/twee_backend.py,sha256=puqv17wQ13lg7evYIehiqqpo7mhHIZPMkhBiPtxdgr0,12113
56
+ unicode_logic_kit/atp/twee_check.py,sha256=YTH679uICU_A5sCNGjlW3rKzC5l9DAQUFPzXJfjbXgY,36921
57
+ unicode_logic_kit/atp/twee_entailment.py,sha256=e_Sw5LOX6ZEjPVdhLpY8Z2bTxgyMf_xkgIae9juqVlk,44540
58
+ unicode_logic_kit/atp/vampire_entailment.py,sha256=0Pe71sRWrS5MuJlSndURJZndfhwPEOpR0VA-MRbEg4o,29731
59
+ unicode_logic_kit/atp/z3_arith.py,sha256=WLurnSmZFAc8FhqIf4Ewghw6DIrqb4lo9nnpl3Iy9KA,22976
60
+ unicode_logic_kit/atp/z3_equivalence.py,sha256=rQGHKyoMnOOZ8O19LKMbuxk2rfxK-kGOMf-WIzw79OM,1449
61
+ unicode_logic_kit/atp/z3_fuzzy.py,sha256=3JDJx37bQEtydXY8-cljvXuYWpmNBTRbJtdVdm9yc9U,15828
62
+ unicode_logic_kit/atp/z3_input.py,sha256=05z8ySi-2KoCqtrswklePKtZG5L_n4fO99leDa4S4fM,25771
63
+ unicode_logic_kit/atp/z3_models.py,sha256=3O3QUwxA5y2Mzdgol2S6U0x0UmhPmH-8pTq1fAepoB8,11027
64
+ unicode_logic_kit/chem/__init__.py,sha256=qYGXYkNePe2fj_YnEGFqwM0GATX-lDKVkHJxWWClo1M,4418
65
+ unicode_logic_kit/chem/_naming.py,sha256=6Rc_P5sdReGpI3y9ScZETtL-XLoX5XstV0jeAQyHk6M,13423
66
+ unicode_logic_kit/chem/cache.py,sha256=VaYdeyL7PaF1RTEju7EkXT34H8nJIuhTRRV0WyNqPtM,8362
67
+ unicode_logic_kit/chem/interop.py,sha256=ExwvOfrts7McIq6wCKJ9lSsUb51Q7zLoqs4IEXBG9uo,11780
68
+ unicode_logic_kit/chem/mol.py,sha256=mU2irfDeAQjDsacptBX4D5seybJg-I1ln0H_4u9L00E,28339
69
+ unicode_logic_kit/chem/signature.py,sha256=ybXgvzArUww5XZ_QYRMNMoNfUp50amaC7mAV-rWI8qE,5443
70
+ unicode_logic_kit/dl/__init__.py,sha256=8dwA1ngSp4ZM3xplmuzTsNrMzH6g0pxG5U_oGIVMz58,22258
71
+ unicode_logic_kit/dl/classification.py,sha256=XIyB-aypWyWk_2I__P8CLz9ogWyMxU8hFqTaeLwSJ9o,11034
72
+ unicode_logic_kit/dl/concepts.py,sha256=jmDfsB-EMt5WS4d-7uA7B-sFB1wG6TNIfQHbbcaQLz0,29322
73
+ unicode_logic_kit/dl/datatypes.py,sha256=kPckT4gHBsaa6kj97FZS0WQiI9epGX_SH3pQVH8u6c4,38763
74
+ unicode_logic_kit/dl/owl_functional.py,sha256=6cGcwCgx7Irwf1lS3-5zR2bYmxDhM1zOgBXi29jZnKE,121182
75
+ unicode_logic_kit/dl/owl_manchester.py,sha256=PddEUF-3sZOGCDHVJZzfsUzl61iHme2swyzljIC5g1g,82456
76
+ unicode_logic_kit/dl/owl_reasoner.py,sha256=5F20nlNpDPItC33jK1jOUE_jn9YZw3MDSq6oKAHM29g,41994
77
+ unicode_logic_kit/dl/parser.py,sha256=f9hHbXB6CYkmfp6qAlVxmkTU1NmvGPbKVAajWRWoBbY,18887
78
+ unicode_logic_kit/dl/tableau.py,sha256=syNLUwkH2X2z_9618tdg_O7VIkOXHxWogWGf0BAUlLg,221685
79
+ unicode_logic_kit/dl/translate.py,sha256=SQ2eN1LhM1L15eDuaA7oBugZczqS_qV0nzjjAQp_xY4,150096
80
+ unicode_logic_kit/drt/__init__.py,sha256=S83lvaEfq7-6Yb7fn8jm3PbQul5tcraK7GTk1ByCSO4,5349
81
+ unicode_logic_kit/drt/export.py,sha256=kNU58SOYRhNk25FLl4g528EZqbndb4EfjWUZj0BX1Wc,8979
82
+ unicode_logic_kit/drt/nodes.py,sha256=m9MEmHUf6jXbG1sZESenwFcf1qYbzRIfxnxpkIBu1PM,25518
83
+ unicode_logic_kit/drt/parser.py,sha256=anHnh-lRqKH6d-13Z2C6Sdt9u9q2yWNDAxDpEvezpLU,48914
84
+ unicode_logic_kit/drt/resolve.py,sha256=IYPib3usHXuY3Nq7KVo5zV1HUKV0P7luGao_S1U8YLs,9582
85
+ unicode_logic_kit/drt/reverse.py,sha256=EaL3DoBrbnnlSJnsewB1FGpa27Ip2uT5l2LQi-npsZA,7361
86
+ unicode_logic_kit/eval/__init__.py,sha256=27W2Umdu7fTOegAriWV5ZzdVlBRXy5jkRzBuVt0tMAk,5473
87
+ unicode_logic_kit/eval/batch.py,sha256=Dzj7Eg_rH9JxxisElw4FHPqxSgW8OLCZErkc0FQWXIs,18496
88
+ unicode_logic_kit/eval/canonical.py,sha256=7nwOQCceF_pHPd14-XYub33CCkjz7Iinuk_Y_kTfETY,33312
89
+ unicode_logic_kit/eval/chem_batch.py,sha256=c8ZpZnpkGQ8adkxqZ28EV8aWeBdsvozVPlKdkhe29vs,27487
90
+ unicode_logic_kit/eval/converses.py,sha256=_JHQMkkWR58NzjUBDO9Y2EkuHapkyDjs2R5Jf_L56uk,9942
91
+ unicode_logic_kit/eval/equivalence.py,sha256=NYI44YCk92YTqBnhSZGfu86gT_Zs7IPr4xpgROGi8ZA,24399
92
+ unicode_logic_kit/eval/exercise_gen.py,sha256=seMchMAfzBfkn6LpeJ4amwFmNPqiQYkUsBlRdli6Dig,26600
93
+ unicode_logic_kit/eval/explain.py,sha256=Id5vORCinuPARBUgeH8tbaKR0w56Fq9gnWcWRCxCzok,35302
94
+ unicode_logic_kit/eval/generality.py,sha256=cvkO1waQx-BndXB6Cvfd6_UUVIWYQuG6q2zaeAebaDQ,37708
95
+ unicode_logic_kit/eval/metric_hf.py,sha256=4IMA3d1its4mO-nG7yjuE2x3xXVoiuv_--WMIAG6KYE,23307
96
+ unicode_logic_kit/eval/predicate_match.py,sha256=0qjbnVXYU9lifHibw4578nl_eduw3ylmjTBcYnPTBpE,15245
97
+ unicode_logic_kit/eval/theory_check.py,sha256=2iJXy8iv0XtyZFg9hQ4iYd8u4xyTGHwTLiVhd8uH-Xs,59594
98
+ unicode_logic_kit/eval/validate.py,sha256=EPG54L_MKG2N8A2sIAZNmR-EHxgl9Vq1Ot2GsjouIGc,12239
99
+ unicode_logic_kit/eval/datasets/__init__.py,sha256=PpQAoiYC1xVoLpzdUjlTqF5VbWyzcHDgP26PByrcFPE,7707
100
+ unicode_logic_kit/eval/datasets/_base.py,sha256=AY0QHQ_uUi1KM89kqletFW3VYUXNHRdprKzX_30nqnk,12293
101
+ unicode_logic_kit/eval/datasets/_proofwriter_proof.py,sha256=SchS7YV721Y3qyXydr69ycsldTQPSzTF9Ue3Mbx2uXc,18893
102
+ unicode_logic_kit/eval/datasets/c3po.py,sha256=cWtsThlITl2ZROEuNoNAH9eDrmlSjrpoUy8EVwuu-5I,34157
103
+ unicode_logic_kit/eval/datasets/folio.py,sha256=tN2mkEtjemv-wCK6DnZlAVnzHngHtautNv123LKhaHY,7257
104
+ unicode_logic_kit/eval/datasets/fracas.py,sha256=gFy5WSiV9tOsVQqFoWQCToPIlxG6je0Ob2ZOFMXb_-E,19374
105
+ unicode_logic_kit/eval/datasets/groves.py,sha256=o5MtBg1mPiKD0EKZ_ZQDAg6gLiMHQotNBkOCximXgdo,9846
106
+ unicode_logic_kit/eval/datasets/logicbench.py,sha256=KdJgRxy0teUFA8BsQaS2AmaAF7dSUblO_C6q6fAdOtI,24418
107
+ unicode_logic_kit/eval/datasets/logicnli.py,sha256=1zovxfIKzeIgl1SrjTk993zBRZ_rFuxh0X6uAoS7h7s,16480
108
+ unicode_logic_kit/eval/datasets/malls.py,sha256=zWYxrq3uJrr8fJk0fd6ys6Lyhq0dWBSiDtzoGBnYQ-U,5919
109
+ unicode_logic_kit/eval/datasets/pfolio.py,sha256=yG9Hf0j2qr2PaJOmP6USsiTOCZJuc3-LZPhF2PzO28c,29954
110
+ unicode_logic_kit/eval/datasets/pmb.py,sha256=eqbMh4mbsETC-9sKXMa0wHDY-bPbwMePeXglgXeD37s,13613
111
+ unicode_logic_kit/eval/datasets/prontoqa.py,sha256=_tZfmOSkMuQLru1lUtuH6Zi1c9DkkQj20XtFQGsB-Xo,31034
112
+ unicode_logic_kit/eval/datasets/proofwriter.py,sha256=1DjDMONfe7P3AwGMupJJeKROrX-We-R8Tlhx9VKlbZg,72790
113
+ unicode_logic_kit/eval/datasets/proverqa.py,sha256=Bx40ms5I-X5coTCbUYLyHo37V7PzlrYue0JdJn9eQcw,32576
114
+ unicode_logic_kit/eval/datasets/willow.py,sha256=5PdPJxcISK28Ym1eGrdtlLNfDZCvGTH1nyfQmzjsyjU,22413
115
+ unicode_logic_kit/fol/__init__.py,sha256=nI-2xeKEIX8qF-fgUm0NxJSa4um4W8I17FiDbImPNZ4,7481
116
+ unicode_logic_kit/fol/_atom_keys.py,sha256=BhZ2v1IFdssZNMaAc1jG08D75TZjsUg5tLRh1nnETFc,26501
117
+ unicode_logic_kit/fol/_fol_nodes.py,sha256=4h0wIsqfDM5qiyPRubIopio7OqCMfnWjTIEN91l7jV8,172640
118
+ unicode_logic_kit/fol/_free_parameters.py,sha256=CHbQfZc1N9Z3Y-3s_t5ALKPrQgyl6eHwe_6r5LKK1xc,5402
119
+ unicode_logic_kit/fol/_ho_nodes.py,sha256=7fqlcUNTGtUh_yb-Rwle-JckNW_AJV4tUA_-ZUa-Yn4,20505
120
+ unicode_logic_kit/fol/_hybrid_nodes.py,sha256=H0pVTDUjnMT2Xzf809AEfXq-tTCxuLZ6ER3sdrW1Pac,14807
121
+ unicode_logic_kit/fol/_identifiers.py,sha256=eause6h1wVaBTSwip1Ca-dL4cuzWqoce-RLCMTvdlVA,58816
122
+ unicode_logic_kit/fol/_lambek_nodes.py,sha256=tJmD1ii4umIslEGdqBKjihHCoqgySNNuhSM5rs5YH5c,4817
123
+ unicode_logic_kit/fol/_linear_nodes.py,sha256=KlxnL0ty-2DEF7i6drFrnnORdGHtf1bUTDl1j6R2SK0,15614
124
+ unicode_logic_kit/fol/_modal_nodes.py,sha256=ZSZau53kAtkxzQxyb4gixbYPsxC4EXX594Yd56yfB_Q,67445
125
+ unicode_logic_kit/fol/_msfl_nodes.py,sha256=xAlcjHtSPXDTzPeaQ7Yl_Tvzpo3N88iJCw7cnui53JQ,102267
126
+ unicode_logic_kit/fol/_numeral_symbols.py,sha256=BMSDewzpDE6bEzK2xX1gToJ2iCKzBPGbbo6tBlcJsEY,12231
127
+ unicode_logic_kit/fol/_so_nodes.py,sha256=AW_BEiORV2D1nS0vSC_SlV2cuYLQnJCM1S37z9o2_yE,8423
128
+ unicode_logic_kit/fol/_symbol_names.py,sha256=T51VkTlLo70aa7q4tChFqu2k5aMGy2I780-dk2oGRQQ,3965
129
+ unicode_logic_kit/fol/_team_nodes.py,sha256=0YjsZf-FKMbZ4iIRtN9zQQSjV5uatJZd8Ck36E_kizc,7945
130
+ unicode_logic_kit/fol/_tptp_symbols.py,sha256=Qzr0nQFhdlp2Ybf6bjnxdjgM2g-ICrxGScvUgSGGQqM,28413
131
+ unicode_logic_kit/fol/_truth_constants.py,sha256=TB-wxGNZlNEoLw0nS3qLSd1lANT_Fi2eaZDsMV2uXfE,5175
132
+ unicode_logic_kit/fol/casl_export.py,sha256=17Otpt-gkARt7S-Wu-W2PzzOmoW94MHHhK57mdLrEOs,58577
133
+ unicode_logic_kit/fol/casl_import.py,sha256=oJZ802sU4ecsJ0PYAlT4XKcjhwXO7WTOXjMXJrceBZ0,43223
134
+ unicode_logic_kit/fol/derivation.py,sha256=KGNE7WYWkbwKCAbX9bBEE6xYj7-03bSihR0I7kFKNZg,16564
135
+ unicode_logic_kit/fol/dialect_detect.py,sha256=Eok4pg8JXoBCcXUutKEb00zuEs-fFyYgdxNWvzAtEEs,3342
136
+ unicode_logic_kit/fol/dialect_repair.py,sha256=2yBs8HexpEMR-VIBeagl703a7E2Df1mW5TEZ9AFZRlk,26533
137
+ unicode_logic_kit/fol/frames.py,sha256=XHtcwQ4J8g-q-9ZtNNX5pXfervMvQrmvQZY81KiRLps,29562
138
+ unicode_logic_kit/fol/lambda_tools.py,sha256=Q4w4XPoVtpUShcLYQvXPcfiYzurHK-mwDRsL8MLjA3I,12945
139
+ unicode_logic_kit/fol/latex_input.py,sha256=wSnNB18HUPBFSXWM8C7BqY9_vkL9XC17GWxWPAknK6I,20680
140
+ unicode_logic_kit/fol/modal_translation.py,sha256=9BbJ2U13qFin4zfPd0QMB0nsb7_FMJauyDtg00BwsFc,51140
141
+ unicode_logic_kit/fol/msflparser.py,sha256=fTHBokB2KLkhcNzVQtMnYPOlOyzDOannfVtoFTYhmhs,55889
142
+ unicode_logic_kit/fol/naming.py,sha256=puOClGgMxVV7RbeChaVrRTDxroSCTavNaTGtuv7AE2s,18630
143
+ unicode_logic_kit/fol/nodes.py,sha256=gGL7Ecrs7XQw2v-g9osdZEGiIeSClboXPzQ53DSTk70,11799
144
+ unicode_logic_kit/fol/normalforms.py,sha256=dCVoJ52Okehf_L90pL8N4Ig4I7KtDwkXKOo30G1lpK4,20795
145
+ unicode_logic_kit/fol/pal.py,sha256=cYJU35_O0aPPZfndrDMQCN_5vyqEEPuUDr-XXr_6_YY,16368
146
+ unicode_logic_kit/fol/prolog_export.py,sha256=VnQg6m21J-w40olWsL-pmXqx0bNB4j_ddUJDv_y558M,29746
147
+ unicode_logic_kit/fol/prolog_input.py,sha256=dYi9b5pDVcGDsLclQpU63lAPZ-dh2XU_qrcWhvFrt6c,20973
148
+ unicode_logic_kit/fol/prover9_input.py,sha256=8HpC26QMd-vZkeWyiLp4-QSCeFL2PBqCJZt6NoDotSo,64516
149
+ unicode_logic_kit/fol/qml.py,sha256=z0iZ9K4O_KsZvoLjuZqHMEP-yDiJRJjgM6JYD6_aoZo,100234
150
+ unicode_logic_kit/fol/qmltp_input.py,sha256=Y2KoYAyp-_ITMW_NlMoghNhtRey60Ai3GNOjjzFPFIw,23983
151
+ unicode_logic_kit/fol/sanitize.py,sha256=4SUw3mnzfr3Wpvhje2Ql-AwLZxdtG_V2lVPq9B6uqng,9949
152
+ unicode_logic_kit/fol/serialize.py,sha256=7veR63rFsTnIjJ_o8l6hjyafw3uv8yIz5FEvWp8KuvU,3234
153
+ unicode_logic_kit/fol/signature.py,sha256=EIf1Pc9nDk4hzmDYMJgVW9cQs9XXF54IXdB3LCRDuHY,64681
154
+ unicode_logic_kit/fol/simplify_check.py,sha256=3DuCzyf9ExCjOafKpc3yeo0iKNFp2NUILa7hFKmtUog,26335
155
+ unicode_logic_kit/fol/spans.py,sha256=tvmFGeG2lQF5zbbgUNXi_FPT0GxsgSlenWr7f0cOkX8,28465
156
+ unicode_logic_kit/fol/tptp_input.py,sha256=-uscCkIdd3wUzUW41rm6bgT_6ffi1T6WjQgbq9WQxNQ,67973
157
+ unicode_logic_kit/fol/tptp_repair.py,sha256=QUDBO3-cdz26OXQuralBc0CNofPy2CobpBUPgHFII_U,45821
158
+ unicode_logic_kit/fol/unification.py,sha256=oc2VPug3ww6spsSr6vhUs-pSO1hDJLFliEspHJ0TmvA,6457
159
+ unicode_logic_kit/fol/verbalize.py,sha256=thMpxScC685MxGenyjxCirQ82IfCU9XLV_JbhTNaN8I,11574
160
+ unicode_logic_kit/fol/grammars/terminals.lark,sha256=sKhC3_gx9rlTGJUMk3LO_ku386uR1BtYu_M4OH82FBE,1607
161
+ unicode_logic_kit/hets/__init__.py,sha256=aVYKlJnB4GWw6z0D8zyeu6Sc9Kx4PC1jEyIkP5yIlNE,8444
162
+ unicode_logic_kit/hets/bridge.py,sha256=3iaq_cYfbs-97WR0UX8IAXrGUlNsNfRYZRvuSYZFbHI,7040
163
+ unicode_logic_kit/hets/client.py,sha256=OOpLVpuENqz8PryU8Ecq2EEvPGq5B7k3D6t-rGOGfxI,36880
164
+ unicode_logic_kit/hets/docker.py,sha256=ThMLUamoKZEVpFX-n-cno8Oz3j4FDWS6PtvxF5DoRY0,20447
165
+ unicode_logic_kit/hets/dol.py,sha256=IeEgyAt06zPRZtQrtLAWXhr2vYlGuVuGum4zpj8WI1g,39800
166
+ unicode_logic_kit/hets/haskell_json.py,sha256=FZ5X22bqSGj-NiT1XMninyGKr6Kudw1-ROv6QfX8hMc,15782
167
+ unicode_logic_kit/hets/owl_backend.py,sha256=JE0U8raomXMBmon_DHmLoKF2yVRgQuZeabpMnTBOva0,44606
168
+ unicode_logic_kit/hets/owl_cli.py,sha256=y1ViRvu7iCiS_XdUoZZMIwAmTlbeTGhYbHzjRXsmspA,27657
169
+ unicode_logic_kit/hets/symbols.py,sha256=zaaOLHXppMX_5Rqb4xJVqqhPKCGgbJfhxLs90UbpVBg,22286
170
+ unicode_logic_kit/hol/__init__.py,sha256=_Bm_DmQq3Y2Ig6Fu61PsyokYzEfk-NzEbjtCqha-pe0,8163
171
+ unicode_logic_kit/hol/_ho_common.py,sha256=mPTgzVdRYHj6zgN9TBHGNO6l_s3ZCubiAzx7_hKWyH0,15199
172
+ unicode_logic_kit/hol/_isabelle_binders.py,sha256=5kiWr4r2AcDHJLGRIltEe-ykC_Oqzx2qiO2QmBzi8VA,5939
173
+ unicode_logic_kit/hol/classical.py,sha256=UmUXCT5lJsCStE1U161Uqe7_17AujGkKN6kGO7_PAGc,43704
174
+ unicode_logic_kit/hol/free.py,sha256=UmtTqUSd8EShIM4xcOI66ZXbaaBtXc0Q4BdOqqNW2t0,37400
175
+ unicode_logic_kit/hol/goedel.py,sha256=FTZbPmVADoz9EZf6gXOroXxBPG9CR26PhCSUz0T7lTk,15260
176
+ unicode_logic_kit/hol/ho_modal.py,sha256=zfjdLSTuDZ5nQWpxdpkFQ5uDIkHQzrv-8RYod7QMxLY,93235
177
+ unicode_logic_kit/hol/intuitionistic.py,sha256=fqzIRXvZfhAQJ_x8yi4GX4lcovMvs0W1EuJLHVQ-KjE,22817
178
+ unicode_logic_kit/hol/isabelle_conditional.py,sha256=5jtselN3QlF4X5NlOLx5Iwi1YmtPqwDibj-NZc14U_w,32347
179
+ unicode_logic_kit/hol/isabelle_modal.py,sha256=n_b5jorHplrNwU3ymoKNrbOtnKVetxvaYHmHHy0xnSE,99696
180
+ unicode_logic_kit/hol/isabelle_relevant.py,sha256=Lf3AK2BgMNPzStQ6RPRBl4UYrQmP4j8YXmR1pNnCz5Q,23014
181
+ unicode_logic_kit/hol/isabelle_runner.py,sha256=ih0KA22NsijxP99y2EOHR8ZEys9f0n30LZ9jl3EKDy4,54398
182
+ unicode_logic_kit/hol/isabelle_substructural.py,sha256=7eE7luF0O1RQ-3EN4zDPpF-ZBUtiIw0NwI7exRm574s,44127
183
+ unicode_logic_kit/hol/lean.py,sha256=4zf5l9WnpT4h0XhQZda8UJlR-in7ly9ktLW19pS3G2w,49100
184
+ unicode_logic_kit/hol/manyvalued.py,sha256=d3g6cab3xOF5Tesu6Z61mmsJZp64lmq-LkZKN9AG4WM,43921
185
+ unicode_logic_kit/hol/secondorder.py,sha256=tkLW7grepjbtOXvt8ZUiS7qvIPOYmGGlNfERZXPvrdM,35896
186
+ unicode_logic_kit/hol/thf_modal.py,sha256=lqzYZviM765TfSCSvyMz2516EL5Bo7SZcCwJP0X5iko,54753
187
+ unicode_logic_kit/hol/thirdorder.py,sha256=ODl7L6bjOFWJ5ZtgfshAnAGLy4ZsFYynoBLdRPNR54A,19550
188
+ unicode_logic_kit/hol/deepshallow/__init__.py,sha256=fNT1ktaYxcqHe9xrE176dXR_4ULQ9OZ-sr-MeSgutGk,2306
189
+ unicode_logic_kit/hol/deepshallow/_common.py,sha256=2EaNEi9hAVvePSMqScGUYnb1o4fv6DjabYjdtqS7uWI,8754
190
+ unicode_logic_kit/hol/deepshallow/conditional.py,sha256=jS-G5eqXxa121dCtoV5V4ETNuLC_7n9sbB2ydoKZtvk,12599
191
+ unicode_logic_kit/hol/deepshallow/intuitionistic.py,sha256=RHRyK1cYv5T0cNoHWhM_y20kBeY_FTCwk9STsuK5-O4,9898
192
+ unicode_logic_kit/hol/deepshallow/modal.py,sha256=QQ1v6SVMUdjlJ9ivjghl7wviH41QoOYhDZGD9hc5W4k,11118
193
+ unicode_logic_kit/hol/deepshallow/qml.py,sha256=_fZ20HESlJUvQNmEjtYLFuuvm322DXkw_g504XGp2Q0,22376
194
+ unicode_logic_kit/hol/deepshallow/relevant.py,sha256=mXOOm90piQPUstjDAT4-DB9D4AH6wleNoRrx6Fzdlr0,11452
195
+ unicode_logic_kit/ilp/__init__.py,sha256=kQNKOQ5lmgD15QHcqssFAUO1paLOzJqpOdbKdASMspc,4432
196
+ unicode_logic_kit/ilp/readback.py,sha256=XbySOwmLAqSJX7TwW5mpqjSPN83J1zZVTqTYBIWvF7Q,18707
197
+ unicode_logic_kit/ilp/separation.py,sha256=A02H6iiualIsBsPnybW4u-q1IK1cngd5_DQAmYP09KQ,7110
198
+ unicode_logic_kit/ilp/task.py,sha256=XfjW3YC2COigHhTZB3LiunfmNm4-Y3Gp8ZxlFhKwClE,35059
199
+ unicode_logic_kit/mcp/__init__.py,sha256=QyY6F5SQYVzzguxg0__o6RMfCMDdbluQERBuAGyJx3Q,1440
200
+ unicode_logic_kit/mcp/__main__.py,sha256=22YRCHKoC1zV5OV4VxjiPQgWIRtO-CNGvIYgxws5-8E,109
201
+ unicode_logic_kit/mcp/chem_tools.py,sha256=sNLBNUXjJPc9ihkYRiGSaYBnJNDwRuic7R10Ew7imdw,53986
202
+ unicode_logic_kit/mcp/server.py,sha256=nB9f1WSUO_9cQ9Gq85pVECHsyBSuxI-T70GeKGIgOEA,116192
203
+ unicode_logic_kit/mcp/syntax_spec.py,sha256=2WLAsm2LXiZWcDkxGbH-92n4qtBHrco2Bq8VT3hiRdc,38685
204
+ unicode_logic_kit/prob/__init__.py,sha256=x-yo8MdHfQTVH5smabplu3-47uONYVs7j5ahHR3Bm4k,3070
205
+ unicode_logic_kit/prob/_bdd.py,sha256=G1Tt2Q7efuDRSltmgjWTPZkVPZrH2v_ow3Hjt1ofeag,10517
206
+ unicode_logic_kit/prob/_column_gen.py,sha256=L_dDcJMy7ge8wgXfUt8QNopaCQ24axfqOkvh5xoI9Hk,36252
207
+ unicode_logic_kit/prob/distribution.py,sha256=rQJ7nO6IOP_gll5JmjTs5dxj2L7fCjCyzmXxSQmh2sk,34281
208
+ unicode_logic_kit/prob/nilsson.py,sha256=1nAejvUAAo_B1F_UYQ8C0nEEHU_TTo_dObUa5_qGvxM,23892
209
+ unicode_logic_kit/semantics/__init__.py,sha256=moQd91Mez6JbZFcLp2fJQ539Q8tQciZhvXIgFTH2b7g,7059
210
+ unicode_logic_kit/semantics/_modal_reject.py,sha256=2RkatSSpnKF9Q9rEwTWUMIHE_Zsvzw65XHsb9ZOjM78,7835
211
+ unicode_logic_kit/semantics/action_models.py,sha256=kdkHjqsUXM6NMrRvvmdBlaEKBYKOuTO5ScEdqYSt0vI,25920
212
+ unicode_logic_kit/semantics/asp_models.py,sha256=pK2TlA_rd5ycpvuqfVrUHa0kSL65UKQXfmkPVpXFedo,62947
213
+ unicode_logic_kit/semantics/conditional.py,sha256=qnw3UeyHjtOyH6zP4ko4ilQ7VNTThyV-9iCjWiwkXA8,31209
214
+ unicode_logic_kit/semantics/dynamic_epistemic.py,sha256=VspaBpRTr5ohjGsMyERvIsp84_Ym_lCNDHzprGc_O4Y,4844
215
+ unicode_logic_kit/semantics/free_logic.py,sha256=jPi7ZXfo6zRTjyWOnXwzvmwEJdJucjEKqKqm81jrnE0,48298
216
+ unicode_logic_kit/semantics/fuzzy.py,sha256=J8bYX5NDnlz6RfgfK1ybZle2i3k4a43yZHw1jqpdqLM,19128
217
+ unicode_logic_kit/semantics/fuzzy_kripke.py,sha256=5ax6FRBMF2-UuEQfoChLgX7Mol4U3qPPaiyUtd6C3eY,22711
218
+ unicode_logic_kit/semantics/intuitionistic.py,sha256=K6w7Vrk6MCvEWxCA-aNAi0hx3XfQl2WQmG6MZZwG5Nk,33147
219
+ unicode_logic_kit/semantics/kripke.py,sha256=Zey3Udk5ZfVz98KqNulwkHDQ613xj5aXXLcORp_6qYA,59422
220
+ unicode_logic_kit/semantics/manyvalued.py,sha256=3MXDh75in4SbDDSfk-cZ_ECZYZlG3MZrtek9HVlUb9s,28065
221
+ unicode_logic_kit/semantics/matrix.py,sha256=qRcyiNvpMBVes23hYkq94mRJFIrfXF2oCLRt46c1AkE,16302
222
+ unicode_logic_kit/semantics/model_eval.py,sha256=PX76S00eNhKzp4buRFzEtC1uUBGVlDboqkUpEJAdg-Q,61181
223
+ unicode_logic_kit/semantics/modelfinder.py,sha256=wRQIJ8qC6rEwfzDT76d5VD3YNBjEGy7prUZDPrbkOuE,57685
224
+ unicode_logic_kit/semantics/nonmonotonic.py,sha256=aGa9dxlwRvmjGxGYo-nL9un5m0JSUSrsTO5qiBq87iU,18570
225
+ unicode_logic_kit/semantics/relevant.py,sha256=XIe9iK1IwR8GpPimWte8VObhuzykYDnnQbYqsL9-UqM,16350
226
+ unicode_logic_kit/semantics/secondorder.py,sha256=zDqljd35VWwi5Erc-umaweiAW3-b4xohJGslEjuNc1I,33617
227
+ unicode_logic_kit/semantics/structures.py,sha256=3dcxqNDUZLDfAonCnV3M0eCvAj5LYQmAhxT4U1xY690,16612
228
+ unicode_logic_kit/semantics/tarski.py,sha256=OsrxZrtycsWOK5G-B-Ef73IzwVW8Vkb1aHXUi7CLSEI,47793
229
+ unicode_logic_kit/semantics/team.py,sha256=Oj2DlwEZIqv5yncc1AGFUvK_OXHQQTQURrZrvqBgz5I,15117
230
+ unicode_logic_kit/semantics/team_translation.py,sha256=x4UBu0gzf6Vtm9fAyxI2Lu_ZfCsnkI_M_q8NFza0Qas,22157
231
+ unicode_logic_kit/semantics/thirdorder.py,sha256=Cks7vmJK5upBsmw6iFwRB9XW5kiishWuUP6owRlmh5s,18224
232
+ unicode_logic_kit/semantics/tnorm.py,sha256=wga1lwrmuSJKewh2ur2GzTmm99U5DLBgX2I5CKKn_ho,3091
233
+ unicode_logic_kit/semantics/truthtable.py,sha256=DeVuxQzpq-vdODYjEb20ANTiFLbNdY-5SJi3PQ8cKcQ,8628
234
+ unicode_logic_kit-0.31.0.dist-info/METADATA,sha256=4SuBT9so5uA3ldJdxwIVm1qqD7K8MHZgAO78Fll66SQ,20915
235
+ unicode_logic_kit-0.31.0.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
236
+ unicode_logic_kit-0.31.0.dist-info/licenses/LICENSE,sha256=7dmYojJxe47M_IX5Ud27nxsuIj2u0D4vjALCWFgUo_k,1069
237
+ unicode_logic_kit-0.31.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.32.4
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Felix Vossel
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.