@stevenvo780/st-lang 1.5.6 → 1.5.8

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 (40) hide show
  1. package/dist/ast/nodes.d.ts +50 -2
  2. package/dist/ast/nodes.d.ts.map +1 -1
  3. package/dist/lexer/lexer.d.ts.map +1 -1
  4. package/dist/lexer/lexer.js +42 -14
  5. package/dist/lexer/lexer.js.map +1 -1
  6. package/dist/lexer/tokens.d.ts +18 -0
  7. package/dist/lexer/tokens.d.ts.map +1 -1
  8. package/dist/lexer/tokens.js +37 -0
  9. package/dist/lexer/tokens.js.map +1 -1
  10. package/dist/parser/parser.d.ts +16 -0
  11. package/dist/parser/parser.d.ts.map +1 -1
  12. package/dist/parser/parser.js +281 -2
  13. package/dist/parser/parser.js.map +1 -1
  14. package/dist/profiles/arithmetic/index.d.ts +20 -0
  15. package/dist/profiles/arithmetic/index.d.ts.map +1 -0
  16. package/dist/profiles/arithmetic/index.js +222 -0
  17. package/dist/profiles/arithmetic/index.js.map +1 -0
  18. package/dist/profiles/classical/propositional.d.ts.map +1 -1
  19. package/dist/profiles/classical/propositional.js +39 -0
  20. package/dist/profiles/classical/propositional.js.map +1 -1
  21. package/dist/profiles/index.d.ts +2 -1
  22. package/dist/profiles/index.d.ts.map +1 -1
  23. package/dist/profiles/index.js +4 -1
  24. package/dist/profiles/index.js.map +1 -1
  25. package/dist/runtime/format.d.ts.map +1 -1
  26. package/dist/runtime/format.js +80 -2
  27. package/dist/runtime/format.js.map +1 -1
  28. package/dist/runtime/interpreter.d.ts +13 -0
  29. package/dist/runtime/interpreter.d.ts.map +1 -1
  30. package/dist/runtime/interpreter.js +212 -0
  31. package/dist/runtime/interpreter.js.map +1 -1
  32. package/dist/tests/arithmetic.test.d.ts +2 -0
  33. package/dist/tests/arithmetic.test.d.ts.map +1 -0
  34. package/dist/tests/arithmetic.test.js +416 -0
  35. package/dist/tests/arithmetic.test.js.map +1 -0
  36. package/dist/tests/v1-features.test.js +339 -2
  37. package/dist/tests/v1-features.test.js.map +1 -1
  38. package/dist/types/index.d.ts +2 -1
  39. package/dist/types/index.d.ts.map +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST Arithmetic Profile — Evaluación aritmética
4
+ // ============================================================
5
+ // Perfil opcional que permite operaciones aritméticas (+, -, *, /, %)
6
+ // y comparaciones (<, >, <=, >=) dentro de fórmulas ST.
7
+ //
8
+ // Uso: `logic arithmetic`
9
+ //
10
+ // Sin este perfil cargado, el parser reconoce la sintaxis aritmética
11
+ // pero el intérprete no puede evaluar las expresiones numéricas.
12
+ // ============================================================
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.ArithmeticProfile = void 0;
15
+ exports.evalNumeric = evalNumeric;
16
+ // --- Tipos aritméticos ---
17
+ const ARITHMETIC_KINDS = new Set([
18
+ 'number', 'add', 'subtract', 'multiply', 'divide', 'modulo',
19
+ 'less', 'greater', 'less_eq', 'greater_eq',
20
+ ]);
21
+ const COMPARISON_KINDS = new Set([
22
+ 'less', 'greater', 'less_eq', 'greater_eq',
23
+ ]);
24
+ // --- Evaluación numérica ---
25
+ /**
26
+ * Evalúa recursivamente una fórmula aritmética a un valor numérico.
27
+ * Los átomos se interpretan como 0 (o se buscan en la teoría).
28
+ * Las comparaciones retornan 1 (true) o 0 (false).
29
+ */
30
+ function evalNumeric(f, vars) {
31
+ switch (f.kind) {
32
+ case 'number':
33
+ return f.value ?? 0;
34
+ case 'atom': {
35
+ // Intentar resolver variable como número
36
+ if (f.name && vars?.has(f.name)) {
37
+ return vars.get(f.name);
38
+ }
39
+ // Átomo sin valor numérico conocido
40
+ return NaN;
41
+ }
42
+ case 'add': {
43
+ const l = evalNumeric(f.args[0], vars);
44
+ const r = evalNumeric(f.args[1], vars);
45
+ return l + r;
46
+ }
47
+ case 'subtract': {
48
+ const l = evalNumeric(f.args[0], vars);
49
+ const r = evalNumeric(f.args[1], vars);
50
+ return l - r;
51
+ }
52
+ case 'multiply': {
53
+ const l = evalNumeric(f.args[0], vars);
54
+ const r = evalNumeric(f.args[1], vars);
55
+ return l * r;
56
+ }
57
+ case 'divide': {
58
+ const l = evalNumeric(f.args[0], vars);
59
+ const r = evalNumeric(f.args[1], vars);
60
+ if (r === 0)
61
+ return NaN;
62
+ return l / r;
63
+ }
64
+ case 'modulo': {
65
+ const l = evalNumeric(f.args[0], vars);
66
+ const r = evalNumeric(f.args[1], vars);
67
+ if (r === 0)
68
+ return NaN;
69
+ return l % r;
70
+ }
71
+ // Comparaciones retornan 1 (true) o 0 (false)
72
+ case 'less':
73
+ return evalNumeric(f.args[0], vars) < evalNumeric(f.args[1], vars) ? 1 : 0;
74
+ case 'greater':
75
+ return evalNumeric(f.args[0], vars) > evalNumeric(f.args[1], vars) ? 1 : 0;
76
+ case 'less_eq':
77
+ return evalNumeric(f.args[0], vars) <= evalNumeric(f.args[1], vars) ? 1 : 0;
78
+ case 'greater_eq':
79
+ return evalNumeric(f.args[0], vars) >= evalNumeric(f.args[1], vars) ? 1 : 0;
80
+ default:
81
+ return NaN;
82
+ }
83
+ }
84
+ /**
85
+ * Evalúa una comparación aritmética como valor booleano.
86
+ * Para fórmulas no-comparativas, evalúa el resultado numérico (truthy = !== 0).
87
+ */
88
+ function evalComparison(f, vars) {
89
+ if (COMPARISON_KINDS.has(f.kind)) {
90
+ return evalNumeric(f, vars) === 1;
91
+ }
92
+ // Para expresiones no-comparativas, truthy si !== 0 y no NaN
93
+ const val = evalNumeric(f, vars);
94
+ return !isNaN(val) && val !== 0;
95
+ }
96
+ /** Recolecta todos los átomos de una fórmula */
97
+ function collectAtoms(f) {
98
+ const atoms = new Set();
99
+ function walk(node) {
100
+ if (node.kind === 'atom' && node.name)
101
+ atoms.add(node.name);
102
+ if (node.args)
103
+ for (const a of node.args)
104
+ walk(a);
105
+ }
106
+ walk(f);
107
+ return atoms;
108
+ }
109
+ /**
110
+ * Verifica si una fórmula es puramente aritmética (no contiene conectivos lógicos).
111
+ */
112
+ function isArithmeticFormula(f) {
113
+ if (ARITHMETIC_KINDS.has(f.kind) || f.kind === 'atom')
114
+ return true;
115
+ if (f.args)
116
+ return f.args.every(isArithmeticFormula);
117
+ return false;
118
+ }
119
+ // --- Perfil ---
120
+ class ArithmeticProfile {
121
+ name = 'arithmetic';
122
+ description = 'Aritmética básica: +, -, *, /, %, comparaciones <, >, ≤, ≥';
123
+ result(status, output) {
124
+ return {
125
+ status,
126
+ output,
127
+ diagnostics: [],
128
+ };
129
+ }
130
+ checkWellFormed(formula) {
131
+ const diags = [];
132
+ // Verificar que no hay divisiones por cero literal
133
+ function walk(f) {
134
+ if (f.kind === 'divide' || f.kind === 'modulo') {
135
+ const divisor = f.args?.[1];
136
+ if (divisor?.kind === 'number' && divisor.value === 0) {
137
+ diags.push({
138
+ severity: 'warning',
139
+ message: `División por cero detectada`,
140
+ line: f.source?.line ?? 0,
141
+ column: f.source?.column ?? 0,
142
+ });
143
+ }
144
+ }
145
+ if (f.args)
146
+ for (const a of f.args)
147
+ walk(a);
148
+ }
149
+ walk(formula);
150
+ return diags;
151
+ }
152
+ checkValid(formula) {
153
+ // Para aritmética pura sin variables, evaluar directamente
154
+ const atoms = collectAtoms(formula);
155
+ if (atoms.size === 0) {
156
+ const result = evalComparison(formula);
157
+ return this.result(result ? 'valid' : 'invalid', result ? 'La expresión aritmética es verdadera' : 'La expresión aritmética es falsa');
158
+ }
159
+ // Con variables: no podemos determinar validez universal fácilmente
160
+ return this.result('unknown', `La fórmula contiene variables (${[...atoms].join(', ')}). No se puede determinar validez universal sin dominio.`);
161
+ }
162
+ checkSatisfiable(formula) {
163
+ const atoms = collectAtoms(formula);
164
+ if (atoms.size === 0) {
165
+ const result = evalComparison(formula);
166
+ return this.result(result ? 'satisfiable' : 'unsatisfiable', result
167
+ ? 'La expresión aritmética es satisfacible (verdadera)'
168
+ : 'La expresión aritmética no es satisfacible (falsa)');
169
+ }
170
+ // Con variables: asumimos satisfacible (no hacemos búsqueda exhaustiva)
171
+ return this.result('satisfiable', 'La fórmula contiene variables; asumida satisfacible.');
172
+ }
173
+ prove(goal, theory) {
174
+ // Intentar evaluar con axiomas como asignaciones numéricas
175
+ const vars = new Map();
176
+ theory.axioms.forEach((formula, name) => {
177
+ if (formula.kind === 'number') {
178
+ const numericValue = Number(formula.value);
179
+ if (!Number.isNaN(numericValue)) {
180
+ vars.set(name, numericValue);
181
+ }
182
+ }
183
+ });
184
+ const atoms = collectAtoms(goal);
185
+ const unresolvedAtoms = [...atoms].filter((a) => !vars.has(a));
186
+ if (unresolvedAtoms.length === 0) {
187
+ const result = evalComparison(goal, vars);
188
+ return this.result(result ? 'provable' : 'refutable', result
189
+ ? 'Demostrado: la expresión aritmética es verdadera con los axiomas dados'
190
+ : 'Refutado: la expresión aritmética es falsa con los axiomas dados');
191
+ }
192
+ return this.result('unknown', `No se puede probar: variables sin valor numérico: ${unresolvedAtoms.join(', ')}`);
193
+ }
194
+ derive(goal, premises, theory) {
195
+ return this.prove(goal, theory);
196
+ }
197
+ countermodel(formula) {
198
+ const atoms = collectAtoms(formula);
199
+ if (atoms.size === 0) {
200
+ const result = evalComparison(formula);
201
+ if (!result) {
202
+ return this.result('refutable', 'Contramodelo trivial: la expresión es falsa sin variables');
203
+ }
204
+ return this.result('valid', 'No hay contramodelo: la expresión aritmética es siempre verdadera');
205
+ }
206
+ return this.result('unknown', 'Búsqueda de contramodelo no implementada para fórmulas con variables');
207
+ }
208
+ explain(formula) {
209
+ const atoms = collectAtoms(formula);
210
+ if (atoms.size === 0) {
211
+ const val = evalNumeric(formula);
212
+ if (COMPARISON_KINDS.has(formula.kind)) {
213
+ const result = evalComparison(formula);
214
+ return this.result(result ? 'valid' : 'invalid', `Comparación aritmética: resultado = ${result ? 'verdadero' : 'falso'}`);
215
+ }
216
+ return this.result('valid', `Expresión aritmética: resultado = ${isNaN(val) ? 'indefinido' : val}`);
217
+ }
218
+ return this.result('unknown', `Expresión aritmética con variables: ${[...atoms].join(', ')}. Valor depende de asignación.`);
219
+ }
220
+ }
221
+ exports.ArithmeticProfile = ArithmeticProfile;
222
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/arithmetic/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"propositional.d.ts","sourceRoot":"","sources":["../../../src/profiles/classical/propositional.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,OAAO,EACP,UAAU,EACV,SAAS,EACT,MAAM,EACN,YAAY,EACZ,gBAAgB,EAKjB,MAAM,aAAa,CAAC;AAoFrB,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAuDlD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAyEzC;AA0UD,qBAAa,sBAAuB,YAAW,YAAY;IACzD,IAAI,SAA6B;IACjC,WAAW,SACgG;IAE3G,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE;IAkD/C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IA6BvC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IA4B7C,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IA2B/C,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IA0BpE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IA6BzC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAyBpC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;IAkB9C,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS;CA2BnD"}
1
+ {"version":3,"file":"propositional.d.ts","sourceRoot":"","sources":["../../../src/profiles/classical/propositional.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,OAAO,EACP,UAAU,EACV,SAAS,EACT,MAAM,EACN,YAAY,EACZ,gBAAgB,EAKjB,MAAM,aAAa,CAAC;AAoFrB,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CA8FlD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAyEzC;AA0UD,qBAAa,sBAAuB,YAAW,YAAY;IACzD,IAAI,SAA6B;IACjC,WAAW,SACgG;IAE3G,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE;IAkD/C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IA6BvC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IA4B7C,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IA2B/C,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IA0BpE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IA6BzC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAyBpC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB;IAkB9C,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS;CA2BnD"}
@@ -140,6 +140,45 @@ function formulaToString(f) {
140
140
  return f.name
141
141
  ? `${f.name}(${(f.params || []).join(', ')})`
142
142
  : '?(...)';
143
+ // Arithmetic
144
+ case 'number':
145
+ return f.value !== undefined ? String(f.value) : '?';
146
+ case 'add':
147
+ return f.args?.[0] && f.args?.[1]
148
+ ? `(${formulaToString(f.args[0])} + ${formulaToString(f.args[1])})`
149
+ : '? + ?';
150
+ case 'subtract':
151
+ return f.args?.[0] && f.args?.[1]
152
+ ? `(${formulaToString(f.args[0])} - ${formulaToString(f.args[1])})`
153
+ : '? - ?';
154
+ case 'multiply':
155
+ return f.args?.[0] && f.args?.[1]
156
+ ? `(${formulaToString(f.args[0])} * ${formulaToString(f.args[1])})`
157
+ : '? * ?';
158
+ case 'divide':
159
+ return f.args?.[0] && f.args?.[1]
160
+ ? `(${formulaToString(f.args[0])} / ${formulaToString(f.args[1])})`
161
+ : '? / ?';
162
+ case 'modulo':
163
+ return f.args?.[0] && f.args?.[1]
164
+ ? `(${formulaToString(f.args[0])} % ${formulaToString(f.args[1])})`
165
+ : '? % ?';
166
+ case 'less':
167
+ return f.args?.[0] && f.args?.[1]
168
+ ? `(${formulaToString(f.args[0])} < ${formulaToString(f.args[1])})`
169
+ : '? < ?';
170
+ case 'greater':
171
+ return f.args?.[0] && f.args?.[1]
172
+ ? `(${formulaToString(f.args[0])} > ${formulaToString(f.args[1])})`
173
+ : '? > ?';
174
+ case 'less_eq':
175
+ return f.args?.[0] && f.args?.[1]
176
+ ? `(${formulaToString(f.args[0])} <= ${formulaToString(f.args[1])})`
177
+ : '? <= ?';
178
+ case 'greater_eq':
179
+ return f.args?.[0] && f.args?.[1]
180
+ ? `(${formulaToString(f.args[0])} >= ${formulaToString(f.args[1])})`
181
+ : '? >= ?';
143
182
  default:
144
183
  return '?';
145
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"propositional.js","sourceRoot":"","sources":["../../../src/profiles/classical/propositional.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"propositional.js","sourceRoot":"","sources":["../../../src/profiles/classical/propositional.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { AristotelianSyllogistic } from './aristotelian/syllogistic';
8
8
  import { IntuitionisticPropositional } from './intuitionistic/propositional';
9
9
  import { TemporalLTL } from './temporal/ltl';
10
10
  import { ProbabilisticBasic } from './probabilistic/basic';
11
- export { ClassicalPropositional, ClassicalFirstOrder, ModalK, ParaconsistentBelnap, DeonticStandard, EpistemicS5, AristotelianSyllogistic, IntuitionisticPropositional, TemporalLTL, ProbabilisticBasic, };
11
+ import { ArithmeticProfile } from './arithmetic';
12
+ export { ClassicalPropositional, ClassicalFirstOrder, ModalK, ParaconsistentBelnap, DeonticStandard, EpistemicS5, AristotelianSyllogistic, IntuitionisticPropositional, TemporalLTL, ProbabilisticBasic, ArithmeticProfile, };
12
13
  export { registry, ProfileRegistry } from './interface';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAwB3D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,uBAAuB,EACvB,2BAA2B,EAC3B,WAAW,EACX,kBAAkB,GACnB,CAAC;AACF,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAyBjD,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,MAAM,EACN,oBAAoB,EACpB,eAAe,EACf,WAAW,EACX,uBAAuB,EACvB,2BAA2B,EAC3B,WAAW,EACX,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AACF,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -10,7 +10,7 @@
10
10
  // pública sin modificar este archivo.
11
11
  // ============================================================
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.ProfileRegistry = exports.registry = exports.ProbabilisticBasic = exports.TemporalLTL = exports.IntuitionisticPropositional = exports.AristotelianSyllogistic = exports.EpistemicS5 = exports.DeonticStandard = exports.ParaconsistentBelnap = exports.ModalK = exports.ClassicalFirstOrder = exports.ClassicalPropositional = void 0;
13
+ exports.ProfileRegistry = exports.registry = exports.ArithmeticProfile = exports.ProbabilisticBasic = exports.TemporalLTL = exports.IntuitionisticPropositional = exports.AristotelianSyllogistic = exports.EpistemicS5 = exports.DeonticStandard = exports.ParaconsistentBelnap = exports.ModalK = exports.ClassicalFirstOrder = exports.ClassicalPropositional = void 0;
14
14
  const interface_1 = require("./interface");
15
15
  // ── Built-in profiles ─────────────────────────────────────────
16
16
  const propositional_1 = require("./classical/propositional");
@@ -33,6 +33,8 @@ const ltl_1 = require("./temporal/ltl");
33
33
  Object.defineProperty(exports, "TemporalLTL", { enumerable: true, get: function () { return ltl_1.TemporalLTL; } });
34
34
  const basic_1 = require("./probabilistic/basic");
35
35
  Object.defineProperty(exports, "ProbabilisticBasic", { enumerable: true, get: function () { return basic_1.ProbabilisticBasic; } });
36
+ const arithmetic_1 = require("./arithmetic");
37
+ Object.defineProperty(exports, "ArithmeticProfile", { enumerable: true, get: function () { return arithmetic_1.ArithmeticProfile; } });
36
38
  // Registro idempotente
37
39
  const builtins = [
38
40
  propositional_1.ClassicalPropositional,
@@ -45,6 +47,7 @@ const builtins = [
45
47
  propositional_2.IntuitionisticPropositional,
46
48
  ltl_1.TemporalLTL,
47
49
  basic_1.ProbabilisticBasic,
50
+ arithmetic_1.ArithmeticProfile,
48
51
  ];
49
52
  for (const Profile of builtins) {
50
53
  const instance = new Profile();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,8CAA8C;AAC9C,+DAA+D;AAC/D,+DAA+D;AAC/D,4DAA4D;AAC5D,6CAA6C;AAC7C,EAAE;AACF,gEAAgE;AAChE,sCAAsC;AACtC,+DAA+D;;;AAE/D,2CAAuC;AAEvC,iEAAiE;AACjE,6DAAmE;AAkCjE,uGAlCO,sCAAsB,OAkCP;AAjCxB,yDAA8D;AAkC5D,oGAlCO,iCAAmB,OAkCP;AAjCrB,iCAAmC;AAkCjC,uFAlCO,UAAM,OAkCP;AAjCR,oDAA+D;AAkC7D,qGAlCO,6BAAoB,OAkCP;AAjCtB,iDAAqD;AAkCnD,gGAlCO,0BAAe,OAkCP;AAjCjB,uCAA6C;AAkC3C,4FAlCO,gBAAW,OAkCP;AAjCb,4DAAqE;AAkCnE,wGAlCO,qCAAuB,OAkCP;AAjCzB,kEAA6E;AAkC3E,4GAlCO,2CAA2B,OAkCP;AAjC7B,wCAA6C;AAkC3C,4FAlCO,iBAAW,OAkCP;AAjCb,iDAA2D;AAkCzD,mGAlCO,0BAAkB,OAkCP;AAhCpB,uBAAuB;AACvB,MAAM,QAAQ,GAAG;IACf,sCAAsB;IACtB,iCAAmB;IACnB,UAAM;IACN,6BAAoB;IACpB,0BAAe;IACf,gBAAW;IACX,qCAAuB;IACvB,2CAA2B;IAC3B,iBAAW;IACX,0BAAkB;CACnB,CAAC;AAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,oBAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,oBAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAeD,yCAAwD;AAA/C,qGAAA,QAAQ,OAAA;AAAE,4GAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profiles/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,8CAA8C;AAC9C,+DAA+D;AAC/D,+DAA+D;AAC/D,4DAA4D;AAC5D,6CAA6C;AAC7C,EAAE;AACF,gEAAgE;AAChE,sCAAsC;AACtC,+DAA+D;;;AAE/D,2CAAuC;AAEvC,iEAAiE;AACjE,6DAAmE;AAoCjE,uGApCO,sCAAsB,OAoCP;AAnCxB,yDAA8D;AAoC5D,oGApCO,iCAAmB,OAoCP;AAnCrB,iCAAmC;AAoCjC,uFApCO,UAAM,OAoCP;AAnCR,oDAA+D;AAoC7D,qGApCO,6BAAoB,OAoCP;AAnCtB,iDAAqD;AAoCnD,gGApCO,0BAAe,OAoCP;AAnCjB,uCAA6C;AAoC3C,4FApCO,gBAAW,OAoCP;AAnCb,4DAAqE;AAoCnE,wGApCO,qCAAuB,OAoCP;AAnCzB,kEAA6E;AAoC3E,4GApCO,2CAA2B,OAoCP;AAnC7B,wCAA6C;AAoC3C,4FApCO,iBAAW,OAoCP;AAnCb,iDAA2D;AAoCzD,mGApCO,0BAAkB,OAoCP;AAnCpB,6CAAiD;AAoC/C,kGApCO,8BAAiB,OAoCP;AAlCnB,uBAAuB;AACvB,MAAM,QAAQ,GAAG;IACf,sCAAsB;IACtB,iCAAmB;IACnB,UAAM;IACN,6BAAoB;IACpB,0BAAe;IACf,gBAAW;IACX,qCAAuB;IACvB,2CAA2B;IAC3B,iBAAW;IACX,0BAAkB;IAClB,8BAAiB;CAClB,CAAC;AAEF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,oBAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,oBAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AAgBD,yCAAwD;AAA/C,qGAAA,QAAQ,OAAA;AAAE,4GAAA,eAAe,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/runtime/format.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAiBnC,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAsDnD;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAsDjD"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/runtime/format.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAiBnC,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CA6FnD;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CA6FjD"}
@@ -77,6 +77,45 @@ function formulaToUnicode(f) {
77
77
  return f.args?.[0] && f.args?.[1]
78
78
  ? `(${formulaToUnicode(f.args[0])} U ${formulaToUnicode(f.args[1])})`
79
79
  : '? U ?';
80
+ // Arithmetic
81
+ case 'number':
82
+ return f.value !== undefined ? String(f.value) : '?';
83
+ case 'add':
84
+ return f.args?.[0] && f.args?.[1]
85
+ ? `(${formulaToUnicode(f.args[0])} + ${formulaToUnicode(f.args[1])})`
86
+ : '? + ?';
87
+ case 'subtract':
88
+ return f.args?.[0] && f.args?.[1]
89
+ ? `(${formulaToUnicode(f.args[0])} - ${formulaToUnicode(f.args[1])})`
90
+ : '? - ?';
91
+ case 'multiply':
92
+ return f.args?.[0] && f.args?.[1]
93
+ ? `(${formulaToUnicode(f.args[0])} × ${formulaToUnicode(f.args[1])})`
94
+ : '? × ?';
95
+ case 'divide':
96
+ return f.args?.[0] && f.args?.[1]
97
+ ? `(${formulaToUnicode(f.args[0])} ÷ ${formulaToUnicode(f.args[1])})`
98
+ : '? ÷ ?';
99
+ case 'modulo':
100
+ return f.args?.[0] && f.args?.[1]
101
+ ? `(${formulaToUnicode(f.args[0])} % ${formulaToUnicode(f.args[1])})`
102
+ : '? % ?';
103
+ case 'less':
104
+ return f.args?.[0] && f.args?.[1]
105
+ ? `(${formulaToUnicode(f.args[0])} < ${formulaToUnicode(f.args[1])})`
106
+ : '? < ?';
107
+ case 'greater':
108
+ return f.args?.[0] && f.args?.[1]
109
+ ? `(${formulaToUnicode(f.args[0])} > ${formulaToUnicode(f.args[1])})`
110
+ : '? > ?';
111
+ case 'less_eq':
112
+ return f.args?.[0] && f.args?.[1]
113
+ ? `(${formulaToUnicode(f.args[0])} ≤ ${formulaToUnicode(f.args[1])})`
114
+ : '? ≤ ?';
115
+ case 'greater_eq':
116
+ return f.args?.[0] && f.args?.[1]
117
+ ? `(${formulaToUnicode(f.args[0])} ≥ ${formulaToUnicode(f.args[1])})`
118
+ : '? ≥ ?';
80
119
  default:
81
120
  return '?';
82
121
  }
@@ -132,8 +171,47 @@ function formulaToLaTeX(f) {
132
171
  return f.args?.[0] ? `\\mathsf{X}\\,(${formulaToLaTeX(f.args[0])})` : '\\mathsf{X}\\,?';
133
172
  case 'temporal_until':
134
173
  return f.args?.[0] && f.args?.[1]
135
- ? `(${formulaToLaTeX(f.args[0])} \\mathbin{\\mathsf{U}} ${formulaToLaTeX(f.args[1])})`
136
- : '? \\mathbin{\\mathsf{U}} ?';
174
+ ? `(${formulaToLaTeX(f.args[0])} \mathbin{\mathsf{U}} ${formulaToLaTeX(f.args[1])})`
175
+ : '? \mathbin{\mathsf{U}} ?';
176
+ // Arithmetic
177
+ case 'number':
178
+ return f.value !== undefined ? String(f.value) : '?';
179
+ case 'add':
180
+ return f.args?.[0] && f.args?.[1]
181
+ ? `(${formulaToLaTeX(f.args[0])} + ${formulaToLaTeX(f.args[1])})`
182
+ : '? + ?';
183
+ case 'subtract':
184
+ return f.args?.[0] && f.args?.[1]
185
+ ? `(${formulaToLaTeX(f.args[0])} - ${formulaToLaTeX(f.args[1])})`
186
+ : '? - ?';
187
+ case 'multiply':
188
+ return f.args?.[0] && f.args?.[1]
189
+ ? `(${formulaToLaTeX(f.args[0])} \\times ${formulaToLaTeX(f.args[1])})`
190
+ : '? \\times ?';
191
+ case 'divide':
192
+ return f.args?.[0] && f.args?.[1]
193
+ ? `\\frac{${formulaToLaTeX(f.args[0])}}{${formulaToLaTeX(f.args[1])}}`
194
+ : '\\frac{?}{?}';
195
+ case 'modulo':
196
+ return f.args?.[0] && f.args?.[1]
197
+ ? `(${formulaToLaTeX(f.args[0])} \\bmod ${formulaToLaTeX(f.args[1])})`
198
+ : '? \\bmod ?';
199
+ case 'less':
200
+ return f.args?.[0] && f.args?.[1]
201
+ ? `(${formulaToLaTeX(f.args[0])} < ${formulaToLaTeX(f.args[1])})`
202
+ : '? < ?';
203
+ case 'greater':
204
+ return f.args?.[0] && f.args?.[1]
205
+ ? `(${formulaToLaTeX(f.args[0])} > ${formulaToLaTeX(f.args[1])})`
206
+ : '? > ?';
207
+ case 'less_eq':
208
+ return f.args?.[0] && f.args?.[1]
209
+ ? `(${formulaToLaTeX(f.args[0])} \\leq ${formulaToLaTeX(f.args[1])})`
210
+ : '? \\leq ?';
211
+ case 'greater_eq':
212
+ return f.args?.[0] && f.args?.[1]
213
+ ? `(${formulaToLaTeX(f.args[0])} \\geq ${formulaToLaTeX(f.args[1])})`
214
+ : '? \\geq ?';
137
215
  default:
138
216
  return '?';
139
217
  }