@stevenvo780/st-lang 4.9.0 → 4.11.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 (241) hide show
  1. package/dist/logic/profiles/natural-deduction-nk/formula.d.ts +18 -0
  2. package/dist/logic/profiles/natural-deduction-nk/formula.d.ts.map +1 -0
  3. package/dist/logic/profiles/natural-deduction-nk/formula.js +102 -0
  4. package/dist/logic/profiles/natural-deduction-nk/formula.js.map +1 -0
  5. package/dist/logic/profiles/natural-deduction-nk/index.d.ts +5 -0
  6. package/dist/logic/profiles/natural-deduction-nk/index.d.ts.map +1 -0
  7. package/dist/logic/profiles/natural-deduction-nk/index.js +28 -0
  8. package/dist/logic/profiles/natural-deduction-nk/index.js.map +1 -0
  9. package/dist/logic/profiles/natural-deduction-nk/prover.d.ts +49 -0
  10. package/dist/logic/profiles/natural-deduction-nk/prover.d.ts.map +1 -0
  11. package/dist/logic/profiles/natural-deduction-nk/prover.js +557 -0
  12. package/dist/logic/profiles/natural-deduction-nk/prover.js.map +1 -0
  13. package/dist/logic/profiles/natural-deduction-nk/types.d.ts +48 -0
  14. package/dist/logic/profiles/natural-deduction-nk/types.d.ts.map +1 -0
  15. package/dist/logic/profiles/natural-deduction-nk/types.js +35 -0
  16. package/dist/logic/profiles/natural-deduction-nk/types.js.map +1 -0
  17. package/dist/proof-systems/distributed-exchange/index.d.ts +101 -0
  18. package/dist/proof-systems/distributed-exchange/index.d.ts.map +1 -0
  19. package/dist/proof-systems/distributed-exchange/index.js +408 -0
  20. package/dist/proof-systems/distributed-exchange/index.js.map +1 -0
  21. package/dist/reasoning/automata/dfa.d.ts +17 -0
  22. package/dist/reasoning/automata/dfa.d.ts.map +1 -0
  23. package/dist/reasoning/automata/dfa.js +276 -0
  24. package/dist/reasoning/automata/dfa.js.map +1 -0
  25. package/dist/reasoning/automata/index.d.ts +8 -0
  26. package/dist/reasoning/automata/index.d.ts.map +1 -0
  27. package/dist/reasoning/automata/index.js +64 -0
  28. package/dist/reasoning/automata/index.js.map +1 -0
  29. package/dist/reasoning/automata/languages.d.ts +10 -0
  30. package/dist/reasoning/automata/languages.d.ts.map +1 -0
  31. package/dist/reasoning/automata/languages.js +78 -0
  32. package/dist/reasoning/automata/languages.js.map +1 -0
  33. package/dist/reasoning/automata/nfa.d.ts +8 -0
  34. package/dist/reasoning/automata/nfa.d.ts.map +1 -0
  35. package/dist/reasoning/automata/nfa.js +122 -0
  36. package/dist/reasoning/automata/nfa.js.map +1 -0
  37. package/dist/reasoning/automata/pda.d.ts +10 -0
  38. package/dist/reasoning/automata/pda.d.ts.map +1 -0
  39. package/dist/reasoning/automata/pda.js +169 -0
  40. package/dist/reasoning/automata/pda.js.map +1 -0
  41. package/dist/reasoning/automata/regex.d.ts +6 -0
  42. package/dist/reasoning/automata/regex.d.ts.map +1 -0
  43. package/dist/reasoning/automata/regex.js +259 -0
  44. package/dist/reasoning/automata/regex.js.map +1 -0
  45. package/dist/reasoning/automata/types.d.ts +69 -0
  46. package/dist/reasoning/automata/types.d.ts.map +1 -0
  47. package/dist/reasoning/automata/types.js +29 -0
  48. package/dist/reasoning/automata/types.js.map +1 -0
  49. package/dist/reasoning/computability/index.d.ts +239 -0
  50. package/dist/reasoning/computability/index.d.ts.map +1 -0
  51. package/dist/reasoning/computability/index.js +851 -0
  52. package/dist/reasoning/computability/index.js.map +1 -0
  53. package/dist/reasoning/graph-theory/index.d.ts +63 -0
  54. package/dist/reasoning/graph-theory/index.d.ts.map +1 -0
  55. package/dist/reasoning/graph-theory/index.js +1043 -0
  56. package/dist/reasoning/graph-theory/index.js.map +1 -0
  57. package/dist/reasoning/group-presentation/cayley.d.ts +8 -0
  58. package/dist/reasoning/group-presentation/cayley.d.ts.map +1 -0
  59. package/dist/reasoning/group-presentation/cayley.js +38 -0
  60. package/dist/reasoning/group-presentation/cayley.js.map +1 -0
  61. package/dist/reasoning/group-presentation/index.d.ts +8 -0
  62. package/dist/reasoning/group-presentation/index.d.ts.map +1 -0
  63. package/dist/reasoning/group-presentation/index.js +36 -0
  64. package/dist/reasoning/group-presentation/index.js.map +1 -0
  65. package/dist/reasoning/group-presentation/standard-groups.d.ts +6 -0
  66. package/dist/reasoning/group-presentation/standard-groups.d.ts.map +1 -0
  67. package/dist/reasoning/group-presentation/standard-groups.js +93 -0
  68. package/dist/reasoning/group-presentation/standard-groups.js.map +1 -0
  69. package/dist/reasoning/group-presentation/todd-coxeter.d.ts +10 -0
  70. package/dist/reasoning/group-presentation/todd-coxeter.d.ts.map +1 -0
  71. package/dist/reasoning/group-presentation/todd-coxeter.js +362 -0
  72. package/dist/reasoning/group-presentation/todd-coxeter.js.map +1 -0
  73. package/dist/reasoning/group-presentation/types.d.ts +7 -0
  74. package/dist/reasoning/group-presentation/types.d.ts.map +1 -0
  75. package/dist/reasoning/group-presentation/types.js +22 -0
  76. package/dist/reasoning/group-presentation/types.js.map +1 -0
  77. package/dist/reasoning/group-presentation/words.d.ts +10 -0
  78. package/dist/reasoning/group-presentation/words.d.ts.map +1 -0
  79. package/dist/reasoning/group-presentation/words.js +109 -0
  80. package/dist/reasoning/group-presentation/words.js.map +1 -0
  81. package/dist/reasoning/number-theory/crt.d.ts +9 -0
  82. package/dist/reasoning/number-theory/crt.d.ts.map +1 -0
  83. package/dist/reasoning/number-theory/crt.js +39 -0
  84. package/dist/reasoning/number-theory/crt.js.map +1 -0
  85. package/dist/reasoning/number-theory/diophantine.d.ts +10 -0
  86. package/dist/reasoning/number-theory/diophantine.d.ts.map +1 -0
  87. package/dist/reasoning/number-theory/diophantine.js +87 -0
  88. package/dist/reasoning/number-theory/diophantine.js.map +1 -0
  89. package/dist/reasoning/number-theory/factorization.d.ts +12 -0
  90. package/dist/reasoning/number-theory/factorization.d.ts.map +1 -0
  91. package/dist/reasoning/number-theory/factorization.js +136 -0
  92. package/dist/reasoning/number-theory/factorization.js.map +1 -0
  93. package/dist/reasoning/number-theory/gcd.d.ts +8 -0
  94. package/dist/reasoning/number-theory/gcd.d.ts.map +1 -0
  95. package/dist/reasoning/number-theory/gcd.js +51 -0
  96. package/dist/reasoning/number-theory/gcd.js.map +1 -0
  97. package/dist/reasoning/number-theory/index.d.ts +9 -0
  98. package/dist/reasoning/number-theory/index.d.ts.map +1 -0
  99. package/dist/reasoning/number-theory/index.js +46 -0
  100. package/dist/reasoning/number-theory/index.js.map +1 -0
  101. package/dist/reasoning/number-theory/modular.d.ts +6 -0
  102. package/dist/reasoning/number-theory/modular.d.ts.map +1 -0
  103. package/dist/reasoning/number-theory/modular.js +75 -0
  104. package/dist/reasoning/number-theory/modular.js.map +1 -0
  105. package/dist/reasoning/number-theory/primality.d.ts +6 -0
  106. package/dist/reasoning/number-theory/primality.d.ts.map +1 -0
  107. package/dist/reasoning/number-theory/primality.js +144 -0
  108. package/dist/reasoning/number-theory/primality.js.map +1 -0
  109. package/dist/reasoning/number-theory/symbols.d.ts +3 -0
  110. package/dist/reasoning/number-theory/symbols.d.ts.map +1 -0
  111. package/dist/reasoning/number-theory/symbols.js +57 -0
  112. package/dist/reasoning/number-theory/symbols.js.map +1 -0
  113. package/dist/reasoning/real-analysis/index.d.ts +127 -0
  114. package/dist/reasoning/real-analysis/index.d.ts.map +1 -0
  115. package/dist/reasoning/real-analysis/index.js +638 -0
  116. package/dist/reasoning/real-analysis/index.js.map +1 -0
  117. package/dist/reasoning/topology/index.d.ts +41 -0
  118. package/dist/reasoning/topology/index.d.ts.map +1 -0
  119. package/dist/reasoning/topology/index.js +739 -0
  120. package/dist/reasoning/topology/index.js.map +1 -0
  121. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.d.ts +2 -0
  122. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.d.ts.map +1 -0
  123. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.js +288 -0
  124. package/dist/tests/logic/profiles/natural-deduction-nk/nk.test.js.map +1 -0
  125. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.d.ts +2 -0
  126. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.d.ts.map +1 -0
  127. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.js +328 -0
  128. package/dist/tests/proof-systems/distributed-exchange/distributed-exchange.test.js.map +1 -0
  129. package/dist/tests/reasoning/automata/automata.test.d.ts +2 -0
  130. package/dist/tests/reasoning/automata/automata.test.d.ts.map +1 -0
  131. package/dist/tests/reasoning/automata/automata.test.js +310 -0
  132. package/dist/tests/reasoning/automata/automata.test.js.map +1 -0
  133. package/dist/tests/reasoning/computability/computability.test.d.ts +2 -0
  134. package/dist/tests/reasoning/computability/computability.test.d.ts.map +1 -0
  135. package/dist/tests/reasoning/computability/computability.test.js +246 -0
  136. package/dist/tests/reasoning/computability/computability.test.js.map +1 -0
  137. package/dist/tests/reasoning/graph-theory/graph-theory.test.d.ts +2 -0
  138. package/dist/tests/reasoning/graph-theory/graph-theory.test.d.ts.map +1 -0
  139. package/dist/tests/reasoning/graph-theory/graph-theory.test.js +363 -0
  140. package/dist/tests/reasoning/graph-theory/graph-theory.test.js.map +1 -0
  141. package/dist/tests/reasoning/group-presentation/group-presentation.test.d.ts +2 -0
  142. package/dist/tests/reasoning/group-presentation/group-presentation.test.d.ts.map +1 -0
  143. package/dist/tests/reasoning/group-presentation/group-presentation.test.js +229 -0
  144. package/dist/tests/reasoning/group-presentation/group-presentation.test.js.map +1 -0
  145. package/dist/tests/reasoning/number-theory/number-theory.test.d.ts +2 -0
  146. package/dist/tests/reasoning/number-theory/number-theory.test.d.ts.map +1 -0
  147. package/dist/tests/reasoning/number-theory/number-theory.test.js +170 -0
  148. package/dist/tests/reasoning/number-theory/number-theory.test.js.map +1 -0
  149. package/dist/tests/reasoning/real-analysis/real-analysis.test.d.ts +2 -0
  150. package/dist/tests/reasoning/real-analysis/real-analysis.test.d.ts.map +1 -0
  151. package/dist/tests/reasoning/real-analysis/real-analysis.test.js +197 -0
  152. package/dist/tests/reasoning/real-analysis/real-analysis.test.js.map +1 -0
  153. package/dist/tests/reasoning/topology/topology.test.d.ts +2 -0
  154. package/dist/tests/reasoning/topology/topology.test.d.ts.map +1 -0
  155. package/dist/tests/reasoning/topology/topology.test.js +327 -0
  156. package/dist/tests/reasoning/topology/topology.test.js.map +1 -0
  157. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.d.ts +2 -0
  158. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.d.ts.map +1 -0
  159. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.js +411 -0
  160. package/dist/tests/tooling/exporters/coq-v2/coq-v2-exporter.test.js.map +1 -0
  161. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.d.ts +2 -0
  162. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.d.ts.map +1 -0
  163. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.js +473 -0
  164. package/dist/tests/tooling/exporters/lean4/lean4-exporter.test.js.map +1 -0
  165. package/dist/tests/tooling/lemma-library/lemma-library.test.d.ts +2 -0
  166. package/dist/tests/tooling/lemma-library/lemma-library.test.d.ts.map +1 -0
  167. package/dist/tests/tooling/lemma-library/lemma-library.test.js +197 -0
  168. package/dist/tests/tooling/lemma-library/lemma-library.test.js.map +1 -0
  169. package/dist/tests/tooling/provenance/ledger.test.d.ts +2 -0
  170. package/dist/tests/tooling/provenance/ledger.test.d.ts.map +1 -0
  171. package/dist/tests/tooling/provenance/ledger.test.js +545 -0
  172. package/dist/tests/tooling/provenance/ledger.test.js.map +1 -0
  173. package/dist/tooling/exporters/coq-v2/index.d.ts +68 -0
  174. package/dist/tooling/exporters/coq-v2/index.d.ts.map +1 -0
  175. package/dist/tooling/exporters/coq-v2/index.js +692 -0
  176. package/dist/tooling/exporters/coq-v2/index.js.map +1 -0
  177. package/dist/tooling/exporters/lean4/index.d.ts +47 -0
  178. package/dist/tooling/exporters/lean4/index.d.ts.map +1 -0
  179. package/dist/tooling/exporters/lean4/index.js +423 -0
  180. package/dist/tooling/exporters/lean4/index.js.map +1 -0
  181. package/dist/tooling/lemma-library/apply.d.ts +9 -0
  182. package/dist/tooling/lemma-library/apply.d.ts.map +1 -0
  183. package/dist/tooling/lemma-library/apply.js +94 -0
  184. package/dist/tooling/lemma-library/apply.js.map +1 -0
  185. package/dist/tooling/lemma-library/arithmetic.d.ts +3 -0
  186. package/dist/tooling/lemma-library/arithmetic.d.ts.map +1 -0
  187. package/dist/tooling/lemma-library/arithmetic.js +176 -0
  188. package/dist/tooling/lemma-library/arithmetic.js.map +1 -0
  189. package/dist/tooling/lemma-library/firstorder.d.ts +3 -0
  190. package/dist/tooling/lemma-library/firstorder.d.ts.map +1 -0
  191. package/dist/tooling/lemma-library/firstorder.js +136 -0
  192. package/dist/tooling/lemma-library/firstorder.js.map +1 -0
  193. package/dist/tooling/lemma-library/index.d.ts +13 -0
  194. package/dist/tooling/lemma-library/index.d.ts.map +1 -0
  195. package/dist/tooling/lemma-library/index.js +32 -0
  196. package/dist/tooling/lemma-library/index.js.map +1 -0
  197. package/dist/tooling/lemma-library/library.d.ts +34 -0
  198. package/dist/tooling/lemma-library/library.d.ts.map +1 -0
  199. package/dist/tooling/lemma-library/library.js +126 -0
  200. package/dist/tooling/lemma-library/library.js.map +1 -0
  201. package/dist/tooling/lemma-library/modal.d.ts +3 -0
  202. package/dist/tooling/lemma-library/modal.d.ts.map +1 -0
  203. package/dist/tooling/lemma-library/modal.js +138 -0
  204. package/dist/tooling/lemma-library/modal.js.map +1 -0
  205. package/dist/tooling/lemma-library/propositional.d.ts +3 -0
  206. package/dist/tooling/lemma-library/propositional.d.ts.map +1 -0
  207. package/dist/tooling/lemma-library/propositional.js +265 -0
  208. package/dist/tooling/lemma-library/propositional.js.map +1 -0
  209. package/dist/tooling/lemma-library/set-theory.d.ts +3 -0
  210. package/dist/tooling/lemma-library/set-theory.d.ts.map +1 -0
  211. package/dist/tooling/lemma-library/set-theory.js +134 -0
  212. package/dist/tooling/lemma-library/set-theory.js.map +1 -0
  213. package/dist/tooling/lemma-library/standard.d.ts +3 -0
  214. package/dist/tooling/lemma-library/standard.d.ts.map +1 -0
  215. package/dist/tooling/lemma-library/standard.js +27 -0
  216. package/dist/tooling/lemma-library/standard.js.map +1 -0
  217. package/dist/tooling/lemma-library/tfidf.d.ts +5 -0
  218. package/dist/tooling/lemma-library/tfidf.d.ts.map +1 -0
  219. package/dist/tooling/lemma-library/tfidf.js +100 -0
  220. package/dist/tooling/lemma-library/tfidf.js.map +1 -0
  221. package/dist/tooling/lemma-library/tokenize.d.ts +2 -0
  222. package/dist/tooling/lemma-library/tokenize.d.ts.map +1 -0
  223. package/dist/tooling/lemma-library/tokenize.js +74 -0
  224. package/dist/tooling/lemma-library/tokenize.js.map +1 -0
  225. package/dist/tooling/lemma-library/types.d.ts +53 -0
  226. package/dist/tooling/lemma-library/types.d.ts.map +1 -0
  227. package/dist/tooling/lemma-library/types.js +10 -0
  228. package/dist/tooling/lemma-library/types.js.map +1 -0
  229. package/dist/tooling/provenance/index.d.ts +3 -0
  230. package/dist/tooling/provenance/index.d.ts.map +1 -0
  231. package/dist/tooling/provenance/index.js +16 -0
  232. package/dist/tooling/provenance/index.js.map +1 -0
  233. package/dist/tooling/provenance/ledger.d.ts +89 -0
  234. package/dist/tooling/provenance/ledger.d.ts.map +1 -0
  235. package/dist/tooling/provenance/ledger.js +439 -0
  236. package/dist/tooling/provenance/ledger.js.map +1 -0
  237. package/dist/tooling/provenance/types.d.ts +70 -0
  238. package/dist/tooling/provenance/types.d.ts.map +1 -0
  239. package/dist/tooling/provenance/types.js +14 -0
  240. package/dist/tooling/provenance/types.js.map +1 -0
  241. package/package.json +1 -1
@@ -0,0 +1,239 @@
1
+ export type TMState = string;
2
+ export type TMSymbol = string;
3
+ export type Direction = 'L' | 'R' | 'S';
4
+ export interface TMTransition {
5
+ readonly fromState: TMState;
6
+ readonly readSymbol: TMSymbol;
7
+ readonly toState: TMState;
8
+ readonly writeSymbol: TMSymbol;
9
+ readonly direction: Direction;
10
+ }
11
+ export interface TuringMachine {
12
+ readonly states: Set<TMState>;
13
+ readonly alphabet: Set<TMSymbol>;
14
+ readonly tapeAlphabet: Set<TMSymbol>;
15
+ readonly transitions: TMTransition[];
16
+ readonly initialState: TMState;
17
+ readonly acceptStates: Set<TMState>;
18
+ readonly rejectStates?: Set<TMState>;
19
+ readonly blank: TMSymbol;
20
+ }
21
+ export interface TMConfig {
22
+ readonly state: TMState;
23
+ readonly tape: TMSymbol[];
24
+ readonly head: number;
25
+ readonly step: number;
26
+ }
27
+ export type StepResult = TMConfig | 'halted-accept' | 'halted-reject' | 'no-transition';
28
+ /**
29
+ * Inicializa una configuración a partir de la entrada. La cinta arranca
30
+ * con los símbolos de `input`, cabeza en 0. Si la entrada es vacía la
31
+ * cinta arranca con un blank.
32
+ */
33
+ export declare function initialConfig(M: TuringMachine, input: string): TMConfig;
34
+ /**
35
+ * Un paso de la TM. Devuelve la próxima configuración o un terminal.
36
+ * • Si el estado actual ya es de aceptación → 'halted-accept'.
37
+ * • Si es de rechazo → 'halted-reject'.
38
+ * • Si no hay transición desde (state, leído) → 'no-transition'.
39
+ */
40
+ export declare function step(M: TuringMachine, config: TMConfig): StepResult;
41
+ export interface RunResult {
42
+ readonly result: 'accept' | 'reject' | 'timeout' | 'no-transition';
43
+ readonly steps: number;
44
+ readonly finalConfig: TMConfig;
45
+ }
46
+ /**
47
+ * Corre la TM hasta aceptar, rechazar, agotarse o quedar sin transición.
48
+ * `maxSteps` defaultea a 10_000.
49
+ */
50
+ export declare function run(M: TuringMachine, input: string, maxSteps?: number): RunResult;
51
+ /**
52
+ * Lista todas las configuraciones generadas, hasta `maxSteps`.
53
+ * Incluye la configuración inicial. No incluye un sentinel para terminal.
54
+ */
55
+ export declare function trace(M: TuringMachine, input: string, maxSteps: number): TMConfig[];
56
+ /**
57
+ * Lectura útil de la cinta: la subcadena no-blank más larga centrada en
58
+ * la región explorada. Sirve para validar máquinas que escriben output
59
+ * en la cinta (binary increment, reverse, copy, etc.).
60
+ */
61
+ export declare function readTape(M: TuringMachine, config: TMConfig): string;
62
+ /**
63
+ * Halting acotado: ¿la TM para en ≤ `maxSteps` pasos?
64
+ * • `true` si para por aceptación, rechazo o falta de transición.
65
+ * • `false` técnicamente nunca se devuelve aquí — para devolver
66
+ * `false` con certeza haría falta resolver el halting problem, que
67
+ * es indecidible. Cuando agotamos el budget devolvemos `'unknown'`.
68
+ * Esta función es semi-decidible: reconoce las máquinas que paran,
69
+ * pero no decide el lenguaje complemento (las que no paran).
70
+ */
71
+ export declare function boundedHalts(M: TuringMachine, input: string, maxSteps: number): boolean | 'unknown';
72
+ /**
73
+ * Incrementa un número binario (MSB first) en la cinta.
74
+ * Algoritmo: ir al final, retroceder convirtiendo 1→0 mientras haya
75
+ * acarreo; al primer 0 escribir 1 y aceptar. Si todo era 1, escribir
76
+ * 1 al borde izquierdo y aceptar.
77
+ */
78
+ export declare function tmBinaryIncrement(): TuringMachine;
79
+ /**
80
+ * Acepta sii la cantidad de 1s en la entrada (sobre alfabeto {1}) es par.
81
+ * Estados q0 = par hasta ahora, q1 = impar.
82
+ */
83
+ export declare function tmUnaryParity(): TuringMachine;
84
+ /**
85
+ * Revierte una cadena sobre {a, b}. Algoritmo:
86
+ * 1. Marcar inicio (Sa, Sb) con un símbolo distintivo.
87
+ * 2. Encontrar el final y desplazar el símbolo del frente al fondo.
88
+ * 3. Repetir hasta agotar.
89
+ * Output: la cinta termina con el reverso de la entrada original.
90
+ *
91
+ * Implementación con cinta auxiliar a la derecha (más simple):
92
+ * Caminar a la derecha mientras se copian símbolos en orden inverso
93
+ * tras un separador. Al terminar borrar la entrada original.
94
+ *
95
+ * Para evitar complicaciones, esta versión usa una técnica de
96
+ * "shift left after marking": tras leer un símbolo, lo borra y lo
97
+ * reescribe al final del bloque restante.
98
+ *
99
+ * Nota: este algoritmo es O(n²) en pasos pero correcto.
100
+ */
101
+ export declare function tmReverseString(): TuringMachine;
102
+ /**
103
+ * Copia w → w#w sobre {a, b}. El '#' se inserta automáticamente y la
104
+ * copia queda a la derecha. Algoritmo análogo a reverse pero copiando
105
+ * en orden directo (marcamos cada símbolo procesado con mayúscula).
106
+ */
107
+ export declare function tmCopy(): TuringMachine;
108
+ /**
109
+ * Suma con `a` en binario y `b` en unario, formato "<a>+<b>" donde
110
+ * a ∈ {0,1}* (MSB-first), b ∈ {1}*.
111
+ *
112
+ * Mantener `b` unario evita la coreografía de decremento binario (que
113
+ * agrega ~10 estados sin enseñar nada nuevo) y muestra claramente la
114
+ * técnica de "incrementar `a` una vez por cada token de `b`".
115
+ *
116
+ * Algoritmo:
117
+ * 1. Ir al final.
118
+ * 2. Si la última posición es '1' (un token de b), borrarlo y entrar
119
+ * en `incA`: incrementar `a` y luego volver al final.
120
+ * 3. Si la última posición es '+' (b vacío), borrarlo: la cinta queda
121
+ * con sólo `a` (el resultado).
122
+ */
123
+ export declare function tmAddBinary(): TuringMachine;
124
+ export type PRFn = {
125
+ kind: 'zero';
126
+ } | {
127
+ kind: 'succ';
128
+ } | {
129
+ kind: 'proj';
130
+ n: number;
131
+ i: number;
132
+ } | {
133
+ kind: 'comp';
134
+ outer: PRFn;
135
+ inner: PRFn[];
136
+ } | {
137
+ kind: 'rec';
138
+ base: PRFn;
139
+ step: PRFn;
140
+ };
141
+ /**
142
+ * Semántica de PRF:
143
+ * • zero() = 0
144
+ * • succ(x) = x + 1
145
+ * • U^n_i(x1..xn) = x_i
146
+ * • comp(h, g1..gk)(x1..xn) = h(g1(x1..xn), ..., gk(x1..xn))
147
+ * • rec(base, step):
148
+ * f(0, x1..xn) = base(x1..xn)
149
+ * f(y+1, x1..xn) = step(y, f(y, x1..xn), x1..xn)
150
+ *
151
+ * El argumento "iterado" es el primero (convención común). `args[0]` es
152
+ * el contador en `rec`.
153
+ */
154
+ export declare function evalPR(f: PRFn, args: number[]): number;
155
+ /**
156
+ * Suma: add(0, y) = y, add(x+1, y) = succ(add(x, y))
157
+ * base = U^1_1 (identidad en y)
158
+ * step = succ ∘ U^3_2 (toma f(x,y) y le aplica succ)
159
+ *
160
+ * En nuestra convención args[0] es el contador → add(x, y).
161
+ */
162
+ export declare const PR_ADD: PRFn;
163
+ /**
164
+ * Multiplicación: mul(0, y) = 0, mul(x+1, y) = add(mul(x,y), y)
165
+ * base = zero (después de proyectar y fuera)
166
+ * step = add(f(x,y), y)
167
+ *
168
+ * base: el caso 0 → 0. Es la función constante 0 sobre 1 argumento:
169
+ * const0(y) = zero ∘ U^1_1, pero zero ignora sus argumentos.
170
+ * En este eval, zero retorna 0 sin importar args.
171
+ */
172
+ export declare const PR_MUL: PRFn;
173
+ export declare const PR_POW: PRFn;
174
+ /**
175
+ * Predecesor: pred(0) = 0, pred(x+1) = x.
176
+ * rec con base = zero, step = U^2_1 (devuelve y, el contador previo).
177
+ */
178
+ export declare const PR_PREDECESSOR: PRFn;
179
+ /**
180
+ * Factorial: fact(0) = 1, fact(x+1) = mul(succ(x), fact(x)).
181
+ *
182
+ * En recursión: contador y, acumulador f(y), sin args extra. Step recibe
183
+ * (y, f(y)) y debe devolver mul(succ(y), f(y)).
184
+ *
185
+ * Cuidado: aquí args[0]=y es el "k" del bucle (0-indexed), por lo que
186
+ * succ(y) = y+1 = el siguiente número a multiplicar.
187
+ */
188
+ export declare const PR_FACT: PRFn;
189
+ /**
190
+ * Función de Ackermann (Peter):
191
+ * A(0, n) = n + 1
192
+ * A(m+1, 0) = A(m, 1)
193
+ * A(m+1, n+1) = A(m, A(m+1, n))
194
+ *
195
+ * Crece más rápido que toda PRF: A(m, n) es la prueba canónica de que
196
+ * existen funciones recursivas totales no primitivas recursivas.
197
+ *
198
+ * Implementación iterativa por stack para esquivar el call-stack JS.
199
+ */
200
+ export declare function ackermann(m: number, n: number): number;
201
+ /**
202
+ * Test heurístico de "esta función podría ser PR": evalúa la función
203
+ * sobre `samples` puntos pequeños y la compara con el patrón de
204
+ * crecimiento de Ackermann (que escapa a PR). Es estrictamente una
205
+ * heurística — no es un decisor.
206
+ *
207
+ * • Si la función supera a A(samples, samples) en algún punto pequeño
208
+ * → likely = false (probablemente no es PR).
209
+ * • Si nunca crece más rápido que cuadrático/exponencial moderado →
210
+ * likely = true.
211
+ */
212
+ export declare function isInPR(f: (n: number) => number, samples?: number): {
213
+ likely: boolean;
214
+ estimate?: number;
215
+ };
216
+ /**
217
+ * Rice (1953): toda propiedad **no trivial** sobre el lenguaje aceptado
218
+ * por una TM (es decir, sobre el comportamiento input/output observable)
219
+ * es **indecidible**.
220
+ *
221
+ * No podemos *decidir* la propiedad — eso es justo lo que el teorema
222
+ * niega. Lo que sí podemos es **verificar el predicado de Rice**: la
223
+ * propiedad debe ser
224
+ *
225
+ * 1. extensional (depende sólo del lenguaje, no del código),
226
+ * 2. no vacía (alguna TM la satisface),
227
+ * 3. no total (alguna TM no la satisface).
228
+ *
229
+ * Esta función toma el predicado, lo evalúa sobre un muestreo finito de
230
+ * TMs conocidas y, si encuentra una `M0` que la satisface y una `M1`
231
+ * que no, devuelve `undecidable = true` con explicación. Si todas las
232
+ * TMs de la muestra dan la misma respuesta no podemos concluir nada
233
+ * (la propiedad podría ser trivial, o la muestra puede ser muy chica).
234
+ */
235
+ export declare function riceWitness(property: (m: TuringMachine) => boolean, sampleSize?: number): {
236
+ undecidable: boolean;
237
+ explanation: string;
238
+ };
239
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reasoning/computability/index.ts"],"names":[],"mappings":"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"}