@stevenvo780/st-lang 4.3.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/dist/coinduction/index.d.ts +136 -0
  2. package/dist/coinduction/index.d.ts.map +1 -0
  3. package/dist/coinduction/index.js +318 -0
  4. package/dist/coinduction/index.js.map +1 -0
  5. package/dist/combinators-ski/abstract.d.ts +5 -0
  6. package/dist/combinators-ski/abstract.d.ts.map +1 -0
  7. package/dist/combinators-ski/abstract.js +88 -0
  8. package/dist/combinators-ski/abstract.js.map +1 -0
  9. package/dist/combinators-ski/index.d.ts +6 -0
  10. package/dist/combinators-ski/index.d.ts.map +1 -0
  11. package/dist/combinators-ski/index.js +30 -0
  12. package/dist/combinators-ski/index.js.map +1 -0
  13. package/dist/combinators-ski/reduce.d.ts +10 -0
  14. package/dist/combinators-ski/reduce.d.ts.map +1 -0
  15. package/dist/combinators-ski/reduce.js +118 -0
  16. package/dist/combinators-ski/reduce.js.map +1 -0
  17. package/dist/combinators-ski/types.d.ts +23 -0
  18. package/dist/combinators-ski/types.d.ts.map +1 -0
  19. package/dist/combinators-ski/types.js +102 -0
  20. package/dist/combinators-ski/types.js.map +1 -0
  21. package/dist/constructive-reals/index.d.ts +132 -0
  22. package/dist/constructive-reals/index.d.ts.map +1 -0
  23. package/dist/constructive-reals/index.js +723 -0
  24. package/dist/constructive-reals/index.js.map +1 -0
  25. package/dist/game-semantics/convert.d.ts +4 -0
  26. package/dist/game-semantics/convert.d.ts.map +1 -0
  27. package/dist/game-semantics/convert.js +28 -0
  28. package/dist/game-semantics/convert.js.map +1 -0
  29. package/dist/game-semantics/index.d.ts +6 -0
  30. package/dist/game-semantics/index.d.ts.map +1 -0
  31. package/dist/game-semantics/index.js +28 -0
  32. package/dist/game-semantics/index.js.map +1 -0
  33. package/dist/game-semantics/strategy.d.ts +34 -0
  34. package/dist/game-semantics/strategy.d.ts.map +1 -0
  35. package/dist/game-semantics/strategy.js +336 -0
  36. package/dist/game-semantics/strategy.js.map +1 -0
  37. package/dist/game-semantics/types.d.ts +64 -0
  38. package/dist/game-semantics/types.d.ts.map +1 -0
  39. package/dist/game-semantics/types.js +78 -0
  40. package/dist/game-semantics/types.js.map +1 -0
  41. package/dist/higher-order-unify/index.d.ts +5 -0
  42. package/dist/higher-order-unify/index.d.ts.map +1 -0
  43. package/dist/higher-order-unify/index.js +27 -0
  44. package/dist/higher-order-unify/index.js.map +1 -0
  45. package/dist/higher-order-unify/normalize.d.ts +14 -0
  46. package/dist/higher-order-unify/normalize.d.ts.map +1 -0
  47. package/dist/higher-order-unify/normalize.js +191 -0
  48. package/dist/higher-order-unify/normalize.js.map +1 -0
  49. package/dist/higher-order-unify/pattern.d.ts +4 -0
  50. package/dist/higher-order-unify/pattern.d.ts.map +1 -0
  51. package/dist/higher-order-unify/pattern.js +70 -0
  52. package/dist/higher-order-unify/pattern.js.map +1 -0
  53. package/dist/higher-order-unify/types.d.ts +19 -0
  54. package/dist/higher-order-unify/types.d.ts.map +1 -0
  55. package/dist/higher-order-unify/types.js +14 -0
  56. package/dist/higher-order-unify/types.js.map +1 -0
  57. package/dist/higher-order-unify/unify.d.ts +5 -0
  58. package/dist/higher-order-unify/unify.d.ts.map +1 -0
  59. package/dist/higher-order-unify/unify.js +306 -0
  60. package/dist/higher-order-unify/unify.js.map +1 -0
  61. package/dist/index.d.ts +4 -0
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +36 -2
  64. package/dist/index.js.map +1 -1
  65. package/dist/lambda-calc/church.d.ts.map +1 -1
  66. package/dist/lambda-calc/church.js.map +1 -1
  67. package/dist/lambda-calc/combinators.d.ts.map +1 -1
  68. package/dist/lambda-calc/combinators.js.map +1 -1
  69. package/dist/lambda-calc/index.d.ts +1 -1
  70. package/dist/lambda-calc/index.d.ts.map +1 -1
  71. package/dist/lambda-calc/index.js.map +1 -1
  72. package/dist/mltt/equality.d.ts +9 -0
  73. package/dist/mltt/equality.d.ts.map +1 -0
  74. package/dist/mltt/equality.js +79 -0
  75. package/dist/mltt/equality.js.map +1 -0
  76. package/dist/mltt/index.d.ts +8 -0
  77. package/dist/mltt/index.d.ts.map +1 -0
  78. package/dist/mltt/index.js +49 -0
  79. package/dist/mltt/index.js.map +1 -0
  80. package/dist/mltt/infer.d.ts +17 -0
  81. package/dist/mltt/infer.d.ts.map +1 -0
  82. package/dist/mltt/infer.js +269 -0
  83. package/dist/mltt/infer.js.map +1 -0
  84. package/dist/mltt/normalize.d.ts +7 -0
  85. package/dist/mltt/normalize.d.ts.map +1 -0
  86. package/dist/mltt/normalize.js +131 -0
  87. package/dist/mltt/normalize.js.map +1 -0
  88. package/dist/mltt/substitute.d.ts +4 -0
  89. package/dist/mltt/substitute.d.ts.map +1 -0
  90. package/dist/mltt/substitute.js +94 -0
  91. package/dist/mltt/substitute.js.map +1 -0
  92. package/dist/mltt/types.d.ts +72 -0
  93. package/dist/mltt/types.d.ts.map +1 -0
  94. package/dist/mltt/types.js +211 -0
  95. package/dist/mltt/types.js.map +1 -0
  96. package/dist/nbe/index.d.ts +3 -0
  97. package/dist/nbe/index.d.ts.map +1 -0
  98. package/dist/nbe/index.js +25 -0
  99. package/dist/nbe/index.js.map +1 -0
  100. package/dist/nbe/nbe.d.ts +7 -0
  101. package/dist/nbe/nbe.d.ts.map +1 -0
  102. package/dist/nbe/nbe.js +118 -0
  103. package/dist/nbe/nbe.js.map +1 -0
  104. package/dist/nbe/types.d.ts +54 -0
  105. package/dist/nbe/types.d.ts.map +1 -0
  106. package/dist/nbe/types.js +117 -0
  107. package/dist/nbe/types.js.map +1 -0
  108. package/dist/profile-bridge/index.d.ts +64 -0
  109. package/dist/profile-bridge/index.d.ts.map +1 -0
  110. package/dist/profile-bridge/index.js +328 -0
  111. package/dist/profile-bridge/index.js.map +1 -0
  112. package/dist/profiles/many-valued/index.d.ts.map +1 -1
  113. package/dist/profiles/many-valued/index.js.map +1 -1
  114. package/dist/profiles/mu-calculus/check.d.ts +15 -0
  115. package/dist/profiles/mu-calculus/check.d.ts.map +1 -0
  116. package/dist/profiles/mu-calculus/check.js +172 -0
  117. package/dist/profiles/mu-calculus/check.js.map +1 -0
  118. package/dist/profiles/mu-calculus/ctl-translate.d.ts +61 -0
  119. package/dist/profiles/mu-calculus/ctl-translate.d.ts.map +1 -0
  120. package/dist/profiles/mu-calculus/ctl-translate.js +181 -0
  121. package/dist/profiles/mu-calculus/ctl-translate.js.map +1 -0
  122. package/dist/profiles/mu-calculus/index.d.ts +7 -0
  123. package/dist/profiles/mu-calculus/index.d.ts.map +1 -0
  124. package/dist/profiles/mu-calculus/index.js +33 -0
  125. package/dist/profiles/mu-calculus/index.js.map +1 -0
  126. package/dist/profiles/mu-calculus/types.d.ts +51 -0
  127. package/dist/profiles/mu-calculus/types.d.ts.map +1 -0
  128. package/dist/profiles/mu-calculus/types.js +42 -0
  129. package/dist/profiles/mu-calculus/types.js.map +1 -0
  130. package/dist/profiles/mu-calculus/wellformed.d.ts +40 -0
  131. package/dist/profiles/mu-calculus/wellformed.d.ts.map +1 -0
  132. package/dist/profiles/mu-calculus/wellformed.js +160 -0
  133. package/dist/profiles/mu-calculus/wellformed.js.map +1 -0
  134. package/dist/profiles/sequent-lk/cut-elimination.d.ts +11 -0
  135. package/dist/profiles/sequent-lk/cut-elimination.d.ts.map +1 -0
  136. package/dist/profiles/sequent-lk/cut-elimination.js +216 -0
  137. package/dist/profiles/sequent-lk/cut-elimination.js.map +1 -0
  138. package/dist/profiles/sequent-lk/index.d.ts +5 -0
  139. package/dist/profiles/sequent-lk/index.d.ts.map +1 -0
  140. package/dist/profiles/sequent-lk/index.js +24 -0
  141. package/dist/profiles/sequent-lk/index.js.map +1 -0
  142. package/dist/profiles/sequent-lk/prover.d.ts +25 -0
  143. package/dist/profiles/sequent-lk/prover.d.ts.map +1 -0
  144. package/dist/profiles/sequent-lk/prover.js +532 -0
  145. package/dist/profiles/sequent-lk/prover.js.map +1 -0
  146. package/dist/profiles/sequent-lk/types.d.ts +55 -0
  147. package/dist/profiles/sequent-lk/types.d.ts.map +1 -0
  148. package/dist/profiles/sequent-lk/types.js +18 -0
  149. package/dist/profiles/sequent-lk/types.js.map +1 -0
  150. package/dist/profiles/sequent-lk/util.d.ts +18 -0
  151. package/dist/profiles/sequent-lk/util.d.ts.map +1 -0
  152. package/dist/profiles/sequent-lk/util.js +71 -0
  153. package/dist/profiles/sequent-lk/util.js.map +1 -0
  154. package/dist/proof-nets/construct.d.ts +3 -0
  155. package/dist/proof-nets/construct.d.ts.map +1 -0
  156. package/dist/proof-nets/construct.js +85 -0
  157. package/dist/proof-nets/construct.js.map +1 -0
  158. package/dist/proof-nets/correctness.d.ts +3 -0
  159. package/dist/proof-nets/correctness.d.ts.map +1 -0
  160. package/dist/proof-nets/correctness.js +213 -0
  161. package/dist/proof-nets/correctness.js.map +1 -0
  162. package/dist/proof-nets/cut-elim.d.ts +9 -0
  163. package/dist/proof-nets/cut-elim.d.ts.map +1 -0
  164. package/dist/proof-nets/cut-elim.js +149 -0
  165. package/dist/proof-nets/cut-elim.js.map +1 -0
  166. package/dist/proof-nets/index.d.ts +6 -0
  167. package/dist/proof-nets/index.d.ts.map +1 -0
  168. package/dist/proof-nets/index.js +33 -0
  169. package/dist/proof-nets/index.js.map +1 -0
  170. package/dist/proof-nets/types.d.ts +36 -0
  171. package/dist/proof-nets/types.d.ts.map +1 -0
  172. package/dist/proof-nets/types.js +89 -0
  173. package/dist/proof-nets/types.js.map +1 -0
  174. package/dist/refinement-types/checker.d.ts +19 -0
  175. package/dist/refinement-types/checker.d.ts.map +1 -0
  176. package/dist/refinement-types/checker.js +248 -0
  177. package/dist/refinement-types/checker.js.map +1 -0
  178. package/dist/refinement-types/index.d.ts +11 -0
  179. package/dist/refinement-types/index.d.ts.map +1 -0
  180. package/dist/refinement-types/index.js +51 -0
  181. package/dist/refinement-types/index.js.map +1 -0
  182. package/dist/refinement-types/predicate.d.ts +31 -0
  183. package/dist/refinement-types/predicate.d.ts.map +1 -0
  184. package/dist/refinement-types/predicate.js +369 -0
  185. package/dist/refinement-types/predicate.js.map +1 -0
  186. package/dist/refinement-types/solver.d.ts +24 -0
  187. package/dist/refinement-types/solver.d.ts.map +1 -0
  188. package/dist/refinement-types/solver.js +207 -0
  189. package/dist/refinement-types/solver.js.map +1 -0
  190. package/dist/refinement-types/subtype.d.ts +14 -0
  191. package/dist/refinement-types/subtype.d.ts.map +1 -0
  192. package/dist/refinement-types/subtype.js +39 -0
  193. package/dist/refinement-types/subtype.js.map +1 -0
  194. package/dist/refinement-types/types.d.ts +64 -0
  195. package/dist/refinement-types/types.d.ts.map +1 -0
  196. package/dist/refinement-types/types.js +130 -0
  197. package/dist/refinement-types/types.js.map +1 -0
  198. package/dist/runtime/anti-unification/anti-unify.d.ts +22 -0
  199. package/dist/runtime/anti-unification/anti-unify.d.ts.map +1 -0
  200. package/dist/runtime/anti-unification/anti-unify.js +154 -0
  201. package/dist/runtime/anti-unification/anti-unify.js.map +1 -0
  202. package/dist/runtime/anti-unification/index.d.ts +6 -0
  203. package/dist/runtime/anti-unification/index.d.ts.map +1 -0
  204. package/dist/runtime/anti-unification/index.js +23 -0
  205. package/dist/runtime/anti-unification/index.js.map +1 -0
  206. package/dist/runtime/anti-unification/many.d.ts +49 -0
  207. package/dist/runtime/anti-unification/many.d.ts.map +1 -0
  208. package/dist/runtime/anti-unification/many.js +185 -0
  209. package/dist/runtime/anti-unification/many.js.map +1 -0
  210. package/dist/runtime/anti-unification/term-utils.d.ts +40 -0
  211. package/dist/runtime/anti-unification/term-utils.d.ts.map +1 -0
  212. package/dist/runtime/anti-unification/term-utils.js +173 -0
  213. package/dist/runtime/anti-unification/term-utils.js.map +1 -0
  214. package/dist/runtime/anti-unification/types.d.ts +41 -0
  215. package/dist/runtime/anti-unification/types.d.ts.map +1 -0
  216. package/dist/runtime/anti-unification/types.js +26 -0
  217. package/dist/runtime/anti-unification/types.js.map +1 -0
  218. package/dist/runtime/csp/ac3.d.ts +20 -0
  219. package/dist/runtime/csp/ac3.d.ts.map +1 -0
  220. package/dist/runtime/csp/ac3.js +165 -0
  221. package/dist/runtime/csp/ac3.js.map +1 -0
  222. package/dist/runtime/csp/backtrack.d.ts +15 -0
  223. package/dist/runtime/csp/backtrack.d.ts.map +1 -0
  224. package/dist/runtime/csp/backtrack.js +233 -0
  225. package/dist/runtime/csp/backtrack.js.map +1 -0
  226. package/dist/runtime/csp/builtins.d.ts +27 -0
  227. package/dist/runtime/csp/builtins.d.ts.map +1 -0
  228. package/dist/runtime/csp/builtins.js +109 -0
  229. package/dist/runtime/csp/builtins.js.map +1 -0
  230. package/dist/runtime/csp/index.d.ts +5 -0
  231. package/dist/runtime/csp/index.d.ts.map +1 -0
  232. package/dist/runtime/csp/index.js +23 -0
  233. package/dist/runtime/csp/index.js.map +1 -0
  234. package/dist/runtime/csp/types.d.ts +54 -0
  235. package/dist/runtime/csp/types.d.ts.map +1 -0
  236. package/dist/runtime/csp/types.js +14 -0
  237. package/dist/runtime/csp/types.js.map +1 -0
  238. package/dist/runtime/markov-logic/grounding.d.ts +19 -0
  239. package/dist/runtime/markov-logic/grounding.d.ts.map +1 -0
  240. package/dist/runtime/markov-logic/grounding.js +252 -0
  241. package/dist/runtime/markov-logic/grounding.js.map +1 -0
  242. package/dist/runtime/markov-logic/index.d.ts +6 -0
  243. package/dist/runtime/markov-logic/index.d.ts.map +1 -0
  244. package/dist/runtime/markov-logic/index.js +47 -0
  245. package/dist/runtime/markov-logic/index.js.map +1 -0
  246. package/dist/runtime/markov-logic/inference.d.ts +77 -0
  247. package/dist/runtime/markov-logic/inference.d.ts.map +1 -0
  248. package/dist/runtime/markov-logic/inference.js +382 -0
  249. package/dist/runtime/markov-logic/inference.js.map +1 -0
  250. package/dist/runtime/markov-logic/parser.d.ts +25 -0
  251. package/dist/runtime/markov-logic/parser.d.ts.map +1 -0
  252. package/dist/runtime/markov-logic/parser.js +264 -0
  253. package/dist/runtime/markov-logic/parser.js.map +1 -0
  254. package/dist/runtime/markov-logic/types.d.ts +64 -0
  255. package/dist/runtime/markov-logic/types.d.ts.map +1 -0
  256. package/dist/runtime/markov-logic/types.js +17 -0
  257. package/dist/runtime/markov-logic/types.js.map +1 -0
  258. package/dist/runtime/pi-calculus/congruence.d.ts +15 -0
  259. package/dist/runtime/pi-calculus/congruence.d.ts.map +1 -0
  260. package/dist/runtime/pi-calculus/congruence.js +271 -0
  261. package/dist/runtime/pi-calculus/congruence.js.map +1 -0
  262. package/dist/runtime/pi-calculus/index.d.ts +6 -0
  263. package/dist/runtime/pi-calculus/index.d.ts.map +1 -0
  264. package/dist/runtime/pi-calculus/index.js +30 -0
  265. package/dist/runtime/pi-calculus/index.js.map +1 -0
  266. package/dist/runtime/pi-calculus/names.d.ts +28 -0
  267. package/dist/runtime/pi-calculus/names.d.ts.map +1 -0
  268. package/dist/runtime/pi-calculus/names.js +182 -0
  269. package/dist/runtime/pi-calculus/names.js.map +1 -0
  270. package/dist/runtime/pi-calculus/reduction.d.ts +25 -0
  271. package/dist/runtime/pi-calculus/reduction.d.ts.map +1 -0
  272. package/dist/runtime/pi-calculus/reduction.js +338 -0
  273. package/dist/runtime/pi-calculus/reduction.js.map +1 -0
  274. package/dist/runtime/pi-calculus/substitution.d.ts +11 -0
  275. package/dist/runtime/pi-calculus/substitution.d.ts.map +1 -0
  276. package/dist/runtime/pi-calculus/substitution.js +109 -0
  277. package/dist/runtime/pi-calculus/substitution.js.map +1 -0
  278. package/dist/runtime/pi-calculus/types.d.ts +38 -0
  279. package/dist/runtime/pi-calculus/types.d.ts.map +1 -0
  280. package/dist/runtime/pi-calculus/types.js +22 -0
  281. package/dist/runtime/pi-calculus/types.js.map +1 -0
  282. package/dist/runtime/planning/astar.d.ts +10 -0
  283. package/dist/runtime/planning/astar.d.ts.map +1 -0
  284. package/dist/runtime/planning/astar.js +155 -0
  285. package/dist/runtime/planning/astar.js.map +1 -0
  286. package/dist/runtime/planning/bfs.d.ts +17 -0
  287. package/dist/runtime/planning/bfs.d.ts.map +1 -0
  288. package/dist/runtime/planning/bfs.js +87 -0
  289. package/dist/runtime/planning/bfs.js.map +1 -0
  290. package/dist/runtime/planning/ground.d.ts +55 -0
  291. package/dist/runtime/planning/ground.d.ts.map +1 -0
  292. package/dist/runtime/planning/ground.js +154 -0
  293. package/dist/runtime/planning/ground.js.map +1 -0
  294. package/dist/runtime/planning/heuristic.d.ts +29 -0
  295. package/dist/runtime/planning/heuristic.d.ts.map +1 -0
  296. package/dist/runtime/planning/heuristic.js +172 -0
  297. package/dist/runtime/planning/heuristic.js.map +1 -0
  298. package/dist/runtime/planning/index.d.ts +6 -0
  299. package/dist/runtime/planning/index.d.ts.map +1 -0
  300. package/dist/runtime/planning/index.js +38 -0
  301. package/dist/runtime/planning/index.js.map +1 -0
  302. package/dist/runtime/planning/types.d.ts +100 -0
  303. package/dist/runtime/planning/types.d.ts.map +1 -0
  304. package/dist/runtime/planning/types.js +22 -0
  305. package/dist/runtime/planning/types.js.map +1 -0
  306. package/dist/runtime/symbolic-diff/differentiate.d.ts.map +1 -1
  307. package/dist/runtime/symbolic-diff/differentiate.js.map +1 -1
  308. package/dist/runtime/symbolic-diff/index.d.ts +1 -1
  309. package/dist/runtime/symbolic-diff/index.d.ts.map +1 -1
  310. package/dist/runtime/symbolic-diff/index.js.map +1 -1
  311. package/dist/runtime/symbolic-diff/parse.d.ts.map +1 -1
  312. package/dist/runtime/symbolic-diff/parse.js +7 -1
  313. package/dist/runtime/symbolic-diff/parse.js.map +1 -1
  314. package/dist/runtime/theorem-cache/cache.d.ts +100 -0
  315. package/dist/runtime/theorem-cache/cache.d.ts.map +1 -0
  316. package/dist/runtime/theorem-cache/cache.js +213 -0
  317. package/dist/runtime/theorem-cache/cache.js.map +1 -0
  318. package/dist/runtime/theorem-cache/canonical.d.ts +59 -0
  319. package/dist/runtime/theorem-cache/canonical.d.ts.map +1 -0
  320. package/dist/runtime/theorem-cache/canonical.js +105 -0
  321. package/dist/runtime/theorem-cache/canonical.js.map +1 -0
  322. package/dist/runtime/theorem-cache/index.d.ts +6 -0
  323. package/dist/runtime/theorem-cache/index.d.ts.map +1 -0
  324. package/dist/runtime/theorem-cache/index.js +16 -0
  325. package/dist/runtime/theorem-cache/index.js.map +1 -0
  326. package/dist/runtime/theorem-cache/pattern.d.ts +24 -0
  327. package/dist/runtime/theorem-cache/pattern.d.ts.map +1 -0
  328. package/dist/runtime/theorem-cache/pattern.js +80 -0
  329. package/dist/runtime/theorem-cache/pattern.js.map +1 -0
  330. package/dist/system-f/index.d.ts +7 -0
  331. package/dist/system-f/index.d.ts.map +1 -0
  332. package/dist/system-f/index.js +48 -0
  333. package/dist/system-f/index.js.map +1 -0
  334. package/dist/system-f/infer.d.ts +9 -0
  335. package/dist/system-f/infer.d.ts.map +1 -0
  336. package/dist/system-f/infer.js +94 -0
  337. package/dist/system-f/infer.js.map +1 -0
  338. package/dist/system-f/reduce.d.ts +15 -0
  339. package/dist/system-f/reduce.d.ts.map +1 -0
  340. package/dist/system-f/reduce.js +259 -0
  341. package/dist/system-f/reduce.js.map +1 -0
  342. package/dist/system-f/types.d.ts +53 -0
  343. package/dist/system-f/types.d.ts.map +1 -0
  344. package/dist/system-f/types.js +157 -0
  345. package/dist/system-f/types.js.map +1 -0
  346. package/dist/tableau-framework/TableauProver.d.ts +10 -0
  347. package/dist/tableau-framework/TableauProver.d.ts.map +1 -0
  348. package/dist/tableau-framework/TableauProver.js +118 -0
  349. package/dist/tableau-framework/TableauProver.js.map +1 -0
  350. package/dist/tableau-framework/index.d.ts +5 -0
  351. package/dist/tableau-framework/index.d.ts.map +1 -0
  352. package/dist/tableau-framework/index.js +11 -0
  353. package/dist/tableau-framework/index.js.map +1 -0
  354. package/dist/tableau-framework/propositional.d.ts +11 -0
  355. package/dist/tableau-framework/propositional.d.ts.map +1 -0
  356. package/dist/tableau-framework/propositional.js +143 -0
  357. package/dist/tableau-framework/propositional.js.map +1 -0
  358. package/dist/tableau-framework/types.d.ts +32 -0
  359. package/dist/tableau-framework/types.d.ts.map +1 -0
  360. package/dist/tableau-framework/types.js +6 -0
  361. package/dist/tableau-framework/types.js.map +1 -0
  362. package/dist/tests/anti-unification/anti-unify.test.d.ts +2 -0
  363. package/dist/tests/anti-unification/anti-unify.test.d.ts.map +1 -0
  364. package/dist/tests/anti-unification/anti-unify.test.js +219 -0
  365. package/dist/tests/anti-unification/anti-unify.test.js.map +1 -0
  366. package/dist/tests/coinduction/coinduction.test.d.ts +2 -0
  367. package/dist/tests/coinduction/coinduction.test.d.ts.map +1 -0
  368. package/dist/tests/coinduction/coinduction.test.js +217 -0
  369. package/dist/tests/coinduction/coinduction.test.js.map +1 -0
  370. package/dist/tests/combinators-ski/combinators-ski.test.d.ts +2 -0
  371. package/dist/tests/combinators-ski/combinators-ski.test.d.ts.map +1 -0
  372. package/dist/tests/combinators-ski/combinators-ski.test.js +211 -0
  373. package/dist/tests/combinators-ski/combinators-ski.test.js.map +1 -0
  374. package/dist/tests/constructive-reals/constructive-reals.test.d.ts +2 -0
  375. package/dist/tests/constructive-reals/constructive-reals.test.d.ts.map +1 -0
  376. package/dist/tests/constructive-reals/constructive-reals.test.js +357 -0
  377. package/dist/tests/constructive-reals/constructive-reals.test.js.map +1 -0
  378. package/dist/tests/coverage-fill-aristotelian.test.js +1 -1
  379. package/dist/tests/coverage-fill-aristotelian.test.js.map +1 -1
  380. package/dist/tests/coverage-fill-fallacies.test.js +1 -1
  381. package/dist/tests/coverage-fill-fallacies.test.js.map +1 -1
  382. package/dist/tests/coverage-fill-format.test.js +1 -1
  383. package/dist/tests/coverage-fill-format.test.js.map +1 -1
  384. package/dist/tests/coverage-fill-intuitionistic.test.js +1 -1
  385. package/dist/tests/coverage-fill-intuitionistic.test.js.map +1 -1
  386. package/dist/tests/coverage-fill-probabilistic.test.js +1 -1
  387. package/dist/tests/coverage-fill-probabilistic.test.js.map +1 -1
  388. package/dist/tests/csp/csp.test.d.ts +2 -0
  389. package/dist/tests/csp/csp.test.d.ts.map +1 -0
  390. package/dist/tests/csp/csp.test.js +292 -0
  391. package/dist/tests/csp/csp.test.js.map +1 -0
  392. package/dist/tests/game-semantics/game-semantics.test.d.ts +2 -0
  393. package/dist/tests/game-semantics/game-semantics.test.d.ts.map +1 -0
  394. package/dist/tests/game-semantics/game-semantics.test.js +143 -0
  395. package/dist/tests/game-semantics/game-semantics.test.js.map +1 -0
  396. package/dist/tests/higher-order-unify/ho-unify.test.d.ts +2 -0
  397. package/dist/tests/higher-order-unify/ho-unify.test.d.ts.map +1 -0
  398. package/dist/tests/higher-order-unify/ho-unify.test.js +264 -0
  399. package/dist/tests/higher-order-unify/ho-unify.test.js.map +1 -0
  400. package/dist/tests/integration/cross-modules.test.d.ts +8 -0
  401. package/dist/tests/integration/cross-modules.test.d.ts.map +1 -0
  402. package/dist/tests/integration/cross-modules.test.js +668 -0
  403. package/dist/tests/integration/cross-modules.test.js.map +1 -0
  404. package/dist/tests/lambda-calc/lambda-calc.test.js.map +1 -1
  405. package/dist/tests/many-valued/many-valued.test.js.map +1 -1
  406. package/dist/tests/markov-logic/markov-logic.test.d.ts +2 -0
  407. package/dist/tests/markov-logic/markov-logic.test.d.ts.map +1 -0
  408. package/dist/tests/markov-logic/markov-logic.test.js +349 -0
  409. package/dist/tests/markov-logic/markov-logic.test.js.map +1 -0
  410. package/dist/tests/mltt/mltt.test.d.ts +2 -0
  411. package/dist/tests/mltt/mltt.test.d.ts.map +1 -0
  412. package/dist/tests/mltt/mltt.test.js +181 -0
  413. package/dist/tests/mltt/mltt.test.js.map +1 -0
  414. package/dist/tests/mu-calculus/check.test.d.ts +2 -0
  415. package/dist/tests/mu-calculus/check.test.d.ts.map +1 -0
  416. package/dist/tests/mu-calculus/check.test.js +234 -0
  417. package/dist/tests/mu-calculus/check.test.js.map +1 -0
  418. package/dist/tests/nbe/nbe.test.d.ts +2 -0
  419. package/dist/tests/nbe/nbe.test.d.ts.map +1 -0
  420. package/dist/tests/nbe/nbe.test.js +121 -0
  421. package/dist/tests/nbe/nbe.test.js.map +1 -0
  422. package/dist/tests/pi-calculus/pi-calculus.test.d.ts +2 -0
  423. package/dist/tests/pi-calculus/pi-calculus.test.d.ts.map +1 -0
  424. package/dist/tests/pi-calculus/pi-calculus.test.js +273 -0
  425. package/dist/tests/pi-calculus/pi-calculus.test.js.map +1 -0
  426. package/dist/tests/planning/planning.test.d.ts +2 -0
  427. package/dist/tests/planning/planning.test.d.ts.map +1 -0
  428. package/dist/tests/planning/planning.test.js +397 -0
  429. package/dist/tests/planning/planning.test.js.map +1 -0
  430. package/dist/tests/profile-bridge/translations.test.d.ts +2 -0
  431. package/dist/tests/profile-bridge/translations.test.d.ts.map +1 -0
  432. package/dist/tests/profile-bridge/translations.test.js +266 -0
  433. package/dist/tests/profile-bridge/translations.test.js.map +1 -0
  434. package/dist/tests/proof-nets/proof-nets.test.d.ts +2 -0
  435. package/dist/tests/proof-nets/proof-nets.test.d.ts.map +1 -0
  436. package/dist/tests/proof-nets/proof-nets.test.js +263 -0
  437. package/dist/tests/proof-nets/proof-nets.test.js.map +1 -0
  438. package/dist/tests/refinement-types/refinement-types.test.d.ts +2 -0
  439. package/dist/tests/refinement-types/refinement-types.test.d.ts.map +1 -0
  440. package/dist/tests/refinement-types/refinement-types.test.js +174 -0
  441. package/dist/tests/refinement-types/refinement-types.test.js.map +1 -0
  442. package/dist/tests/sequent-lk/prover.test.d.ts +2 -0
  443. package/dist/tests/sequent-lk/prover.test.d.ts.map +1 -0
  444. package/dist/tests/sequent-lk/prover.test.js +317 -0
  445. package/dist/tests/sequent-lk/prover.test.js.map +1 -0
  446. package/dist/tests/symbolic-diff/symbolic-diff.test.js.map +1 -1
  447. package/dist/tests/system-f/system-f.test.d.ts +2 -0
  448. package/dist/tests/system-f/system-f.test.d.ts.map +1 -0
  449. package/dist/tests/system-f/system-f.test.js +217 -0
  450. package/dist/tests/system-f/system-f.test.js.map +1 -0
  451. package/dist/tests/tableau-framework/tableau.test.d.ts +2 -0
  452. package/dist/tests/tableau-framework/tableau.test.d.ts.map +1 -0
  453. package/dist/tests/tableau-framework/tableau.test.js +196 -0
  454. package/dist/tests/tableau-framework/tableau.test.js.map +1 -0
  455. package/dist/tests/theorem-cache/cache.test.d.ts +2 -0
  456. package/dist/tests/theorem-cache/cache.test.d.ts.map +1 -0
  457. package/dist/tests/theorem-cache/cache.test.js +510 -0
  458. package/dist/tests/theorem-cache/cache.test.js.map +1 -0
  459. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"congruence.js","sourceRoot":"","sources":["../../../src/runtime/pi-calculus/congruence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type { PiProcess } from './types';
2
+ export { freeNames, boundNames, alphaRename, freshName } from './names';
3
+ export { substitute } from './substitution';
4
+ export { reduce, isDeadlocked, trace } from './reduction';
5
+ export { structuralCongruence } from './congruence';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/pi-calculus/index.ts"],"names":[],"mappings":"AAcA,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST π-calculus — barrel público.
4
+ // ============================================================
5
+ // API:
6
+ // freeNames(p) → Set<string> de nombres libres
7
+ // boundNames(p) → Set<string> de nombres ligados
8
+ // alphaRename(p, oldN, newN) → AST con α-renaming
9
+ // substitute(p, x, v) → p[x := v] capture-avoiding
10
+ // reduce(p) → PiProcess[] sucesores (un paso →)
11
+ // isDeadlocked(p) → boolean
12
+ // trace(p, maxSteps?) → traza determinista
13
+ // structuralCongruence(a, b) → ≡
14
+ // ============================================================
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.structuralCongruence = exports.trace = exports.isDeadlocked = exports.reduce = exports.substitute = exports.freshName = exports.alphaRename = exports.boundNames = exports.freeNames = void 0;
17
+ var names_1 = require("./names");
18
+ Object.defineProperty(exports, "freeNames", { enumerable: true, get: function () { return names_1.freeNames; } });
19
+ Object.defineProperty(exports, "boundNames", { enumerable: true, get: function () { return names_1.boundNames; } });
20
+ Object.defineProperty(exports, "alphaRename", { enumerable: true, get: function () { return names_1.alphaRename; } });
21
+ Object.defineProperty(exports, "freshName", { enumerable: true, get: function () { return names_1.freshName; } });
22
+ var substitution_1 = require("./substitution");
23
+ Object.defineProperty(exports, "substitute", { enumerable: true, get: function () { return substitution_1.substitute; } });
24
+ var reduction_1 = require("./reduction");
25
+ Object.defineProperty(exports, "reduce", { enumerable: true, get: function () { return reduction_1.reduce; } });
26
+ Object.defineProperty(exports, "isDeadlocked", { enumerable: true, get: function () { return reduction_1.isDeadlocked; } });
27
+ Object.defineProperty(exports, "trace", { enumerable: true, get: function () { return reduction_1.trace; } });
28
+ var congruence_1 = require("./congruence");
29
+ Object.defineProperty(exports, "structuralCongruence", { enumerable: true, get: function () { return congruence_1.structuralCongruence; } });
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/pi-calculus/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,kCAAkC;AAClC,+DAA+D;AAC/D,OAAO;AACP,kEAAkE;AAClE,mEAAmE;AACnE,uDAAuD;AACvD,+DAA+D;AAC/D,sEAAsE;AACtE,4CAA4C;AAC5C,uDAAuD;AACvD,sCAAsC;AACtC,+DAA+D;;;AAG/D,iCAAwE;AAA/D,kGAAA,SAAS,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,kGAAA,SAAS,OAAA;AACtD,+CAA4C;AAAnC,0GAAA,UAAU,OAAA;AACnB,yCAA0D;AAAjD,mGAAA,MAAM,OAAA;AAAE,yGAAA,YAAY,OAAA;AAAE,kGAAA,KAAK,OAAA;AACpC,2CAAoD;AAA3C,kHAAA,oBAAoB,OAAA"}
@@ -0,0 +1,28 @@
1
+ import type { PiProcess } from './types';
2
+ /**
3
+ * Conjunto de nombres libres de un proceso π. Un nombre es "libre" si
4
+ * aparece referenciado pero no está bajo el alcance de un binder
5
+ * (input `c(x)` liga `x`; new `(νc)` liga `c`).
6
+ */
7
+ export declare function freeNames(p: PiProcess): Set<string>;
8
+ /**
9
+ * Conjunto de nombres ligados (introducidos por algún binder en el
10
+ * subárbol). Útil para detectar shadowing y evitar capturas.
11
+ */
12
+ export declare function boundNames(p: PiProcess): Set<string>;
13
+ /**
14
+ * α-renaming: renombrar un nombre en todo el AST. Útil para:
15
+ * - Refrescar nombres ligados antes de sustituir (evitar capturas).
16
+ * - Normalizar canales restringidos al testear congruencia estructural.
17
+ *
18
+ * No diferencia entre nombres libres y ligados: simplemente reemplaza
19
+ * cada ocurrencia de `oldN` por `newN`. La diferenciación libre/ligado
20
+ * se hace en `substitute`, que usa `alphaRename` como utility.
21
+ */
22
+ export declare function alphaRename(p: PiProcess, oldN: string, newN: string): PiProcess;
23
+ /**
24
+ * Genera un nombre fresco que no aparece en ninguno de los conjuntos
25
+ * `avoid`. Estrategia simple: base + sufijo numérico incremental.
26
+ */
27
+ export declare function freshName(base: string, avoid: ReadonlySet<string>): string;
28
+ //# sourceMappingURL=names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.d.ts","sourceRoot":"","sources":["../../../src/runtime/pi-calculus/names.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAiCnD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAwBpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CA2D/E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAK1E"}
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // π-calculus — nombres libres / ligados y α-renaming.
4
+ // ============================================================
5
+ // Definiciones estándar (Milner, "Communicating and Mobile Systems"):
6
+ //
7
+ // fn(0) = ∅
8
+ // fn(c(x).P) = {c} ∪ (fn(P) \ {x}) x está ligado en P
9
+ // fn(c̄⟨v⟩.P) = {c, v} ∪ fn(P)
10
+ // fn(P|Q) = fn(P) ∪ fn(Q)
11
+ // fn((νc) P) = fn(P) \ {c} c está ligado en P
12
+ // fn(!P) = fn(P)
13
+ // fn(P+Q) = fn(P) ∪ fn(Q)
14
+ // fn([x=y].P) = {x, y} ∪ fn(P)
15
+ //
16
+ // bn(0) = ∅
17
+ // bn(c(x).P) = {x} ∪ bn(P)
18
+ // bn((νc) P) = {c} ∪ bn(P)
19
+ // (resto = unión de los hijos)
20
+ // ============================================================
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.freeNames = freeNames;
23
+ exports.boundNames = boundNames;
24
+ exports.alphaRename = alphaRename;
25
+ exports.freshName = freshName;
26
+ /**
27
+ * Conjunto de nombres libres de un proceso π. Un nombre es "libre" si
28
+ * aparece referenciado pero no está bajo el alcance de un binder
29
+ * (input `c(x)` liga `x`; new `(νc)` liga `c`).
30
+ */
31
+ function freeNames(p) {
32
+ switch (p.kind) {
33
+ case 'nil':
34
+ return new Set();
35
+ case 'input': {
36
+ const fnCont = freeNames(p.cont);
37
+ fnCont.delete(p.bind);
38
+ fnCont.add(p.channel);
39
+ return fnCont;
40
+ }
41
+ case 'output': {
42
+ const fnCont = freeNames(p.cont);
43
+ fnCont.add(p.channel);
44
+ fnCont.add(p.value);
45
+ return fnCont;
46
+ }
47
+ case 'parallel':
48
+ case 'choice':
49
+ return union(freeNames(p.left), freeNames(p.right));
50
+ case 'new': {
51
+ const fnBody = freeNames(p.body);
52
+ fnBody.delete(p.channel);
53
+ return fnBody;
54
+ }
55
+ case 'replication':
56
+ return freeNames(p.body);
57
+ case 'match': {
58
+ const fnCont = freeNames(p.cont);
59
+ fnCont.add(p.left);
60
+ fnCont.add(p.right);
61
+ return fnCont;
62
+ }
63
+ }
64
+ }
65
+ /**
66
+ * Conjunto de nombres ligados (introducidos por algún binder en el
67
+ * subárbol). Útil para detectar shadowing y evitar capturas.
68
+ */
69
+ function boundNames(p) {
70
+ switch (p.kind) {
71
+ case 'nil':
72
+ return new Set();
73
+ case 'input': {
74
+ const bn = boundNames(p.cont);
75
+ bn.add(p.bind);
76
+ return bn;
77
+ }
78
+ case 'output':
79
+ return boundNames(p.cont);
80
+ case 'parallel':
81
+ case 'choice':
82
+ return union(boundNames(p.left), boundNames(p.right));
83
+ case 'new': {
84
+ const bn = boundNames(p.body);
85
+ bn.add(p.channel);
86
+ return bn;
87
+ }
88
+ case 'replication':
89
+ return boundNames(p.body);
90
+ case 'match':
91
+ return boundNames(p.cont);
92
+ }
93
+ }
94
+ /**
95
+ * α-renaming: renombrar un nombre en todo el AST. Útil para:
96
+ * - Refrescar nombres ligados antes de sustituir (evitar capturas).
97
+ * - Normalizar canales restringidos al testear congruencia estructural.
98
+ *
99
+ * No diferencia entre nombres libres y ligados: simplemente reemplaza
100
+ * cada ocurrencia de `oldN` por `newN`. La diferenciación libre/ligado
101
+ * se hace en `substitute`, que usa `alphaRename` como utility.
102
+ */
103
+ function alphaRename(p, oldN, newN) {
104
+ if (oldN === newN)
105
+ return p;
106
+ switch (p.kind) {
107
+ case 'nil':
108
+ return p;
109
+ case 'input': {
110
+ const newChannel = p.channel === oldN ? newN : p.channel;
111
+ // Si el binder mismo es `oldN`, la sustitución se detiene en él:
112
+ // el cuerpo `cont` ya no ve `oldN` como referencia al exterior.
113
+ if (p.bind === oldN) {
114
+ return { kind: 'input', channel: newChannel, bind: p.bind, cont: p.cont };
115
+ }
116
+ return {
117
+ kind: 'input',
118
+ channel: newChannel,
119
+ bind: p.bind,
120
+ cont: alphaRename(p.cont, oldN, newN),
121
+ };
122
+ }
123
+ case 'output':
124
+ return {
125
+ kind: 'output',
126
+ channel: p.channel === oldN ? newN : p.channel,
127
+ value: p.value === oldN ? newN : p.value,
128
+ cont: alphaRename(p.cont, oldN, newN),
129
+ };
130
+ case 'parallel':
131
+ return {
132
+ kind: 'parallel',
133
+ left: alphaRename(p.left, oldN, newN),
134
+ right: alphaRename(p.right, oldN, newN),
135
+ };
136
+ case 'choice':
137
+ return {
138
+ kind: 'choice',
139
+ left: alphaRename(p.left, oldN, newN),
140
+ right: alphaRename(p.right, oldN, newN),
141
+ };
142
+ case 'new': {
143
+ // Mismo principio que en input: el binder atrapa el nombre.
144
+ if (p.channel === oldN) {
145
+ return p;
146
+ }
147
+ return {
148
+ kind: 'new',
149
+ channel: p.channel,
150
+ body: alphaRename(p.body, oldN, newN),
151
+ };
152
+ }
153
+ case 'replication':
154
+ return { kind: 'replication', body: alphaRename(p.body, oldN, newN) };
155
+ case 'match':
156
+ return {
157
+ kind: 'match',
158
+ left: p.left === oldN ? newN : p.left,
159
+ right: p.right === oldN ? newN : p.right,
160
+ cont: alphaRename(p.cont, oldN, newN),
161
+ };
162
+ }
163
+ }
164
+ /**
165
+ * Genera un nombre fresco que no aparece en ninguno de los conjuntos
166
+ * `avoid`. Estrategia simple: base + sufijo numérico incremental.
167
+ */
168
+ function freshName(base, avoid) {
169
+ if (!avoid.has(base))
170
+ return base;
171
+ let i = 0;
172
+ while (avoid.has(`${base}_${i}`))
173
+ i++;
174
+ return `${base}_${i}`;
175
+ }
176
+ function union(a, b) {
177
+ const out = new Set(a);
178
+ for (const x of b)
179
+ out.add(x);
180
+ return out;
181
+ }
182
+ //# sourceMappingURL=names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"names.js","sourceRoot":"","sources":["../../../src/runtime/pi-calculus/names.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { PiProcess } from './types';
2
+ /**
3
+ * Devuelve todos los procesos sucesores tras un paso de reducción.
4
+ *
5
+ * Implementa la regla COMM atravesando new (canales restringidos pueden
6
+ * comunicar internamente: scope extrusion básica intra-scope) y desplegando
7
+ * replicaciones lazy. Match se evalúa al pasar.
8
+ *
9
+ * Si el resultado es vacío, no hay comunicación posible (deadlock o
10
+ * proceso terminal).
11
+ */
12
+ export declare function reduce(p: PiProcess): PiProcess[];
13
+ /**
14
+ * `isDeadlocked(p)`: `true` si no hay ninguna reducción posible.
15
+ * Incluye procesos terminales (`0`, `0 | 0`, etc.) y procesos con
16
+ * prefijos que no pueden sincronizar por incompatibilidad de canales.
17
+ */
18
+ export declare function isDeadlocked(p: PiProcess): boolean;
19
+ /**
20
+ * `trace(p, maxSteps)`: explora una traza determinista (elige el
21
+ * primer sucesor en cada paso). Útil para inspección, no pretende ser
22
+ * una semántica completa. Se detiene en deadlock o tras `maxSteps`.
23
+ */
24
+ export declare function trace(p: PiProcess, maxSteps?: number): PiProcess[];
25
+ //# sourceMappingURL=reduction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduction.d.ts","sourceRoot":"","sources":["../../../src/runtime/pi-calculus/reduction.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA4HzC;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAMhD;AAuND;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAElD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,GAAE,MAAY,GAAG,SAAS,EAAE,CAWvE"}
@@ -0,0 +1,338 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // π-calculus — semántica de reducción (operacional).
4
+ // ============================================================
5
+ // Reglas básicas (relación →):
6
+ //
7
+ // COMM c̄⟨v⟩.P | c(x).Q → P | Q[x := v]
8
+ // PAR P → P' ⇒ P|Q → P'|Q
9
+ // RES P → P' ⇒ (νc) P → (νc) P'
10
+ // STRUCT P ≡ P' → Q' ≡ Q ⇒ P → Q (congruencia estructural)
11
+ // SUM P → P' ⇒ P + Q → P' (elige rama y descarta otra)
12
+ // REPL !P → P | !P (unfold de replicación)
13
+ // MATCH [x = x].P → P (match exitoso)
14
+ //
15
+ // La función `reduce(p)` devuelve el conjunto de todos los procesos
16
+ // inmediatamente sucesores; un proceso sin sucesores está deadlocked.
17
+ // ============================================================
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.reduce = reduce;
20
+ exports.isDeadlocked = isDeadlocked;
21
+ exports.trace = trace;
22
+ const substitution_1 = require("./substitution");
23
+ const names_1 = require("./names");
24
+ /**
25
+ * Recolecta todos los prefijos input expuestos al "top level" del
26
+ * proceso (es decir, no anidados bajo otro prefijo o binder cerrado).
27
+ * Atraviesa parallel, choice, replication (haciendo unfold virtual) y
28
+ * new (transparentemente, registrando el contexto).
29
+ *
30
+ * Cada prefijo recolectado lleva una función `rebuild` que dado un
31
+ * proceso reemplazo (lo que queda tras consumir el prefijo) reconstruye
32
+ * el proceso global con esa parte cambiada.
33
+ */
34
+ function collectInputs(p, rebuild, out) {
35
+ switch (p.kind) {
36
+ case 'input':
37
+ out.push({
38
+ channel: p.channel,
39
+ bind: p.bind,
40
+ cont: p.cont,
41
+ rebuild,
42
+ });
43
+ break;
44
+ case 'parallel':
45
+ collectInputs(p.left, (q) => rebuild({ kind: 'parallel', left: q, right: p.right }), out);
46
+ collectInputs(p.right, (q) => rebuild({ kind: 'parallel', left: p.left, right: q }), out);
47
+ break;
48
+ case 'choice':
49
+ // En un choice, consumir un prefijo descarta la otra rama.
50
+ collectInputs(p.left, (q) => rebuild(q), out);
51
+ collectInputs(p.right, (q) => rebuild(q), out);
52
+ break;
53
+ case 'replication':
54
+ // Unfold: !P ≡ P | !P. Tomamos una copia y dejamos la replicación intacta.
55
+ collectInputs(p.body, (q) => rebuild({ kind: 'parallel', left: q, right: { kind: 'replication', body: p.body } }), out);
56
+ break;
57
+ case 'match':
58
+ if (p.left === p.right) {
59
+ // [x=x].P se evalúa a P; entonces los prefijos visibles son los de P.
60
+ collectInputs(p.cont, rebuild, out);
61
+ }
62
+ break;
63
+ case 'new':
64
+ case 'nil':
65
+ case 'output':
66
+ // new se trata fuera de este recolector (afecta el contexto de scope).
67
+ // output y nil no exponen inputs en el top level.
68
+ break;
69
+ }
70
+ }
71
+ function collectOutputs(p, rebuild, out) {
72
+ switch (p.kind) {
73
+ case 'output':
74
+ out.push({
75
+ channel: p.channel,
76
+ value: p.value,
77
+ cont: p.cont,
78
+ rebuild,
79
+ });
80
+ break;
81
+ case 'parallel':
82
+ collectOutputs(p.left, (q) => rebuild({ kind: 'parallel', left: q, right: p.right }), out);
83
+ collectOutputs(p.right, (q) => rebuild({ kind: 'parallel', left: p.left, right: q }), out);
84
+ break;
85
+ case 'choice':
86
+ collectOutputs(p.left, (q) => rebuild(q), out);
87
+ collectOutputs(p.right, (q) => rebuild(q), out);
88
+ break;
89
+ case 'replication':
90
+ collectOutputs(p.body, (q) => rebuild({ kind: 'parallel', left: q, right: { kind: 'replication', body: p.body } }), out);
91
+ break;
92
+ case 'match':
93
+ if (p.left === p.right) {
94
+ collectOutputs(p.cont, rebuild, out);
95
+ }
96
+ break;
97
+ case 'new':
98
+ case 'nil':
99
+ case 'input':
100
+ break;
101
+ }
102
+ }
103
+ // ------------------------------------------------------------
104
+ // reduce — devuelve los procesos sucesores posibles (un paso →).
105
+ // ------------------------------------------------------------
106
+ /**
107
+ * Devuelve todos los procesos sucesores tras un paso de reducción.
108
+ *
109
+ * Implementa la regla COMM atravesando new (canales restringidos pueden
110
+ * comunicar internamente: scope extrusion básica intra-scope) y desplegando
111
+ * replicaciones lazy. Match se evalúa al pasar.
112
+ *
113
+ * Si el resultado es vacío, no hay comunicación posible (deadlock o
114
+ * proceso terminal).
115
+ */
116
+ function reduce(p) {
117
+ // Caso especial: [x=x].P → P es una "reducción" silenciosa
118
+ // (no es COMM, pero forma parte de la relación →). Lo exponemos también.
119
+ const successors = [];
120
+ collectCommReductions(p, (q) => q, successors);
121
+ return successors;
122
+ }
123
+ /**
124
+ * Recorre el AST descendiendo por (ν) (que no bloquea reducciones
125
+ * internas) y emite todos los sucesores de COMM.
126
+ */
127
+ function collectCommReductions(p, rebuild, out) {
128
+ // 1. Match top-level
129
+ if (p.kind === 'match' && p.left === p.right) {
130
+ out.push(rebuild(p.cont));
131
+ }
132
+ // 2. Descenso por (νc) — las reducciones dentro suben envueltas.
133
+ if (p.kind === 'new') {
134
+ collectCommReductions(p.body, (q) => rebuild({ kind: 'new', channel: p.channel, body: q }), out);
135
+ }
136
+ // 3. COMM: buscamos pares input/output con el mismo canal en este "nivel".
137
+ const inputs = [];
138
+ const outputs = [];
139
+ collectInputs(p, (q) => q, inputs);
140
+ collectOutputs(p, (q) => q, outputs);
141
+ for (const i of inputs) {
142
+ for (const o of outputs) {
143
+ if (i.channel !== o.channel)
144
+ continue;
145
+ // Para sincronizar dentro del mismo proceso necesitamos que i y o
146
+ // vivan en ramas paralelas: el rebuild de uno aplicado al resultado
147
+ // del otro debe componer paralelamente. Reconstruimos manualmente:
148
+ const reduced = applyComm(p, i, o);
149
+ if (reduced !== null)
150
+ out.push(rebuild(reduced));
151
+ }
152
+ }
153
+ }
154
+ /**
155
+ * Aplica una reducción COMM concreta sobre `p`: localiza los prefijos
156
+ * `i` y `o` (que viven en ramas paralelas) y los reemplaza por sus
157
+ * continuaciones (con sustitución en el input).
158
+ *
159
+ * Estrategia: como `rebuild` de cada prefijo asume que reemplaza
160
+ * solo su propio sub-proceso, no podemos componerlos directamente.
161
+ * En su lugar reconstruimos el AST haciendo un "structural walk" que
162
+ * marca y reemplaza los dos prefijos en una sola pasada.
163
+ */
164
+ function applyComm(p, i, o) {
165
+ const marker = { found: false };
166
+ const result = replaceTwoPrefixes(p, i, o, marker);
167
+ return marker.found ? result : null;
168
+ }
169
+ /**
170
+ * Reemplaza simultáneamente el prefijo input `i` y el prefijo output `o`
171
+ * en el AST. Los identifica por referencia estructural (mismo kind y
172
+ * mismas continuaciones — funciona porque collectInputs/Outputs
173
+ * preserva las referencias originales).
174
+ */
175
+ function replaceTwoPrefixes(p, i, o, marker) {
176
+ // ¿Es el input que buscamos?
177
+ if (p.kind === 'input' && p.channel === i.channel && p.bind === i.bind && p.cont === i.cont) {
178
+ const substituted = (0, substitution_1.substitute)(p.cont, p.bind, o.value);
179
+ return substituted;
180
+ }
181
+ // ¿Es el output que buscamos?
182
+ if (p.kind === 'output' && p.channel === o.channel && p.value === o.value && p.cont === o.cont) {
183
+ return p.cont;
184
+ }
185
+ switch (p.kind) {
186
+ case 'nil':
187
+ case 'input':
188
+ case 'output':
189
+ return p;
190
+ case 'parallel': {
191
+ const leftHadIO = containsPrefixes(p.left, i, o);
192
+ const rightHadIO = containsPrefixes(p.right, i, o);
193
+ if (leftHadIO.hasInput && rightHadIO.hasOutput) {
194
+ marker.found = true;
195
+ return {
196
+ kind: 'parallel',
197
+ left: replaceTwoPrefixes(p.left, i, o, { found: false }),
198
+ right: replaceTwoPrefixes(p.right, i, o, { found: false }),
199
+ };
200
+ }
201
+ if (rightHadIO.hasInput && leftHadIO.hasOutput) {
202
+ marker.found = true;
203
+ return {
204
+ kind: 'parallel',
205
+ left: replaceTwoPrefixes(p.left, i, o, { found: false }),
206
+ right: replaceTwoPrefixes(p.right, i, o, { found: false }),
207
+ };
208
+ }
209
+ // Ambos en el mismo lado: descender.
210
+ if (leftHadIO.hasInput && leftHadIO.hasOutput) {
211
+ return {
212
+ kind: 'parallel',
213
+ left: replaceTwoPrefixes(p.left, i, o, marker),
214
+ right: p.right,
215
+ };
216
+ }
217
+ if (rightHadIO.hasInput && rightHadIO.hasOutput) {
218
+ return {
219
+ kind: 'parallel',
220
+ left: p.left,
221
+ right: replaceTwoPrefixes(p.right, i, o, marker),
222
+ };
223
+ }
224
+ return p;
225
+ }
226
+ case 'choice': {
227
+ // En un choice, elegir un prefijo descarta la otra rama.
228
+ const leftHas = containsPrefixes(p.left, i, o);
229
+ const rightHas = containsPrefixes(p.right, i, o);
230
+ if (leftHas.hasInput || leftHas.hasOutput) {
231
+ return replaceTwoPrefixes(p.left, i, o, marker);
232
+ }
233
+ if (rightHas.hasInput || rightHas.hasOutput) {
234
+ return replaceTwoPrefixes(p.right, i, o, marker);
235
+ }
236
+ return p;
237
+ }
238
+ case 'new': {
239
+ // α-renombramos el binder si el valor a enviar coincide (evita captura).
240
+ let body = p.body;
241
+ let channel = p.channel;
242
+ if (p.channel === o.value) {
243
+ const avoid = new Set();
244
+ for (const n of (0, names_1.freeNames)(body))
245
+ avoid.add(n);
246
+ avoid.add(o.value);
247
+ avoid.add(i.bind);
248
+ const fresh = (0, names_1.freshName)(p.channel, avoid);
249
+ body = (0, names_1.alphaRename)(body, p.channel, fresh);
250
+ channel = fresh;
251
+ }
252
+ return { kind: 'new', channel, body: replaceTwoPrefixes(body, i, o, marker) };
253
+ }
254
+ case 'replication': {
255
+ // Desplegamos: !P ≡ P | !P; el prefijo consumido viene de la copia.
256
+ const has = containsPrefixes(p.body, i, o);
257
+ if ((has.hasInput || has.hasOutput) && (has.hasInput || has.hasOutput)) {
258
+ const unfolded = {
259
+ kind: 'parallel',
260
+ left: p.body,
261
+ right: { kind: 'replication', body: p.body },
262
+ };
263
+ return replaceTwoPrefixes(unfolded, i, o, marker);
264
+ }
265
+ return p;
266
+ }
267
+ case 'match':
268
+ if (p.left === p.right) {
269
+ return replaceTwoPrefixes(p.cont, i, o, marker);
270
+ }
271
+ return p;
272
+ }
273
+ }
274
+ /**
275
+ * Tests si un subárbol contiene los prefijos buscados (por referencia).
276
+ * Conservador: si `p` está bajo replicación, se reporta como "contiene"
277
+ * porque podría producir una copia.
278
+ */
279
+ function containsPrefixes(p, i, o) {
280
+ let hasInput = false;
281
+ let hasOutput = false;
282
+ walk(p);
283
+ return { hasInput, hasOutput };
284
+ function walk(q) {
285
+ if (q.kind === 'input' && q.channel === i.channel && q.bind === i.bind && q.cont === i.cont) {
286
+ hasInput = true;
287
+ }
288
+ if (q.kind === 'output' &&
289
+ q.channel === o.channel &&
290
+ q.value === o.value &&
291
+ q.cont === o.cont) {
292
+ hasOutput = true;
293
+ }
294
+ switch (q.kind) {
295
+ case 'parallel':
296
+ case 'choice':
297
+ walk(q.left);
298
+ walk(q.right);
299
+ return;
300
+ case 'new':
301
+ case 'replication':
302
+ walk(q.body);
303
+ return;
304
+ case 'match':
305
+ walk(q.cont);
306
+ return;
307
+ default:
308
+ return;
309
+ }
310
+ }
311
+ }
312
+ /**
313
+ * `isDeadlocked(p)`: `true` si no hay ninguna reducción posible.
314
+ * Incluye procesos terminales (`0`, `0 | 0`, etc.) y procesos con
315
+ * prefijos que no pueden sincronizar por incompatibilidad de canales.
316
+ */
317
+ function isDeadlocked(p) {
318
+ return reduce(p).length === 0;
319
+ }
320
+ /**
321
+ * `trace(p, maxSteps)`: explora una traza determinista (elige el
322
+ * primer sucesor en cada paso). Útil para inspección, no pretende ser
323
+ * una semántica completa. Se detiene en deadlock o tras `maxSteps`.
324
+ */
325
+ function trace(p, maxSteps = 100) {
326
+ const result = [p];
327
+ let current = p;
328
+ for (let step = 0; step < maxSteps; step++) {
329
+ const next = reduce(current);
330
+ if (next.length === 0)
331
+ break;
332
+ const head = next[0];
333
+ result.push(head);
334
+ current = head;
335
+ }
336
+ return result;
337
+ }
338
+ //# sourceMappingURL=reduction.js.map