@stevenvo780/st-lang 4.7.0 → 4.8.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 (145) hide show
  1. package/dist/namespaces/reasoning.d.ts +2 -1
  2. package/dist/namespaces/reasoning.d.ts.map +1 -1
  3. package/dist/namespaces/reasoning.js +3 -1
  4. package/dist/namespaces/reasoning.js.map +1 -1
  5. package/dist/reasoning/combinatorial-games/index.d.ts +105 -0
  6. package/dist/reasoning/combinatorial-games/index.d.ts.map +1 -0
  7. package/dist/reasoning/combinatorial-games/index.js +377 -0
  8. package/dist/reasoning/combinatorial-games/index.js.map +1 -0
  9. package/dist/reasoning/mechanism-design/auctions.d.ts +49 -0
  10. package/dist/reasoning/mechanism-design/auctions.d.ts.map +1 -0
  11. package/dist/reasoning/mechanism-design/auctions.js +179 -0
  12. package/dist/reasoning/mechanism-design/auctions.js.map +1 -0
  13. package/dist/reasoning/mechanism-design/index.d.ts +5 -0
  14. package/dist/reasoning/mechanism-design/index.d.ts.map +1 -0
  15. package/dist/reasoning/mechanism-design/index.js +39 -0
  16. package/dist/reasoning/mechanism-design/index.js.map +1 -0
  17. package/dist/reasoning/mechanism-design/myerson.d.ts +64 -0
  18. package/dist/reasoning/mechanism-design/myerson.d.ts.map +1 -0
  19. package/dist/reasoning/mechanism-design/myerson.js +253 -0
  20. package/dist/reasoning/mechanism-design/myerson.js.map +1 -0
  21. package/dist/reasoning/mechanism-design/types.d.ts +44 -0
  22. package/dist/reasoning/mechanism-design/types.d.ts.map +1 -0
  23. package/dist/reasoning/mechanism-design/types.js +22 -0
  24. package/dist/reasoning/mechanism-design/types.js.map +1 -0
  25. package/dist/reasoning/mechanism-design/vcg.d.ts +29 -0
  26. package/dist/reasoning/mechanism-design/vcg.d.ts.map +1 -0
  27. package/dist/reasoning/mechanism-design/vcg.js +305 -0
  28. package/dist/reasoning/mechanism-design/vcg.js.map +1 -0
  29. package/dist/reasoning/probabilistic/distributions.d.ts +44 -0
  30. package/dist/reasoning/probabilistic/distributions.d.ts.map +1 -0
  31. package/dist/reasoning/probabilistic/distributions.js +207 -0
  32. package/dist/reasoning/probabilistic/distributions.js.map +1 -0
  33. package/dist/reasoning/probabilistic/examples.d.ts +31 -0
  34. package/dist/reasoning/probabilistic/examples.d.ts.map +1 -0
  35. package/dist/reasoning/probabilistic/examples.js +85 -0
  36. package/dist/reasoning/probabilistic/examples.js.map +1 -0
  37. package/dist/reasoning/probabilistic/index.d.ts +6 -0
  38. package/dist/reasoning/probabilistic/index.d.ts.map +1 -0
  39. package/dist/reasoning/probabilistic/index.js +42 -0
  40. package/dist/reasoning/probabilistic/index.js.map +1 -0
  41. package/dist/reasoning/probabilistic/inference.d.ts +45 -0
  42. package/dist/reasoning/probabilistic/inference.d.ts.map +1 -0
  43. package/dist/reasoning/probabilistic/inference.js +579 -0
  44. package/dist/reasoning/probabilistic/inference.js.map +1 -0
  45. package/dist/reasoning/probabilistic/types.d.ts +153 -0
  46. package/dist/reasoning/probabilistic/types.d.ts.map +1 -0
  47. package/dist/reasoning/probabilistic/types.js +37 -0
  48. package/dist/reasoning/probabilistic/types.js.map +1 -0
  49. package/dist/solver/smt-z3/index.d.ts +3 -0
  50. package/dist/solver/smt-z3/index.d.ts.map +1 -0
  51. package/dist/solver/smt-z3/index.js +11 -0
  52. package/dist/solver/smt-z3/index.js.map +1 -0
  53. package/dist/solver/smt-z3/types.d.ts +52 -0
  54. package/dist/solver/smt-z3/types.d.ts.map +1 -0
  55. package/dist/solver/smt-z3/types.js +6 -0
  56. package/dist/solver/smt-z3/types.js.map +1 -0
  57. package/dist/solver/smt-z3/z3-wasm-backend.d.ts +88 -0
  58. package/dist/solver/smt-z3/z3-wasm-backend.d.ts.map +1 -0
  59. package/dist/solver/smt-z3/z3-wasm-backend.js +437 -0
  60. package/dist/solver/smt-z3/z3-wasm-backend.js.map +1 -0
  61. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.d.ts +2 -0
  62. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.d.ts.map +1 -0
  63. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.js +203 -0
  64. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.js.map +1 -0
  65. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.d.ts +2 -0
  66. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.d.ts.map +1 -0
  67. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.js +290 -0
  68. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.js.map +1 -0
  69. package/dist/tests/reasoning/probabilistic/probabilistic.test.d.ts +2 -0
  70. package/dist/tests/reasoning/probabilistic/probabilistic.test.d.ts.map +1 -0
  71. package/dist/tests/reasoning/probabilistic/probabilistic.test.js +370 -0
  72. package/dist/tests/reasoning/probabilistic/probabilistic.test.js.map +1 -0
  73. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.d.ts +2 -0
  74. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.d.ts.map +1 -0
  75. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js +394 -0
  76. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js.map +1 -0
  77. package/dist/tests/tooling/proof-guidance/features.test.d.ts +2 -0
  78. package/dist/tests/tooling/proof-guidance/features.test.d.ts.map +1 -0
  79. package/dist/tests/tooling/proof-guidance/features.test.js +72 -0
  80. package/dist/tests/tooling/proof-guidance/features.test.js.map +1 -0
  81. package/dist/tests/tooling/proof-guidance/model.test.d.ts +2 -0
  82. package/dist/tests/tooling/proof-guidance/model.test.d.ts.map +1 -0
  83. package/dist/tests/tooling/proof-guidance/model.test.js +165 -0
  84. package/dist/tests/tooling/proof-guidance/model.test.js.map +1 -0
  85. package/dist/tests/tooling/proof-guidance/search.test.d.ts +2 -0
  86. package/dist/tests/tooling/proof-guidance/search.test.d.ts.map +1 -0
  87. package/dist/tests/tooling/proof-guidance/search.test.js +238 -0
  88. package/dist/tests/tooling/proof-guidance/search.test.js.map +1 -0
  89. package/dist/tests/type-theory/cubical/cubical.test.d.ts +2 -0
  90. package/dist/tests/type-theory/cubical/cubical.test.d.ts.map +1 -0
  91. package/dist/tests/type-theory/cubical/cubical.test.js +207 -0
  92. package/dist/tests/type-theory/cubical/cubical.test.js.map +1 -0
  93. package/dist/tooling/proof-guidance/features.d.ts +10 -0
  94. package/dist/tooling/proof-guidance/features.d.ts.map +1 -0
  95. package/dist/tooling/proof-guidance/features.js +97 -0
  96. package/dist/tooling/proof-guidance/features.js.map +1 -0
  97. package/dist/tooling/proof-guidance/index.d.ts +5 -0
  98. package/dist/tooling/proof-guidance/index.d.ts.map +1 -0
  99. package/dist/tooling/proof-guidance/index.js +25 -0
  100. package/dist/tooling/proof-guidance/index.js.map +1 -0
  101. package/dist/tooling/proof-guidance/model.d.ts +42 -0
  102. package/dist/tooling/proof-guidance/model.d.ts.map +1 -0
  103. package/dist/tooling/proof-guidance/model.js +149 -0
  104. package/dist/tooling/proof-guidance/model.js.map +1 -0
  105. package/dist/tooling/proof-guidance/search.d.ts +7 -0
  106. package/dist/tooling/proof-guidance/search.d.ts.map +1 -0
  107. package/dist/tooling/proof-guidance/search.js +102 -0
  108. package/dist/tooling/proof-guidance/search.js.map +1 -0
  109. package/dist/tooling/proof-guidance/types.d.ts +77 -0
  110. package/dist/tooling/proof-guidance/types.d.ts.map +1 -0
  111. package/dist/tooling/proof-guidance/types.js +8 -0
  112. package/dist/tooling/proof-guidance/types.js.map +1 -0
  113. package/dist/type-theory/cubical/equality.d.ts +4 -0
  114. package/dist/type-theory/cubical/equality.d.ts.map +1 -0
  115. package/dist/type-theory/cubical/equality.js +78 -0
  116. package/dist/type-theory/cubical/equality.js.map +1 -0
  117. package/dist/type-theory/cubical/index.d.ts +14 -0
  118. package/dist/type-theory/cubical/index.d.ts.map +1 -0
  119. package/dist/type-theory/cubical/index.js +71 -0
  120. package/dist/type-theory/cubical/index.js.map +1 -0
  121. package/dist/type-theory/cubical/infer.d.ts +18 -0
  122. package/dist/type-theory/cubical/infer.d.ts.map +1 -0
  123. package/dist/type-theory/cubical/infer.js +241 -0
  124. package/dist/type-theory/cubical/infer.js.map +1 -0
  125. package/dist/type-theory/cubical/interval.d.ts +12 -0
  126. package/dist/type-theory/cubical/interval.d.ts.map +1 -0
  127. package/dist/type-theory/cubical/interval.js +118 -0
  128. package/dist/type-theory/cubical/interval.js.map +1 -0
  129. package/dist/type-theory/cubical/normalize.d.ts +5 -0
  130. package/dist/type-theory/cubical/normalize.d.ts.map +1 -0
  131. package/dist/type-theory/cubical/normalize.js +191 -0
  132. package/dist/type-theory/cubical/normalize.js.map +1 -0
  133. package/dist/type-theory/cubical/path-algebra.d.ts +12 -0
  134. package/dist/type-theory/cubical/path-algebra.d.ts.map +1 -0
  135. package/dist/type-theory/cubical/path-algebra.js +109 -0
  136. package/dist/type-theory/cubical/path-algebra.js.map +1 -0
  137. package/dist/type-theory/cubical/substitute.d.ts +3 -0
  138. package/dist/type-theory/cubical/substitute.d.ts.map +1 -0
  139. package/dist/type-theory/cubical/substitute.js +109 -0
  140. package/dist/type-theory/cubical/substitute.js.map +1 -0
  141. package/dist/type-theory/cubical/types.d.ts +77 -0
  142. package/dist/type-theory/cubical/types.d.ts.map +1 -0
  143. package/dist/type-theory/cubical/types.js +258 -0
  144. package/dist/type-theory/cubical/types.js.map +1 -0
  145. package/package.json +1 -1
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Distribución de probabilidad sobre valores de tipo T.
3
+ *
4
+ * Cinco familias paramétricas comunes + `discrete` (PMF arbitraria
5
+ * sobre claves T) y `categorical` (lista paralela de valores y probs).
6
+ *
7
+ * Convenciones:
8
+ * - `uniform`: continua sobre `[low, high)`.
9
+ * - `normal`: gaussiana con `std > 0`.
10
+ * - `poisson`: discreta sobre {0, 1, 2, ...}.
11
+ * - `bernoulli`: discreta sobre {true, false} con `P(true) = p`.
12
+ * - `categorical`/`discrete`: las probs deben sumar 1 (se normaliza).
13
+ */
14
+ /** Bernoulli sobre {true, false}. */
15
+ export interface BernoulliDist {
16
+ readonly kind: 'bernoulli';
17
+ readonly p: number;
18
+ /** Phantom: liga T = boolean en sample(). Runtime: undefined. */
19
+ readonly __t?: boolean;
20
+ }
21
+ /** Uniforme continua sobre [low, high). */
22
+ export interface UniformDist {
23
+ readonly kind: 'uniform';
24
+ readonly low: number;
25
+ readonly high: number;
26
+ readonly __t?: number;
27
+ }
28
+ /** Gaussiana con media y desviación. */
29
+ export interface NormalDist {
30
+ readonly kind: 'normal';
31
+ readonly mean: number;
32
+ readonly std: number;
33
+ readonly __t?: number;
34
+ }
35
+ /** Poisson sobre {0, 1, 2, ...}. */
36
+ export interface PoissonDist {
37
+ readonly kind: 'poisson';
38
+ readonly lambda: number;
39
+ readonly __t?: number;
40
+ }
41
+ /** Categorical con lista de valores paralelos a sus probabilidades. */
42
+ export interface CategoricalDist<T> {
43
+ readonly kind: 'categorical';
44
+ readonly values: T[];
45
+ readonly probs: number[];
46
+ readonly __t?: T;
47
+ }
48
+ /** Discrete con PMF (Map de valor → masa). */
49
+ export interface DiscreteDist<T> {
50
+ readonly kind: 'discrete';
51
+ readonly pmf: Map<T, number>;
52
+ readonly __t?: T;
53
+ }
54
+ /**
55
+ * Distribución sobre valores de tipo T.
56
+ *
57
+ * En la práctica usá los constructores (`bernoulli`, `uniform`,
58
+ * `normal`, `poisson`, `categorical`, `discrete`) que devuelven
59
+ * el tipo Distribution<T> ya tipado.
60
+ */
61
+ export type Distribution<T> = BernoulliDist | UniformDist | NormalDist | PoissonDist | CategoricalDist<T> | DiscreteDist<T>;
62
+ /**
63
+ * Helpers de construcción. Cada uno devuelve la `Distribution<T>`
64
+ * adecuada con T inferido (boolean / number / genérico).
65
+ */
66
+ export declare function bernoulli(p: number): BernoulliDist;
67
+ export declare function uniform(low: number, high: number): UniformDist;
68
+ export declare function normal(mean: number, std: number): NormalDist;
69
+ export declare function poisson(lambda: number): PoissonDist;
70
+ export declare function categorical<T>(values: T[], probs: number[]): CategoricalDist<T>;
71
+ export declare function discrete<T>(pmf: Map<T, number>): DiscreteDist<T>;
72
+ /**
73
+ * Sampler: interface que recibe el programa probabilístico para
74
+ * (a) muestrear de distribuciones, (b) condicionar con observaciones
75
+ * que descartan ejecuciones inconsistentes, y (c) ajustar el peso
76
+ * de la traza con un log-factor arbitrario.
77
+ *
78
+ * Cada motor de inferencia implementa este interface de manera
79
+ * distinta (enumeración exacta, rejection, importance, MH).
80
+ *
81
+ * Las firmas overloaded permiten que `sample(bernoulli(p))` infiera
82
+ * `boolean`, `sample(normal(...))` infiera `number`, etc.
83
+ */
84
+ export interface Sampler {
85
+ sample(dist: BernoulliDist): boolean;
86
+ sample(dist: UniformDist): number;
87
+ sample(dist: NormalDist): number;
88
+ sample(dist: PoissonDist): number;
89
+ sample<T>(dist: CategoricalDist<T>): T;
90
+ sample<T>(dist: DiscreteDist<T>): T;
91
+ sample<T>(dist: Distribution<T>): T;
92
+ /**
93
+ * Condiciona la traza: si `condition` es false, la traza tiene
94
+ * peso 0 (será descartada o re-muestreada según el backend).
95
+ */
96
+ observe(condition: boolean): void;
97
+ /**
98
+ * Suma `logWeight` al log-peso de la traza. Útil para likelihoods
99
+ * con densidad continua que no se pueden expresar como observe
100
+ * booleano (p.ej. observe gaussiano vs valor real).
101
+ */
102
+ factor(logWeight: number): void;
103
+ }
104
+ /**
105
+ * Programa probabilístico: función que, dado un sampler, produce
106
+ * un valor de retorno (la query). Las llamadas a `sampler.sample`
107
+ * dentro del programa definen el prior; las llamadas a `observe`
108
+ * y `factor` definen el conditioning.
109
+ */
110
+ export type PProgram<T> = (sampler: Sampler) => T;
111
+ /**
112
+ * Opciones de inferencia genéricas. Defaults razonables por motor.
113
+ * - `numSamples`: tamaño objetivo del posterior.
114
+ * - `burnIn`: descartar las primeras N iteraciones (solo MCMC).
115
+ * - `thin`: tomar 1 de cada N (solo MCMC, para reducir autocorr).
116
+ * - `maxAttempts`: tope global de intentos (rejection); evita loops
117
+ * infinitos cuando la observación es demasiado restrictiva.
118
+ * - `rng`: generador inyectable para tests deterministas.
119
+ * - `proposalStd`: desviación para propuestas gaussianas en MH.
120
+ */
121
+ export interface InferenceOptions {
122
+ numSamples?: number;
123
+ burnIn?: number;
124
+ thin?: number;
125
+ maxAttempts?: number;
126
+ rng?: () => number;
127
+ proposalStd?: number;
128
+ }
129
+ /**
130
+ * Resumen del posterior sobre el valor de retorno del programa.
131
+ *
132
+ * Campos numéricos (`mean`, `std`, `quantiles`) solo se rellenan
133
+ * cuando los samples son finitamente numéricos (incluye booleanos
134
+ * tratados como 0/1). El histograma siempre se computa: agrupa por
135
+ * igualdad estructural (JSON-serializable) y reporta la masa
136
+ * estimada por valor.
137
+ */
138
+ export interface PosteriorSummary<T> {
139
+ samples: T[];
140
+ mean?: number;
141
+ std?: number;
142
+ quantiles?: Record<number, number>;
143
+ histogram?: Map<T, number>;
144
+ /** Effective sample size aproximado (importance sampling). */
145
+ ess?: number;
146
+ /** Tasa de aceptación (solo MH). */
147
+ acceptanceRate?: number;
148
+ /** Fracción de propuestas aceptadas con respecto a las totales. */
149
+ numAccepted?: number;
150
+ /** Intentos totales (rejection / importance) — útil para diagnóstico. */
151
+ totalAttempts?: number;
152
+ }
153
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/reasoning/probabilistic/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Probabilistic Programming — Types
4
+ // ============================================================
5
+ //
6
+ // Tipos de datos para un PPL minimal: distribuciones, programas
7
+ // probabilísticos, sampler y resumen de posterior.
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.bernoulli = bernoulli;
10
+ exports.uniform = uniform;
11
+ exports.normal = normal;
12
+ exports.poisson = poisson;
13
+ exports.categorical = categorical;
14
+ exports.discrete = discrete;
15
+ /**
16
+ * Helpers de construcción. Cada uno devuelve la `Distribution<T>`
17
+ * adecuada con T inferido (boolean / number / genérico).
18
+ */
19
+ function bernoulli(p) {
20
+ return { kind: 'bernoulli', p };
21
+ }
22
+ function uniform(low, high) {
23
+ return { kind: 'uniform', low, high };
24
+ }
25
+ function normal(mean, std) {
26
+ return { kind: 'normal', mean, std };
27
+ }
28
+ function poisson(lambda) {
29
+ return { kind: 'poisson', lambda };
30
+ }
31
+ function categorical(values, probs) {
32
+ return { kind: 'categorical', values, probs };
33
+ }
34
+ function discrete(pmf) {
35
+ return { kind: 'discrete', pmf };
36
+ }
37
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/reasoning/probabilistic/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,oCAAoC;AACpC,+DAA+D;AAC/D,EAAE;AACF,gEAAgE;AAChE,mDAAmD;;AAqFnD,8BAEC;AAED,0BAEC;AAED,wBAEC;AAED,0BAEC;AAED,kCAEC;AAED,4BAEC;AA1BD;;;GAGG;AACH,SAAgB,SAAS,CAAC,CAAS;IACjC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAClC,CAAC;AAED,SAAgB,OAAO,CAAC,GAAW,EAAE,IAAY;IAC/C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACxC,CAAC;AAED,SAAgB,MAAM,CAAC,IAAY,EAAE,GAAW;IAC9C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACvC,CAAC;AAED,SAAgB,OAAO,CAAC,MAAc;IACpC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC;AAED,SAAgB,WAAW,CAAI,MAAW,EAAE,KAAe;IACzD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAChD,CAAC;AAED,SAAgB,QAAQ,CAAI,GAAmB;IAC7C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Z3WasmBackend, isZ3Available, detectAvailableSMT } from './z3-wasm-backend';
2
+ export type { AsyncSMTBackend, AvailableSMTRuntime, Z3WasmBackendOptions, Z3Scope, Z3ScopedAssertion, Z3ScopedDecl, } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/solver/smt-z3/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACrF,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,OAAO,EACP,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST SMT-Z3 — Barrel del backend WASM real (z3-solver)
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.detectAvailableSMT = exports.isZ3Available = exports.Z3WasmBackend = void 0;
7
+ var z3_wasm_backend_1 = require("./z3-wasm-backend");
8
+ Object.defineProperty(exports, "Z3WasmBackend", { enumerable: true, get: function () { return z3_wasm_backend_1.Z3WasmBackend; } });
9
+ Object.defineProperty(exports, "isZ3Available", { enumerable: true, get: function () { return z3_wasm_backend_1.isZ3Available; } });
10
+ Object.defineProperty(exports, "detectAvailableSMT", { enumerable: true, get: function () { return z3_wasm_backend_1.detectAvailableSMT; } });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/solver/smt-z3/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,uDAAuD;AACvD,+DAA+D;;;AAE/D,qDAAqF;AAA5E,gHAAA,aAAa,OAAA;AAAE,gHAAA,aAAa,OAAA;AAAE,qHAAA,kBAAkB,OAAA"}
@@ -0,0 +1,52 @@
1
+ import type { SMTLogic, SMTModel, SMTResult, SMTSort } from '../smt/types';
2
+ /**
3
+ * AsyncSMTBackend es la versión async del SMTBackend de `../smt/types`.
4
+ *
5
+ * Z3 corre como WASM via Emscripten y su `check()` es inherentemente async
6
+ * (event loop interno + workers). Por eso no podemos implementar el
7
+ * `SMTBackend` síncrono del bridge histórico — exponemos en su lugar
8
+ * `Promise<SMTResult>` para `checkSat()`.
9
+ */
10
+ export interface AsyncSMTBackend {
11
+ readonly name: string;
12
+ reset(): void;
13
+ push(): void;
14
+ pop(levels?: number): void;
15
+ declareConst(name: string, sort: SMTSort, bvWidth?: number): void;
16
+ assertFormula(smtlib: string): void;
17
+ checkSat(): Promise<SMTResult>;
18
+ getModel(): SMTModel | undefined;
19
+ getUnsatCore(): string[];
20
+ }
21
+ /** Solver detectado disponible para uso real (no mock). */
22
+ export type AvailableSMTRuntime = 'z3-wasm' | 'z3-subprocess' | 'cvc5-subprocess' | 'none';
23
+ /** Opciones de creación del backend Z3 WASM. */
24
+ export interface Z3WasmBackendOptions {
25
+ /** Lógica SMT-LIB a aplicar con `(set-logic ...)`. Default: omitida. */
26
+ logic?: SMTLogic;
27
+ /** Timeout por checkSat en ms (Z3 param `timeout`). Default: omitida. */
28
+ timeoutMs?: number;
29
+ /** Si true, activa `unsat_core` en el solver. Default: true. */
30
+ produceUnsatCore?: boolean;
31
+ /** Si true, activa `produce-models` en el solver. Default: true. */
32
+ produceModels?: boolean;
33
+ }
34
+ /** Una aserción registrada para reproducir scopes al rehidratar. */
35
+ export interface Z3ScopedAssertion {
36
+ /** Cuerpo SMT-LIB sin envolver en `(assert ...)`. */
37
+ body: string;
38
+ /** Nombre del literal asumido si la aserción participa de unsat-core. */
39
+ trackName?: string;
40
+ }
41
+ /** Declaración registrada por nivel del stack. */
42
+ export interface Z3ScopedDecl {
43
+ name: string;
44
+ sort: SMTSort;
45
+ bvWidth?: number;
46
+ }
47
+ /** Un nivel del stack push/pop reflejado en el host. */
48
+ export interface Z3Scope {
49
+ decls: Z3ScopedDecl[];
50
+ assertions: Z3ScopedAssertion[];
51
+ }
52
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/solver/smt-z3/types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE3E;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClE,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAAC;IACjC,YAAY,IAAI,MAAM,EAAE,CAAC;CAC1B;AAED,2DAA2D;AAC3D,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,eAAe,GAAG,iBAAiB,GAAG,MAAM,CAAC;AAE3F,gDAAgD;AAChD,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oEAAoE;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wDAAwD;AACxD,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST SMT-Z3 — Tipos del backend WASM real
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/solver/smt-z3/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,0CAA0C;AAC1C,+DAA+D"}
@@ -0,0 +1,88 @@
1
+ import type { SMTLogic, SMTModel, SMTResult, SMTSort } from '../smt/types';
2
+ import type { AsyncSMTBackend, AvailableSMTRuntime, Z3WasmBackendOptions } from './types';
3
+ /**
4
+ * `isZ3Available()` intenta inicializar z3-solver y devuelve true si
5
+ * obtiene un Context utilizable. No lanza. Útil para skip de tests y
6
+ * detección de runtime.
7
+ */
8
+ export declare function isZ3Available(): Promise<boolean>;
9
+ /**
10
+ * Detector unificado de runtime SMT con preferencia por el WASM in-process.
11
+ * - z3-wasm si la WASM bind carga.
12
+ * - z3-subprocess o cvc5-subprocess si hay binario en PATH.
13
+ * - 'none' si no hay nada.
14
+ */
15
+ export declare function detectAvailableSMT(): Promise<AvailableSMTRuntime>;
16
+ /**
17
+ * Z3WasmBackend — wrapper sobre z3-solver con interfaz AsyncSMTBackend.
18
+ *
19
+ * Modelo de estado:
20
+ * - Mantiene un único `Solver` Z3 cuyo stack push/pop se sincroniza con
21
+ * `scopes[]` del host (espejo). Esto permite re-hidratar el solver con
22
+ * `solver.reset()` + replay de scopes si fuera necesario (no se hace
23
+ * en el flujo normal, sólo en `reset()`).
24
+ * - `assertFormula(body)` mete `(assert body)` en el solver actual,
25
+ * pero también lo registra en `scopes[top].assertions` por trazabilidad.
26
+ * - `getUnsatCore()` requiere haber usado `assertNamed(name, body)`:
27
+ * estos asserts se envuelven en `(=> <track> <body>)` y se pasan como
28
+ * assumption literals al check(). El core devuelto es la lista de
29
+ * nombres `track`.
30
+ */
31
+ export declare class Z3WasmBackend implements AsyncSMTBackend {
32
+ readonly name = "z3-wasm";
33
+ private readonly z3;
34
+ private readonly ctx;
35
+ private solver;
36
+ private readonly logic;
37
+ private readonly produceUnsatCore;
38
+ private readonly produceModels;
39
+ private readonly timeoutMs;
40
+ private scopes;
41
+ /** Tracks declarados como Bool y usados como assumption literals. */
42
+ private trackNames;
43
+ private lastModel;
44
+ private lastUnsatCore;
45
+ private lastStatistics;
46
+ private constructor();
47
+ /** Crea un backend nuevo. Falla si z3-solver no puede inicializarse. */
48
+ static create(logicOrOptions?: SMTLogic | Z3WasmBackendOptions): Promise<Z3WasmBackend>;
49
+ /** Resetea el solver (drop all asserts y scopes). */
50
+ reset(): void;
51
+ push(): void;
52
+ pop(levels?: number): void;
53
+ declareConst(name: string, sort: SMTSort, bvWidth?: number): void;
54
+ /**
55
+ * Inserta una aserción directa (sin tracking). El cuerpo es SMT-LIB v2
56
+ * SIN envolver en `(assert ...)`.
57
+ */
58
+ assertFormula(smtlib: string): void;
59
+ /**
60
+ * Aserción nombrada para participar de unsat core. El `trackName` se
61
+ * declara como Bool fresco y la aserción real se mete como
62
+ * `(=> trackName body)`. En checkSat() esos tracks se pasan como
63
+ * assumption literals.
64
+ */
65
+ assertNamed(trackName: string, smtlib: string): void;
66
+ checkSat(): Promise<SMTResult>;
67
+ getModel(): SMTModel | undefined;
68
+ getUnsatCore(): string[];
69
+ /**
70
+ * `setOption` envuelve `solver.set(key, value)`. Acepta los nombres
71
+ * estándar Z3 (ej. `timeout`, `random_seed`).
72
+ */
73
+ setOption(key: string, value: string | number | boolean): void;
74
+ /** Devuelve la última snapshot de stats Z3 capturada en checkSat(). */
75
+ getStatistics(): Record<string, number>;
76
+ /**
77
+ * Cierra el solver liberando memoria WASM. Después de close() el
78
+ * backend no debe usarse.
79
+ */
80
+ close(): void;
81
+ private buildSolver;
82
+ private currentScope;
83
+ private formatDecl;
84
+ private extractModel;
85
+ private extractUnsatCore;
86
+ private extractStatistics;
87
+ }
88
+ //# sourceMappingURL=z3-wasm-backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"z3-wasm-backend.d.ts","sourceRoot":"","sources":["../../../src/solver/smt-z3/z3-wasm-backend.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EAInB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAoEjB;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAWtD;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAYvE;AAID;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,IAAI,aAAa;IAE1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAE/C,OAAO,CAAC,MAAM,CAA8C;IAC5D,qEAAqE;IACrE,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAA8B;IAEpD,OAAO;IAUP,wEAAwE;WAC3D,MAAM,CACjB,cAAc,CAAC,EAAE,QAAQ,GAAG,oBAAoB,GAC/C,OAAO,CAAC,aAAa,CAAC;IAUzB,qDAAqD;IACrD,KAAK,IAAI,IAAI;IAcb,IAAI,IAAI,IAAI;IAKZ,GAAG,CAAC,MAAM,SAAI,GAAG,IAAI;IASrB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAOjE;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOnC;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiB9C,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;IAsCpC,QAAQ,IAAI,QAAQ,GAAG,SAAS;IAIhC,YAAY,IAAI,MAAM,EAAE;IAIxB;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI;IAI9D,uEAAuE;IACvE,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIvC;;;OAGG;IACH,KAAK,IAAI,IAAI;IAYb,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,iBAAiB;CAuB1B"}