synalog 2.2.0__tar.gz → 2.3.0__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 (192) hide show
  1. synalog-2.3.0/Cargo.lock +491 -0
  2. {synalog-2.2.0 → synalog-2.3.0}/Cargo.toml +5 -8
  3. {synalog-2.2.0 → synalog-2.3.0}/PKG-INFO +4 -1
  4. {synalog-2.2.0 → synalog-2.3.0}/README.md +3 -0
  5. {synalog-2.2.0 → synalog-2.3.0}/docs/cli.md +1 -1
  6. {synalog-2.2.0 → synalog-2.3.0}/docs/development.md +23 -3
  7. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/aggregation.log +8 -8
  8. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/directives.log +2 -2
  9. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/functions.log +6 -6
  10. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/functors.log +8 -8
  11. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/getting_started.log +2 -2
  12. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/knowledge_graphs.log +14 -14
  13. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/recursion.log +4 -4
  14. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/syntax.log +11 -11
  15. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/temporal.log +8 -8
  16. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/temporal_graph.log +11 -11
  17. {synalog-2.2.0 → synalog-2.3.0}/docs/language/functions.md +4 -0
  18. {synalog-2.2.0 → synalog-2.3.0}/docs/language/recursion.md +1 -1
  19. {synalog-2.2.0 → synalog-2.3.0}/docs/verification.md +29 -2
  20. {synalog-2.2.0 → synalog-2.3.0}/pyproject.toml +1 -1
  21. {synalog-2.2.0 → synalog-2.3.0}/python/synalog/__init__.py +2 -0
  22. {synalog-2.2.0 → synalog-2.3.0}/python/synalog/cli.py +1 -1
  23. {synalog-2.2.0 → synalog-2.3.0}/python/synalog/introspect.py +3 -3
  24. {synalog-2.2.0 → synalog-2.3.0}/python/synalog/runners.py +1 -1
  25. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/SKILL.md +1 -1
  26. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/annotations.rs +12 -9
  27. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/annotations_test.rs +4 -4
  28. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/dialects.rs +28 -27
  29. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/expr_translate.rs +14 -7
  30. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/expr_translate_test.rs +5 -5
  31. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/functors.rs +28 -26
  32. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/functors_test.rs +20 -0
  33. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/mod.rs +2 -4
  34. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/rule_translate.rs +3 -3
  35. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/rule_translate_test.rs +1 -1
  36. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/type_inference/builder.rs +5 -5
  37. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/type_inference/built_in.rs +14 -14
  38. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/type_inference/edge.rs +9 -9
  39. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/type_inference/inference.rs +1 -1
  40. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/type_inference/mod.rs +2 -2
  41. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/type_inference/types.rs +2 -2
  42. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/universe.rs +92 -112
  43. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/universe_test.rs +155 -132
  44. {synalog-2.2.0 → synalog-2.3.0}/src/errors.rs +4 -0
  45. {synalog-2.2.0 → synalog-2.3.0}/src/parser/parse.rs +2 -2
  46. {synalog-2.2.0 → synalog-2.3.0}/src/parser/parse_test.rs +1 -1
  47. {synalog-2.2.0 → synalog-2.3.0}/src/python.rs +62 -14
  48. synalog-2.3.0/src/verifier/cast.rs +146 -0
  49. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/contradiction.rs +28 -26
  50. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/mod.rs +10 -0
  51. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/positional.rs +5 -5
  52. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/recursion.rs +9 -29
  53. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/reserved.rs +1 -1
  54. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/safety.rs +4 -4
  55. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/stratification.rs +72 -122
  56. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/vars.rs +8 -8
  57. {synalog-2.2.0 → synalog-2.3.0}/src/wasm.rs +3 -3
  58. synalog-2.3.0/uv.lock +3470 -0
  59. synalog-2.3.0/verified/Cargo.toml +18 -0
  60. synalog-2.3.0/verified/src/cast.rs +153 -0
  61. synalog-2.3.0/verified/src/contradiction.rs +220 -0
  62. synalog-2.3.0/verified/src/lib.rs +633 -0
  63. synalog-2.3.0/verified/src/page.rs +112 -0
  64. synalog-2.3.0/verified/src/plan.rs +707 -0
  65. synalog-2.3.0/verified/src/quote.rs +546 -0
  66. synalog-2.3.0/verified/src/types.rs +625 -0
  67. synalog-2.2.0/Cargo.lock +0 -3315
  68. synalog-2.2.0/src/compiler/concertina.rs +0 -787
  69. synalog-2.2.0/src/compiler/program.rs +0 -617
  70. synalog-2.2.0/src/compiler/program_test.rs +0 -519
  71. synalog-2.2.0/uv.lock +0 -2447
  72. {synalog-2.2.0 → synalog-2.3.0}/.gitignore +0 -0
  73. {synalog-2.2.0 → synalog-2.3.0}/LICENSE +0 -0
  74. {synalog-2.2.0 → synalog-2.3.0}/NOTICE +0 -0
  75. {synalog-2.2.0 → synalog-2.3.0}/docs/assertions.md +0 -0
  76. {synalog-2.2.0 → synalog-2.3.0}/docs/assets/synalog-dark.svg +0 -0
  77. {synalog-2.2.0 → synalog-2.3.0}/docs/assets/synalog-light.svg +0 -0
  78. {synalog-2.2.0 → synalog-2.3.0}/docs/assets/synalog_favicon.png +0 -0
  79. {synalog-2.2.0 → synalog-2.3.0}/docs/benchmark/results.json +0 -0
  80. {synalog-2.2.0 → synalog-2.3.0}/docs/benchmark/speedup_by_engine.png +0 -0
  81. {synalog-2.2.0 → synalog-2.3.0}/docs/benchmark/speedup_distribution.png +0 -0
  82. {synalog-2.2.0 → synalog-2.3.0}/docs/benchmark/summary.md +0 -0
  83. {synalog-2.2.0 → synalog-2.3.0}/docs/benchmark/summary.png +0 -0
  84. {synalog-2.2.0 → synalog-2.3.0}/docs/benchmark/time_comparison.png +0 -0
  85. {synalog-2.2.0 → synalog-2.3.0}/docs/benchmark/verify_by_engine.png +0 -0
  86. {synalog-2.2.0 → synalog-2.3.0}/docs/benchmark.md +0 -0
  87. {synalog-2.2.0 → synalog-2.3.0}/docs/differences-datalog.md +0 -0
  88. {synalog-2.2.0 → synalog-2.3.0}/docs/differences.md +0 -0
  89. {synalog-2.2.0 → synalog-2.3.0}/docs/engines.md +0 -0
  90. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/aggregation.l +0 -0
  91. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/directives.l +0 -0
  92. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/functions.l +0 -0
  93. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/functors.l +0 -0
  94. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/getting_started.l +0 -0
  95. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/knowledge_graphs.l +0 -0
  96. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/recursion.l +0 -0
  97. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/run.py +0 -0
  98. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/shop/concepts/customer.l +0 -0
  99. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/shop/concepts/order_status.l +0 -0
  100. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/shop/data/orders.csv +0 -0
  101. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/shop/layer.toml +0 -0
  102. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/shop/rules/customer_revenue.l +0 -0
  103. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/shop/rules/orders_by_status.l +0 -0
  104. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/shop/rules/top_customers.l +0 -0
  105. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/shop/tables/orders.l +0 -0
  106. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/shop.log +0 -0
  107. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/smoke/concepts/device.l +0 -0
  108. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/smoke/concepts/test_status.l +0 -0
  109. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/smoke/data/smoke_tests.csv +0 -0
  110. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/smoke/layer.toml +0 -0
  111. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/smoke/rules/failures_by_device.l +0 -0
  112. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/smoke/rules/runs_per_day.l +0 -0
  113. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/smoke/tables/smoke_tests.l +0 -0
  114. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/smoke.log +0 -0
  115. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/syntax.l +0 -0
  116. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/temporal.l +0 -0
  117. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/temporal_graph.l +0 -0
  118. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/verification.l +0 -0
  119. {synalog-2.2.0 → synalog-2.3.0}/docs/examples/verification.log +0 -0
  120. {synalog-2.2.0 → synalog-2.3.0}/docs/getting-started.md +0 -0
  121. {synalog-2.2.0 → synalog-2.3.0}/docs/index.md +0 -0
  122. {synalog-2.2.0 → synalog-2.3.0}/docs/javascripts/playground.js +0 -0
  123. {synalog-2.2.0 → synalog-2.3.0}/docs/javascripts/summarize.js +0 -0
  124. {synalog-2.2.0 → synalog-2.3.0}/docs/javascripts/synalog-highlight.js +0 -0
  125. {synalog-2.2.0 → synalog-2.3.0}/docs/knowledge-graphs.md +0 -0
  126. {synalog-2.2.0 → synalog-2.3.0}/docs/language/aggregation.md +0 -0
  127. {synalog-2.2.0 → synalog-2.3.0}/docs/language/directives.md +0 -0
  128. {synalog-2.2.0 → synalog-2.3.0}/docs/language/functors.md +0 -0
  129. {synalog-2.2.0 → synalog-2.3.0}/docs/language/index.md +0 -0
  130. {synalog-2.2.0 → synalog-2.3.0}/docs/language/syntax.md +0 -0
  131. {synalog-2.2.0 → synalog-2.3.0}/docs/language/temporal.md +0 -0
  132. {synalog-2.2.0 → synalog-2.3.0}/docs/playground/vendor/codemirror.js +0 -0
  133. {synalog-2.2.0 → synalog-2.3.0}/docs/playground.md +0 -0
  134. {synalog-2.2.0 → synalog-2.3.0}/docs/python-api.md +0 -0
  135. {synalog-2.2.0 → synalog-2.3.0}/docs/stylesheets/extra.css +0 -0
  136. {synalog-2.2.0 → synalog-2.3.0}/docs/why.md +0 -0
  137. {synalog-2.2.0 → synalog-2.3.0}/img/synalog-dark.svg +0 -0
  138. {synalog-2.2.0 → synalog-2.3.0}/img/synalog-light.svg +0 -0
  139. {synalog-2.2.0 → synalog-2.3.0}/python/synalog/__main__.py +0 -0
  140. {synalog-2.2.0 → synalog-2.3.0}/python/synalog/checking.py +0 -0
  141. {synalog-2.2.0 → synalog-2.3.0}/python/synalog/config.py +0 -0
  142. {synalog-2.2.0 → synalog-2.3.0}/python/synalog/execution.py +0 -0
  143. {synalog-2.2.0 → synalog-2.3.0}/python/synalog/project.py +0 -0
  144. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/company/concepts/department.l +0 -0
  145. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/company/concepts/person.l +0 -0
  146. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/company/concepts/works_in.l +0 -0
  147. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/company/data/departments.csv +0 -0
  148. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/company/data/employees.csv +0 -0
  149. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/company/layer.toml +0 -0
  150. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/company/rules/team_mate.l +0 -0
  151. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/company/tables/departments.l +0 -0
  152. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/company/tables/employees.l +0 -0
  153. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/org/concepts/all_managers.l +0 -0
  154. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/org/data/employees.csv +0 -0
  155. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/org/layer.toml +0 -0
  156. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/org/tables/employees.l +0 -0
  157. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/sales/concepts/region.l +0 -0
  158. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/sales/data/sales.csv +0 -0
  159. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/sales/layer.toml +0 -0
  160. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/sales/rules/monthly_sales.l +0 -0
  161. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/sales/rules/top_region.l +0 -0
  162. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/sales/rules/total_by_region.l +0 -0
  163. {synalog-2.2.0 → synalog-2.3.0}/skills/synalog/examples/sales/tables/sales.l +0 -0
  164. {synalog-2.2.0 → synalog-2.3.0}/src/assertion/mod.rs +0 -0
  165. {synalog-2.2.0 → synalog-2.3.0}/src/assertion/parse.rs +0 -0
  166. {synalog-2.2.0 → synalog-2.3.0}/src/assertion/report.rs +0 -0
  167. {synalog-2.2.0 → synalog-2.3.0}/src/assertion/translate.rs +0 -0
  168. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/dialects_test.rs +0 -0
  169. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/type_inference/expression.rs +0 -0
  170. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/type_inference/graph.rs +0 -0
  171. {synalog-2.2.0 → synalog-2.3.0}/src/compiler/type_inference/intersection.rs +0 -0
  172. {synalog-2.2.0 → synalog-2.3.0}/src/lib.rs +0 -0
  173. {synalog-2.2.0 → synalog-2.3.0}/src/parser/json.rs +0 -0
  174. {synalog-2.2.0 → synalog-2.3.0}/src/parser/json_test.rs +0 -0
  175. {synalog-2.2.0 → synalog-2.3.0}/src/parser/mod.rs +0 -0
  176. {synalog-2.2.0 → synalog-2.3.0}/src/parser/names.rs +0 -0
  177. {synalog-2.2.0 → synalog-2.3.0}/src/parser/rewrite.rs +0 -0
  178. {synalog-2.2.0 → synalog-2.3.0}/src/parser/rewrite_test.rs +0 -0
  179. {synalog-2.2.0 → synalog-2.3.0}/src/parser/span.rs +0 -0
  180. {synalog-2.2.0 → synalog-2.3.0}/src/parser/span_test.rs +0 -0
  181. {synalog-2.2.0 → synalog-2.3.0}/src/parser/traverse.rs +0 -0
  182. {synalog-2.2.0 → synalog-2.3.0}/src/parser/traverse_test.rs +0 -0
  183. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/arity.rs +0 -0
  184. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/assertions.rs +0 -0
  185. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/dependencies.rs +0 -0
  186. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/directives.rs +0 -0
  187. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/front_matter.rs +0 -0
  188. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/functors.rs +0 -0
  189. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/orderby.rs +0 -0
  190. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/sqlexpr.rs +0 -0
  191. {synalog-2.2.0 → synalog-2.3.0}/src/verifier/undefined.rs +0 -0
  192. {synalog-2.2.0 → synalog-2.3.0}/zensical.toml +0 -0
@@ -0,0 +1,491 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "aho-corasick"
7
+ version = "1.1.4"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
10
+ dependencies = [
11
+ "memchr",
12
+ ]
13
+
14
+ [[package]]
15
+ name = "anyhow"
16
+ version = "1.0.102"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
19
+
20
+ [[package]]
21
+ name = "arraydeque"
22
+ version = "0.5.1"
23
+ source = "registry+https://github.com/rust-lang/crates.io-index"
24
+ checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236"
25
+
26
+ [[package]]
27
+ name = "bumpalo"
28
+ version = "3.20.2"
29
+ source = "registry+https://github.com/rust-lang/crates.io-index"
30
+ checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
31
+
32
+ [[package]]
33
+ name = "cfg-if"
34
+ version = "1.0.4"
35
+ source = "registry+https://github.com/rust-lang/crates.io-index"
36
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
37
+
38
+ [[package]]
39
+ name = "convert_case"
40
+ version = "0.4.0"
41
+ source = "registry+https://github.com/rust-lang/crates.io-index"
42
+ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
43
+
44
+ [[package]]
45
+ name = "equivalent"
46
+ version = "1.0.2"
47
+ source = "registry+https://github.com/rust-lang/crates.io-index"
48
+ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f"
49
+
50
+ [[package]]
51
+ name = "foldhash"
52
+ version = "0.2.0"
53
+ source = "registry+https://github.com/rust-lang/crates.io-index"
54
+ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
55
+
56
+ [[package]]
57
+ name = "hashbrown"
58
+ version = "0.16.1"
59
+ source = "registry+https://github.com/rust-lang/crates.io-index"
60
+ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
61
+
62
+ [[package]]
63
+ name = "hashbrown"
64
+ version = "0.17.1"
65
+ source = "registry+https://github.com/rust-lang/crates.io-index"
66
+ checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
67
+ dependencies = [
68
+ "foldhash",
69
+ ]
70
+
71
+ [[package]]
72
+ name = "hashlink"
73
+ version = "0.12.2"
74
+ source = "registry+https://github.com/rust-lang/crates.io-index"
75
+ checksum = "a596f1b20ed2cc5ecac41a164aaebc7258057060f06c0cf7a2ba3991ee7990fb"
76
+ dependencies = [
77
+ "hashbrown 0.17.1",
78
+ ]
79
+
80
+ [[package]]
81
+ name = "heck"
82
+ version = "0.5.0"
83
+ source = "registry+https://github.com/rust-lang/crates.io-index"
84
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
85
+
86
+ [[package]]
87
+ name = "indexmap"
88
+ version = "2.13.0"
89
+ source = "registry+https://github.com/rust-lang/crates.io-index"
90
+ checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
91
+ dependencies = [
92
+ "equivalent",
93
+ "hashbrown 0.16.1",
94
+ ]
95
+
96
+ [[package]]
97
+ name = "itoa"
98
+ version = "1.0.17"
99
+ source = "registry+https://github.com/rust-lang/crates.io-index"
100
+ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
101
+
102
+ [[package]]
103
+ name = "libc"
104
+ version = "0.2.191"
105
+ source = "registry+https://github.com/rust-lang/crates.io-index"
106
+ checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a"
107
+
108
+ [[package]]
109
+ name = "memchr"
110
+ version = "2.8.0"
111
+ source = "registry+https://github.com/rust-lang/crates.io-index"
112
+ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
113
+
114
+ [[package]]
115
+ name = "once_cell"
116
+ version = "1.21.3"
117
+ source = "registry+https://github.com/rust-lang/crates.io-index"
118
+ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
119
+
120
+ [[package]]
121
+ name = "portable-atomic"
122
+ version = "1.13.1"
123
+ source = "registry+https://github.com/rust-lang/crates.io-index"
124
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
125
+
126
+ [[package]]
127
+ name = "proc-macro2"
128
+ version = "1.0.106"
129
+ source = "registry+https://github.com/rust-lang/crates.io-index"
130
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
131
+ dependencies = [
132
+ "unicode-ident",
133
+ ]
134
+
135
+ [[package]]
136
+ name = "pyo3"
137
+ version = "0.29.0"
138
+ source = "registry+https://github.com/rust-lang/crates.io-index"
139
+ checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
140
+ dependencies = [
141
+ "libc",
142
+ "once_cell",
143
+ "portable-atomic",
144
+ "pyo3-build-config",
145
+ "pyo3-ffi",
146
+ "pyo3-macros",
147
+ ]
148
+
149
+ [[package]]
150
+ name = "pyo3-build-config"
151
+ version = "0.29.0"
152
+ source = "registry+https://github.com/rust-lang/crates.io-index"
153
+ checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
154
+ dependencies = [
155
+ "target-lexicon",
156
+ ]
157
+
158
+ [[package]]
159
+ name = "pyo3-ffi"
160
+ version = "0.29.0"
161
+ source = "registry+https://github.com/rust-lang/crates.io-index"
162
+ checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
163
+ dependencies = [
164
+ "libc",
165
+ "pyo3-build-config",
166
+ ]
167
+
168
+ [[package]]
169
+ name = "pyo3-macros"
170
+ version = "0.29.0"
171
+ source = "registry+https://github.com/rust-lang/crates.io-index"
172
+ checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
173
+ dependencies = [
174
+ "proc-macro2",
175
+ "pyo3-macros-backend",
176
+ "quote",
177
+ "syn 2.0.117",
178
+ ]
179
+
180
+ [[package]]
181
+ name = "pyo3-macros-backend"
182
+ version = "0.29.0"
183
+ source = "registry+https://github.com/rust-lang/crates.io-index"
184
+ checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
185
+ dependencies = [
186
+ "heck",
187
+ "proc-macro2",
188
+ "quote",
189
+ "syn 2.0.117",
190
+ ]
191
+
192
+ [[package]]
193
+ name = "quote"
194
+ version = "1.0.45"
195
+ source = "registry+https://github.com/rust-lang/crates.io-index"
196
+ checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
197
+ dependencies = [
198
+ "proc-macro2",
199
+ ]
200
+
201
+ [[package]]
202
+ name = "regex"
203
+ version = "1.12.3"
204
+ source = "registry+https://github.com/rust-lang/crates.io-index"
205
+ checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
206
+ dependencies = [
207
+ "aho-corasick",
208
+ "memchr",
209
+ "regex-automata",
210
+ "regex-syntax",
211
+ ]
212
+
213
+ [[package]]
214
+ name = "regex-automata"
215
+ version = "0.4.14"
216
+ source = "registry+https://github.com/rust-lang/crates.io-index"
217
+ checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
218
+ dependencies = [
219
+ "aho-corasick",
220
+ "memchr",
221
+ "regex-syntax",
222
+ ]
223
+
224
+ [[package]]
225
+ name = "regex-syntax"
226
+ version = "0.8.10"
227
+ source = "registry+https://github.com/rust-lang/crates.io-index"
228
+ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
229
+
230
+ [[package]]
231
+ name = "rustversion"
232
+ version = "1.0.22"
233
+ source = "registry+https://github.com/rust-lang/crates.io-index"
234
+ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
235
+
236
+ [[package]]
237
+ name = "serde"
238
+ version = "1.0.228"
239
+ source = "registry+https://github.com/rust-lang/crates.io-index"
240
+ checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
241
+ dependencies = [
242
+ "serde_core",
243
+ "serde_derive",
244
+ ]
245
+
246
+ [[package]]
247
+ name = "serde_core"
248
+ version = "1.0.228"
249
+ source = "registry+https://github.com/rust-lang/crates.io-index"
250
+ checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
251
+ dependencies = [
252
+ "serde_derive",
253
+ ]
254
+
255
+ [[package]]
256
+ name = "serde_derive"
257
+ version = "1.0.228"
258
+ source = "registry+https://github.com/rust-lang/crates.io-index"
259
+ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
260
+ dependencies = [
261
+ "proc-macro2",
262
+ "quote",
263
+ "syn 2.0.117",
264
+ ]
265
+
266
+ [[package]]
267
+ name = "serde_json"
268
+ version = "1.0.149"
269
+ source = "registry+https://github.com/rust-lang/crates.io-index"
270
+ checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
271
+ dependencies = [
272
+ "itoa",
273
+ "memchr",
274
+ "serde",
275
+ "serde_core",
276
+ "zmij",
277
+ ]
278
+
279
+ [[package]]
280
+ name = "syn"
281
+ version = "2.0.117"
282
+ source = "registry+https://github.com/rust-lang/crates.io-index"
283
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
284
+ dependencies = [
285
+ "proc-macro2",
286
+ "quote",
287
+ "unicode-ident",
288
+ ]
289
+
290
+ [[package]]
291
+ name = "syn"
292
+ version = "3.0.9"
293
+ source = "registry+https://github.com/rust-lang/crates.io-index"
294
+ checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b"
295
+ dependencies = [
296
+ "proc-macro2",
297
+ "quote",
298
+ "unicode-ident",
299
+ ]
300
+
301
+ [[package]]
302
+ name = "synalog"
303
+ version = "2.3.0"
304
+ dependencies = [
305
+ "anyhow",
306
+ "indexmap",
307
+ "pyo3",
308
+ "regex",
309
+ "serde",
310
+ "serde_json",
311
+ "synalog-verified",
312
+ "thiserror",
313
+ "wasm-bindgen",
314
+ "yaml-rust2",
315
+ ]
316
+
317
+ [[package]]
318
+ name = "synalog-verified"
319
+ version = "2.3.0"
320
+ dependencies = [
321
+ "vstd",
322
+ ]
323
+
324
+ [[package]]
325
+ name = "synstructure"
326
+ version = "0.13.2"
327
+ source = "registry+https://github.com/rust-lang/crates.io-index"
328
+ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
329
+ dependencies = [
330
+ "proc-macro2",
331
+ "quote",
332
+ "syn 2.0.117",
333
+ ]
334
+
335
+ [[package]]
336
+ name = "target-lexicon"
337
+ version = "0.13.5"
338
+ source = "registry+https://github.com/rust-lang/crates.io-index"
339
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
340
+
341
+ [[package]]
342
+ name = "thiserror"
343
+ version = "2.0.18"
344
+ source = "registry+https://github.com/rust-lang/crates.io-index"
345
+ checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
346
+ dependencies = [
347
+ "thiserror-impl",
348
+ ]
349
+
350
+ [[package]]
351
+ name = "thiserror-impl"
352
+ version = "2.0.18"
353
+ source = "registry+https://github.com/rust-lang/crates.io-index"
354
+ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
355
+ dependencies = [
356
+ "proc-macro2",
357
+ "quote",
358
+ "syn 2.0.117",
359
+ ]
360
+
361
+ [[package]]
362
+ name = "unicode-ident"
363
+ version = "1.0.24"
364
+ source = "registry+https://github.com/rust-lang/crates.io-index"
365
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
366
+
367
+ [[package]]
368
+ name = "verus_builtin"
369
+ version = "0.0.0-2026-10-11-0230"
370
+ source = "registry+https://github.com/rust-lang/crates.io-index"
371
+ checksum = "d2e5d0972903f31da5271f50645c402122804a4e5292e1694706977ce18cbe67"
372
+
373
+ [[package]]
374
+ name = "verus_builtin_macros"
375
+ version = "0.0.0-2026-10-18-0147"
376
+ source = "registry+https://github.com/rust-lang/crates.io-index"
377
+ checksum = "c420824c5f3528bc29892c12c9083c03e8abe09119456e0ffe98ec3fb16ee5b8"
378
+ dependencies = [
379
+ "convert_case",
380
+ "proc-macro2",
381
+ "quote",
382
+ "syn 2.0.117",
383
+ "synstructure",
384
+ "verus_prettyplease",
385
+ "verus_syn",
386
+ ]
387
+
388
+ [[package]]
389
+ name = "verus_prettyplease"
390
+ version = "0.0.0-2026-09-06-0133"
391
+ source = "registry+https://github.com/rust-lang/crates.io-index"
392
+ checksum = "71956c0dcf55f57fd5a5335fff16981f7e0912d2e887914518c5a64fe36c063c"
393
+ dependencies = [
394
+ "proc-macro2",
395
+ "verus_syn",
396
+ ]
397
+
398
+ [[package]]
399
+ name = "verus_state_machines_macros"
400
+ version = "0.0.0-2026-10-18-0147"
401
+ source = "registry+https://github.com/rust-lang/crates.io-index"
402
+ checksum = "999032b29d28518b813f7b474adbb958a2f41c606d72d84e986546309469eeef"
403
+ dependencies = [
404
+ "indexmap",
405
+ "proc-macro2",
406
+ "quote",
407
+ "verus_syn",
408
+ ]
409
+
410
+ [[package]]
411
+ name = "verus_syn"
412
+ version = "0.0.0-2026-09-06-0133"
413
+ source = "registry+https://github.com/rust-lang/crates.io-index"
414
+ checksum = "7d8b53574934e1f608dfccd809ce17f3733d6eb99c14ce8220326121929e1637"
415
+ dependencies = [
416
+ "proc-macro2",
417
+ "quote",
418
+ "unicode-ident",
419
+ ]
420
+
421
+ [[package]]
422
+ name = "vstd"
423
+ version = "0.0.0-2026-10-18-0147"
424
+ source = "registry+https://github.com/rust-lang/crates.io-index"
425
+ checksum = "eb200973a51d678d3432092ce692c110bf262e281d7ffd55ec028708be84d676"
426
+ dependencies = [
427
+ "verus_builtin",
428
+ "verus_builtin_macros",
429
+ "verus_state_machines_macros",
430
+ ]
431
+
432
+ [[package]]
433
+ name = "wasm-bindgen"
434
+ version = "0.2.129"
435
+ source = "registry+https://github.com/rust-lang/crates.io-index"
436
+ checksum = "9bb54f33acc68fd454578d9820b0bde1a1a3d17aa17bb7b6595806d02886d409"
437
+ dependencies = [
438
+ "cfg-if",
439
+ "once_cell",
440
+ "rustversion",
441
+ "wasm-bindgen-macro",
442
+ "wasm-bindgen-shared",
443
+ ]
444
+
445
+ [[package]]
446
+ name = "wasm-bindgen-macro"
447
+ version = "0.2.129"
448
+ source = "registry+https://github.com/rust-lang/crates.io-index"
449
+ checksum = "2e29d0c35b16e224a7eeb5cd2d25e3e1968fbd65604117b44d3b789d00ee8535"
450
+ dependencies = [
451
+ "quote",
452
+ "wasm-bindgen-macro-support",
453
+ ]
454
+
455
+ [[package]]
456
+ name = "wasm-bindgen-macro-support"
457
+ version = "0.2.129"
458
+ source = "registry+https://github.com/rust-lang/crates.io-index"
459
+ checksum = "6f501a8bc3719dba86ef8ae4728879c08001bea749eb1333ac5b91e040e2a6b7"
460
+ dependencies = [
461
+ "bumpalo",
462
+ "proc-macro2",
463
+ "quote",
464
+ "syn 3.0.9",
465
+ "wasm-bindgen-shared",
466
+ ]
467
+
468
+ [[package]]
469
+ name = "wasm-bindgen-shared"
470
+ version = "0.2.129"
471
+ source = "registry+https://github.com/rust-lang/crates.io-index"
472
+ checksum = "23f0c9c52aa7cd7d77769a4cfe2a9adb1b331f489a41d912ce14513d5ab995c6"
473
+ dependencies = [
474
+ "unicode-ident",
475
+ ]
476
+
477
+ [[package]]
478
+ name = "yaml-rust2"
479
+ version = "0.13.0"
480
+ source = "registry+https://github.com/rust-lang/crates.io-index"
481
+ checksum = "57e5b818a27a4cd30884ea380857a5e56f7ec3ba24a3990a3cc0b95af3238e18"
482
+ dependencies = [
483
+ "arraydeque",
484
+ "hashlink",
485
+ ]
486
+
487
+ [[package]]
488
+ name = "zmij"
489
+ version = "1.0.21"
490
+ source = "registry+https://github.com/rust-lang/crates.io-index"
491
+ checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "synalog"
3
- version = "2.2.0"
3
+ version = "2.3.0"
4
4
  edition = "2024"
5
5
  description = "Logic programming for AI agents: Datalog-family language compiling to optimized SQL"
6
6
  license = "Apache-2.0"
@@ -18,11 +18,12 @@ python = ["dep:pyo3"]
18
18
  # Browser playground: compiles the parser + compiler to wasm via wasm-bindgen.
19
19
  # Build with: --no-default-features --features wasm
20
20
  wasm = ["dep:wasm-bindgen"]
21
- run = ["rusqlite", "duckdb", "postgres-db", "bigquery-db"]
22
- postgres-db = ["postgres"]
23
- bigquery-db = ["reqwest"]
21
+
22
+ [workspace]
23
+ members = ["verified"]
24
24
 
25
25
  [dependencies]
26
+ synalog-verified = { path = "verified" }
26
27
  indexmap = "2"
27
28
  regex = "1.12.3"
28
29
  serde = { version = "1", features = ["derive"] }
@@ -31,10 +32,6 @@ thiserror = "2"
31
32
  anyhow = "1"
32
33
  pyo3 = { version = "0.29", optional = true, features = ["extension-module", "abi3-py310"] }
33
34
  wasm-bindgen = { version = "0.2", optional = true }
34
- rusqlite = { version = "0.34", optional = true, features = ["bundled"] }
35
- duckdb = { version = "1.2", optional = true, features = ["bundled"] }
36
- postgres = { version = "0.19", optional = true }
37
- reqwest = { version = "0.12", optional = true, features = ["blocking", "json"] }
38
35
  yaml-rust2 = { version = "0.13.0", default-features = false }
39
36
 
40
37
  [dev-dependencies]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synalog
3
- Version: 2.2.0
3
+ Version: 2.3.0
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: 3
@@ -605,6 +605,8 @@ Unlike Logica, which lets the database raise errors at execution time, Synalog e
605
605
  | **Reserved names** | Rules that redefine a built-in library predicate (`Num`, `Str`, `ArgMin`, `Today`, `Now`, ...) |
606
606
  | **Unsafe `SqlExpr`** | User rules that reach for the raw-SQL escape hatch |
607
607
 
608
+ The algorithms behind the stratification and recursion checks, the compiler's unfolding of mutual recursion, the order a compiled program's tables run in, the contradiction warning, pagination, the quoting of text into SQL and the `Cast` type-name check are proved correct with [Verus](https://github.com/verus-lang/verus). See [Verification](https://synalinks.github.io/synalog/verification/).
609
+
608
610
  ```python
609
611
  errors, warnings = synalog.check(bad_source)
610
612
  for e in errors:
@@ -654,6 +656,7 @@ cargo test --test compiler_tests # compiler golden tests (all engines)
654
656
  cargo test --test parser_tests # parser golden tests (all engines)
655
657
  cargo test --test verifier_tests # verifier tests (all engines)
656
658
  cargo test --test search_tests # search feature tests (all engines)
659
+ cargo test --test verus_proofs # the Verus proofs of verified/ (shell/install-verus.sh installs Verus)
657
660
  ```
658
661
 
659
662
  ### Tests
@@ -563,6 +563,8 @@ Unlike Logica, which lets the database raise errors at execution time, Synalog e
563
563
  | **Reserved names** | Rules that redefine a built-in library predicate (`Num`, `Str`, `ArgMin`, `Today`, `Now`, ...) |
564
564
  | **Unsafe `SqlExpr`** | User rules that reach for the raw-SQL escape hatch |
565
565
 
566
+ The algorithms behind the stratification and recursion checks, the compiler's unfolding of mutual recursion, the order a compiled program's tables run in, the contradiction warning, pagination, the quoting of text into SQL and the `Cast` type-name check are proved correct with [Verus](https://github.com/verus-lang/verus). See [Verification](https://synalinks.github.io/synalog/verification/).
567
+
566
568
  ```python
567
569
  errors, warnings = synalog.check(bad_source)
568
570
  for e in errors:
@@ -612,6 +614,7 @@ cargo test --test compiler_tests # compiler golden tests (all engines)
612
614
  cargo test --test parser_tests # parser golden tests (all engines)
613
615
  cargo test --test verifier_tests # verifier tests (all engines)
614
616
  cargo test --test search_tests # search feature tests (all engines)
617
+ cargo test --test verus_proofs # the Verus proofs of verified/ (shell/install-verus.sh installs Verus)
615
618
  ```
616
619
 
617
620
  ### Tests
@@ -13,7 +13,7 @@ uvx synalog program.l run Total # on duckdb, the default engine
13
13
 
14
14
  ## One-shot commands
15
15
 
16
- The argument order follows `logica`: the program file first, then the command.
16
+ The program file comes first, then the command.
17
17
 
18
18
  ```bash
19
19
  synalog program.l print Predicate ... # print compiled SQL
@@ -26,8 +26,28 @@ cargo test --test compiler_tests # compiler golden tests (all engines)
26
26
  cargo test --test parser_tests # parser golden tests (all engines)
27
27
  cargo test --test verifier_tests # verifier tests (all engines)
28
28
  cargo test --test search_tests # search feature tests (all engines)
29
+ cargo test --test verus_proofs # the Verus proofs of verified/
30
+ cargo test --test type_intersection # the type inference against the proved intersection
29
31
  ```
30
32
 
33
+ ### Verified algorithms
34
+
35
+ The graph algorithms of the verifier and the compiler (which predicates are
36
+ recursive, which recursion goes through a negation, which predicate cuts a
37
+ mutual recursion, the order a program's tables and loops run in), the
38
+ contradiction warning, pagination, quoting and the `Cast` type-name check live in the `verified/` crate, written in
39
+ [Verus](https://github.com/verus-lang/verus): each function carries a
40
+ specification that Verus proves it meets. A plain `cargo build` erases the
41
+ proofs, so building synalog needs no Verus. Checking them does:
42
+
43
+ ```bash
44
+ shell/install-verus.sh # the Verus release, and the Rust toolchain it requires
45
+ export PATH="$HOME/.verus/verus-arm64-macos:$PATH" # the line the script prints
46
+ cargo test --test verus_proofs # or: cd verified && cargo verus verify
47
+ ```
48
+
49
+ `cargo test` runs `verus_proofs`, so it fails without Verus installed.
50
+
31
51
  The repository also ships a `shell/test.sh` orchestrator (run it from anywhere; it cd's to the repo root):
32
52
 
33
53
  ```bash
@@ -61,17 +81,16 @@ src/
61
81
  errors.rs # Unified error types with help messages
62
82
  python.rs # PyO3 bindings (the _synalog extension module)
63
83
  parser/
64
- parse.rs # Logica syntax -> JSON AST
84
+ parse.rs # Synalog syntax -> JSON AST
65
85
  rewrite.rs # AST rewrites (aggregation, multi-body)
66
86
  json.rs # Custom JSON implementation
67
87
  compiler/
68
- universe.rs # LogicaProgram: AST -> SQL compilation
88
+ universe.rs # SynalogProgram: AST -> SQL compilation
69
89
  annotations.rs # @OrderBy, @Limit, @Recursive, etc.
70
90
  dialects.rs # Engine-specific SQL generation
71
91
  expr_translate.rs # Expression -> SQL translation
72
92
  rule_translate.rs # Rule -> SQL translation
73
93
  functors.rs # Functor expansion (@Make)
74
- concertina.rs # Multi-predicate execution orchestration
75
94
  type_inference/ # Type checking subsystem
76
95
  verifier/
77
96
  mod.rs # Validation entry point
@@ -80,6 +99,7 @@ src/
80
99
  arity.rs # Argument count consistency
81
100
  recursion.rs # Recursion safety checks
82
101
  reserved.rs # Reserved predicate name check
102
+ verified/ # Algorithms proved correct with Verus
83
103
  python/
84
104
  synalog/__init__.py # Python package wrapper
85
105
  synalog/cli.py # The synalog command (one-shot + REPL)
@@ -3,9 +3,9 @@ No errors found.
3
3
 
4
4
  $ synalog.compile('aggregation.l', 'Stats')
5
5
  -- Initializing DuckDB environment.
6
- create schema if not exists logica_home;
6
+ create schema if not exists synalog_home;
7
7
  -- Empty record, has to have a field by DuckDB syntax.
8
- drop type if exists logicarecord893574736 cascade; create type logicarecord893574736 as struct(nirvana numeric);
8
+ drop type if exists synalogrecord893574736 cascade; create type synalogrecord893574736 as struct(nirvana numeric);
9
9
  create sequence if not exists eternal_logical_sequence;
10
10
 
11
11
  WITH t_0_Sales AS (SELECT * FROM (
@@ -62,9 +62,9 @@ GROUP BY Sales.category ORDER BY category;
62
62
 
63
63
  $ synalog.compile('aggregation.l', 'PriceStats')
64
64
  -- Initializing DuckDB environment.
65
- create schema if not exists logica_home;
65
+ create schema if not exists synalog_home;
66
66
  -- Empty record, has to have a field by DuckDB syntax.
67
- drop type if exists logicarecord893574736 cascade; create type logicarecord893574736 as struct(nirvana numeric);
67
+ drop type if exists synalogrecord893574736 cascade; create type synalogrecord893574736 as struct(nirvana numeric);
68
68
  create sequence if not exists eternal_logical_sequence;
69
69
 
70
70
  WITH t_0_Sales AS (SELECT * FROM (
@@ -122,9 +122,9 @@ GROUP BY Sales.category ORDER BY category;
122
122
 
123
123
  $ synalog.compile('aggregation.l', 'UniqueRegions')
124
124
  -- Initializing DuckDB environment.
125
- create schema if not exists logica_home;
125
+ create schema if not exists synalog_home;
126
126
  -- Empty record, has to have a field by DuckDB syntax.
127
- drop type if exists logicarecord893574736 cascade; create type logicarecord893574736 as struct(nirvana numeric);
127
+ drop type if exists synalogrecord893574736 cascade; create type synalogrecord893574736 as struct(nirvana numeric);
128
128
  create sequence if not exists eternal_logical_sequence;
129
129
 
130
130
  WITH t_0_Sales AS (SELECT * FROM (
@@ -180,9 +180,9 @@ GROUP BY Sales.category ORDER BY category;
180
180
 
181
181
  $ synalog.compile('aggregation.l', 'TopSeller')
182
182
  -- Initializing DuckDB environment.
183
- create schema if not exists logica_home;
183
+ create schema if not exists synalog_home;
184
184
  -- Empty record, has to have a field by DuckDB syntax.
185
- drop type if exists logicarecord893574736 cascade; create type logicarecord893574736 as struct(nirvana numeric);
185
+ drop type if exists synalogrecord893574736 cascade; create type synalogrecord893574736 as struct(nirvana numeric);
186
186
  create sequence if not exists eternal_logical_sequence;
187
187
 
188
188
  WITH t_2_Sales AS (SELECT * FROM (
@@ -3,9 +3,9 @@ No errors found.
3
3
 
4
4
  $ synalog.compile('directives.l', 'TopCustomers')
5
5
  -- Initializing DuckDB environment.
6
- create schema if not exists logica_home;
6
+ create schema if not exists synalog_home;
7
7
  -- Empty record, has to have a field by DuckDB syntax.
8
- drop type if exists logicarecord893574736 cascade; create type logicarecord893574736 as struct(nirvana numeric);
8
+ drop type if exists synalogrecord893574736 cascade; create type synalogrecord893574736 as struct(nirvana numeric);
9
9
  create sequence if not exists eternal_logical_sequence;
10
10
 
11
11
  WITH t_0_Orders AS (SELECT * FROM (