@stevenvo780/autologic 2.0.1 → 2.2.1

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 (105) hide show
  1. package/README.md +2 -0
  2. package/dist/atoms/index.d.ts +1 -1
  3. package/dist/atoms/index.d.ts.map +1 -1
  4. package/dist/atoms/index.js +75 -3
  5. package/dist/atoms/index.js.map +1 -1
  6. package/dist/atoms/keyword-extractor.d.ts +9 -0
  7. package/dist/atoms/keyword-extractor.d.ts.map +1 -1
  8. package/dist/atoms/keyword-extractor.js +64 -2
  9. package/dist/atoms/keyword-extractor.js.map +1 -1
  10. package/dist/atoms/math-parser.d.ts +11 -0
  11. package/dist/atoms/math-parser.d.ts.map +1 -0
  12. package/dist/atoms/math-parser.js +44 -0
  13. package/dist/atoms/math-parser.js.map +1 -0
  14. package/dist/compiler-frontend.d.ts +9 -0
  15. package/dist/compiler-frontend.d.ts.map +1 -0
  16. package/dist/compiler-frontend.js +142 -0
  17. package/dist/compiler-frontend.js.map +1 -0
  18. package/dist/context/discourse-state.d.ts +10 -0
  19. package/dist/context/discourse-state.d.ts.map +1 -0
  20. package/dist/context/discourse-state.js +26 -0
  21. package/dist/context/discourse-state.js.map +1 -0
  22. package/dist/discourse/markers-es.d.ts.map +1 -1
  23. package/dist/discourse/markers-es.js +23 -0
  24. package/dist/discourse/markers-es.js.map +1 -1
  25. package/dist/discourse/pattern-detector.d.ts.map +1 -1
  26. package/dist/discourse/pattern-detector.js +2 -1
  27. package/dist/discourse/pattern-detector.js.map +1 -1
  28. package/dist/discourse/role-classifier.js +32 -3
  29. package/dist/discourse/role-classifier.js.map +1 -1
  30. package/dist/formalize.d.ts +16 -0
  31. package/dist/formalize.d.ts.map +1 -1
  32. package/dist/formalize.js +130 -0
  33. package/dist/formalize.js.map +1 -1
  34. package/dist/formula/argument-builder.d.ts.map +1 -1
  35. package/dist/formula/argument-builder.js +95 -16
  36. package/dist/formula/argument-builder.js.map +1 -1
  37. package/dist/formula/ast-compiler.d.ts +6 -0
  38. package/dist/formula/ast-compiler.d.ts.map +1 -0
  39. package/dist/formula/ast-compiler.js +105 -0
  40. package/dist/formula/ast-compiler.js.map +1 -0
  41. package/dist/formula/ast.d.ts +81 -0
  42. package/dist/formula/ast.d.ts.map +1 -0
  43. package/dist/formula/ast.js +52 -0
  44. package/dist/formula/ast.js.map +1 -0
  45. package/dist/formula/connectors.js +1 -1
  46. package/dist/formula/connectors.js.map +1 -1
  47. package/dist/formula/first-order.js +74 -7
  48. package/dist/formula/first-order.js.map +1 -1
  49. package/dist/formula/helpers.d.ts +8 -0
  50. package/dist/formula/helpers.d.ts.map +1 -0
  51. package/dist/formula/helpers.js +166 -0
  52. package/dist/formula/helpers.js.map +1 -0
  53. package/dist/formula/index.d.ts +1 -0
  54. package/dist/formula/index.d.ts.map +1 -1
  55. package/dist/formula/index.js +5 -3
  56. package/dist/formula/index.js.map +1 -1
  57. package/dist/formula/modal.d.ts.map +1 -1
  58. package/dist/formula/modal.js +56 -67
  59. package/dist/formula/modal.js.map +1 -1
  60. package/dist/formula/probabilistic.d.ts +3 -0
  61. package/dist/formula/probabilistic.d.ts.map +1 -0
  62. package/dist/formula/probabilistic.js +55 -0
  63. package/dist/formula/probabilistic.js.map +1 -0
  64. package/dist/formula/propositional.d.ts +2 -2
  65. package/dist/formula/propositional.d.ts.map +1 -1
  66. package/dist/formula/propositional.js +74 -102
  67. package/dist/formula/propositional.js.map +1 -1
  68. package/dist/formula/temporal.d.ts.map +1 -1
  69. package/dist/formula/temporal.js +87 -62
  70. package/dist/formula/temporal.js.map +1 -1
  71. package/dist/generator/validator.d.ts +20 -0
  72. package/dist/generator/validator.d.ts.map +1 -1
  73. package/dist/generator/validator.js +112 -0
  74. package/dist/generator/validator.js.map +1 -1
  75. package/dist/index.d.ts +6 -17
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +8 -17
  78. package/dist/index.js.map +1 -1
  79. package/dist/llm-parser.d.ts +31 -0
  80. package/dist/llm-parser.d.ts.map +1 -0
  81. package/dist/llm-parser.js +197 -0
  82. package/dist/llm-parser.js.map +1 -0
  83. package/dist/local-slm-web.d.ts +8 -0
  84. package/dist/local-slm-web.d.ts.map +1 -0
  85. package/dist/local-slm-web.js +87 -0
  86. package/dist/local-slm-web.js.map +1 -0
  87. package/dist/nl-linter/index.d.ts +10 -0
  88. package/dist/nl-linter/index.d.ts.map +1 -0
  89. package/dist/nl-linter/index.js +45 -0
  90. package/dist/nl-linter/index.js.map +1 -0
  91. package/dist/nl-linter/rules.d.ts +6 -0
  92. package/dist/nl-linter/rules.d.ts.map +1 -0
  93. package/dist/nl-linter/rules.js +93 -0
  94. package/dist/nl-linter/rules.js.map +1 -0
  95. package/dist/nl-linter/types.d.ts +14 -0
  96. package/dist/nl-linter/types.d.ts.map +1 -0
  97. package/dist/nl-linter/types.js +3 -0
  98. package/dist/nl-linter/types.js.map +1 -0
  99. package/dist/segmenter/clause-splitter.d.ts.map +1 -1
  100. package/dist/segmenter/clause-splitter.js +208 -10
  101. package/dist/segmenter/clause-splitter.js.map +1 -1
  102. package/dist/types.d.ts +22 -0
  103. package/dist/types.d.ts.map +1 -1
  104. package/package.json +12 -4
  105. package/readme.md +666 -1
@@ -19,9 +19,13 @@ function buildCrossSentenceDerivations(perSentenceFormulas, sentences, atomEntri
19
19
  const disjunctions = perSentenceFormulas.filter(f => f.stType === 'axiom' && f.formula.includes(connectors_1.ST_OPERATORS.disjunction)
20
20
  && !f.formula.includes(connectors_1.ST_OPERATORS.implication));
21
21
  const existingDerives = perSentenceFormulas.filter(f => f.stType === 'derive');
22
- // Si ya hay derives, no duplicar
23
- if (existingDerives.length > 0)
24
- return extra;
22
+ const derivedOrExistingFormulas = new Set(existingDerives.map((formula) => formula.formula));
23
+ const pushExtra = (entry) => {
24
+ if (derivedOrExistingFormulas.has(entry.formula))
25
+ return;
26
+ derivedOrExistingFormulas.add(entry.formula);
27
+ extra.push(entry);
28
+ };
25
29
  // ── Modus Ponens: A→B, A ⊢ B ──────────────────
26
30
  if (detectedPatterns.includes('modus_ponens') || conditionals.length > 0) {
27
31
  for (const cond of conditionals) {
@@ -33,7 +37,7 @@ function buildCrossSentenceDerivations(perSentenceFormulas, sentences, atomEntri
33
37
  if (matchingPremise) {
34
38
  // Buscar si ya hay conclusión explícita
35
39
  const conclusionSentences = sentences.filter(s => s.clauses.some(c => c.role === 'conclusion'));
36
- extra.push({
40
+ pushExtra({
37
41
  formula: parsed.consequent,
38
42
  stType: 'derive',
39
43
  label: `mp_${labelCounter++}`,
@@ -68,7 +72,7 @@ function buildCrossSentenceDerivations(perSentenceFormulas, sentences, atomEntri
68
72
  });
69
73
  const foundNeg = matchingNeg || matchingNeg2;
70
74
  if (foundNeg) {
71
- extra.push({
75
+ pushExtra({
72
76
  formula: `${connectors_1.ST_OPERATORS.negation}(${parsed.antecedent})`,
73
77
  stType: 'derive',
74
78
  label: `mt_${labelCounter++}`,
@@ -84,7 +88,7 @@ function buildCrossSentenceDerivations(perSentenceFormulas, sentences, atomEntri
84
88
  if (detectedPatterns.includes('hypothetical_syllogism') || conditionals.length >= 2) {
85
89
  const chains = findConditionalChains(conditionals, atomEntries);
86
90
  for (const chain of chains) {
87
- extra.push({
91
+ pushExtra({
88
92
  formula: `${chain.start} ${connectors_1.ST_OPERATORS.implication} ${chain.end}`,
89
93
  stType: 'derive',
90
94
  label: `hs_${labelCounter++}`,
@@ -108,7 +112,7 @@ function buildCrossSentenceDerivations(perSentenceFormulas, sentences, atomEntri
108
112
  const negIdx = parts.findIndex(p => atomsUnify(p, negated, atomEntries));
109
113
  if (negIdx >= 0) {
110
114
  const remaining = parts.filter((_, i) => i !== negIdx).join(` ${connectors_1.ST_OPERATORS.disjunction} `);
111
- extra.push({
115
+ pushExtra({
112
116
  formula: remaining,
113
117
  stType: 'derive',
114
118
  label: `ds_${labelCounter++}`,
@@ -127,8 +131,8 @@ function buildCrossSentenceDerivations(perSentenceFormulas, sentences, atomEntri
127
131
  const chains = findConditionalChains(conditionals, atomEntries);
128
132
  for (const chain of chains) {
129
133
  const matchingStart = findMatchingAxiom(chain.start, positiveAxioms, atomEntries);
130
- if (matchingStart && extra.every(e => e.formula !== chain.end)) {
131
- extra.push({
134
+ if (matchingStart && !derivedOrExistingFormulas.has(chain.end)) {
135
+ pushExtra({
132
136
  formula: chain.end,
133
137
  stType: 'derive',
134
138
  label: `chain_${labelCounter++}`,
@@ -158,7 +162,7 @@ function buildCrossSentenceDerivations(perSentenceFormulas, sentences, atomEntri
158
162
  const premiseLabels = positiveAxioms.map(a => a.label);
159
163
  // Solo agregar si no es redundante con la conclusión ya existente
160
164
  if (!extra.some(e => e.formula === conclusionFormula)) {
161
- extra.push({
165
+ pushExtra({
162
166
  formula: `${antecedent} ${connectors_1.ST_OPERATORS.implication} ${conclusionFormula}`,
163
167
  stType: 'axiom',
164
168
  label: `ui_regla_${labelCounter++}`,
@@ -176,11 +180,24 @@ function buildCrossSentenceDerivations(perSentenceFormulas, sentences, atomEntri
176
180
  // ══════════════════════════════════════════════════════════════
177
181
  /** Parsea "A -> B" en { antecedent, consequent } */
178
182
  function parseImplication(formula) {
179
- const idx = formula.indexOf(` ${connectors_1.ST_OPERATORS.implication} `);
183
+ const operator = ` ${connectors_1.ST_OPERATORS.implication} `;
184
+ let depth = 0;
185
+ let idx = -1;
186
+ for (let i = 0; i <= formula.length - operator.length; i++) {
187
+ const char = formula[i];
188
+ if (char === '(')
189
+ depth++;
190
+ else if (char === ')')
191
+ depth = Math.max(0, depth - 1);
192
+ if (depth === 0 && formula.slice(i, i + operator.length) === operator) {
193
+ idx = i;
194
+ break;
195
+ }
196
+ }
180
197
  if (idx < 0)
181
198
  return null;
182
199
  const antecedent = formula.slice(0, idx).trim();
183
- const consequent = formula.slice(idx + ` ${connectors_1.ST_OPERATORS.implication} `.length).trim();
200
+ const consequent = formula.slice(idx + operator.length).trim();
184
201
  if (!antecedent || !consequent)
185
202
  return null;
186
203
  return { antecedent, consequent };
@@ -208,17 +225,79 @@ function stripNegation(formula) {
208
225
  * Usa similitud de stems para manejar variaciones morfológicas.
209
226
  */
210
227
  function atomsUnify(a, b, atomEntries) {
228
+ const normalizeFormulaAtom = (value) => {
229
+ let current = value.trim();
230
+ let changed = true;
231
+ while (changed) {
232
+ changed = false;
233
+ const unaryWrap = current.match(/^(?:!|\[\]|<>|K|B|O|P|G|F)\((.+)\)$/);
234
+ if (unaryWrap) {
235
+ current = unaryWrap[1].trim();
236
+ changed = true;
237
+ continue;
238
+ }
239
+ const prefixed = current.match(/^next\s+(.+)$/);
240
+ if (prefixed) {
241
+ current = prefixed[1].trim();
242
+ changed = true;
243
+ }
244
+ }
245
+ return current.replace(/^\(|\)$/g, '').trim();
246
+ };
247
+ const semanticSimilarity = (left, right) => {
248
+ if (left.polarity && right.polarity && left.polarity !== right.polarity)
249
+ return 0;
250
+ let score = 0;
251
+ const sameRelation = left.relationKind && right.relationKind && left.relationKind === right.relationKind;
252
+ if (sameRelation)
253
+ score += 0.1;
254
+ if (left.predicate && right.predicate) {
255
+ const predicateSim = (0, coreference_1.diceSimilarity)((0, keyword_extractor_1.bagOfStems)(left.predicate, 'es'), (0, keyword_extractor_1.bagOfStems)(right.predicate, 'es'));
256
+ if (predicateSim >= 0.8)
257
+ score += 0.7;
258
+ else if (predicateSim >= 0.5)
259
+ score += 0.45;
260
+ }
261
+ if (left.object && right.object) {
262
+ const objectSim = (0, coreference_1.diceSimilarity)((0, keyword_extractor_1.bagOfStems)(left.object, 'es'), (0, keyword_extractor_1.bagOfStems)(right.object, 'es'));
263
+ if (objectSim >= 0.75)
264
+ score += 0.2;
265
+ else if (objectSim >= 0.5)
266
+ score += 0.1;
267
+ }
268
+ if (left.subject && right.subject) {
269
+ const subjectSim = (0, coreference_1.diceSimilarity)((0, keyword_extractor_1.bagOfStems)(left.subject, 'es'), (0, keyword_extractor_1.bagOfStems)(right.subject, 'es'));
270
+ if (subjectSim >= 0.75)
271
+ score += 0.15;
272
+ }
273
+ if (left.relationKind === 'copula' && right.relationKind === 'copula' && left.predicate && right.predicate) {
274
+ const samePredicate = (0, coreference_1.diceSimilarity)((0, keyword_extractor_1.bagOfStems)(left.predicate, 'es'), (0, keyword_extractor_1.bagOfStems)(right.predicate, 'es')) >= 0.8;
275
+ if (samePredicate)
276
+ score = Math.max(score, 0.82);
277
+ }
278
+ if (left.keywords?.length && right.keywords?.length) {
279
+ const keywordSim = (0, coreference_1.diceSimilarity)(new Set(left.keywords), new Set(right.keywords));
280
+ if (keywordSim >= 0.6)
281
+ score += 0.1;
282
+ }
283
+ return Math.min(score, 1);
284
+ };
211
285
  // Igualdad directa
212
286
  if (a === b)
213
287
  return true;
214
288
  // Normalizar quitando paréntesis externos
215
- const na = a.replace(/^\(|\)$/g, '').trim();
216
- const nb = b.replace(/^\(|\)$/g, '').trim();
289
+ const na = normalizeFormulaAtom(a);
290
+ const nb = normalizeFormulaAtom(b);
217
291
  if (na === nb)
218
292
  return true;
219
293
  // Buscar los textos originales de los átomos
220
- const textA = atomEntries.find(e => e.id === na)?.text;
221
- const textB = atomEntries.find(e => e.id === nb)?.text;
294
+ const atomA = atomEntries.find(e => e.id === na);
295
+ const atomB = atomEntries.find(e => e.id === nb);
296
+ const textA = atomA?.text;
297
+ const textB = atomB?.text;
298
+ if (atomA && atomB && semanticSimilarity(atomA, atomB) >= 0.8) {
299
+ return true;
300
+ }
222
301
  if (textA && textB) {
223
302
  const stemsA = (0, keyword_extractor_1.bagOfStems)(textA, 'es');
224
303
  const stemsB = (0, keyword_extractor_1.bagOfStems)(textB, 'es');
@@ -1 +1 @@
1
- {"version":3,"file":"argument-builder.js","sourceRoot":"","sources":["../../src/formula/argument-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"argument-builder.js","sourceRoot":"","sources":["../../src/formula/argument-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { LogicNode } from './ast';
2
+ /**
3
+ * Compiles an AST Node into valid ST source code syntax.
4
+ */
5
+ export declare function compileAST(node: LogicNode): string;
6
+ //# sourceMappingURL=ast-compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-compiler.d.ts","sourceRoot":"","sources":["../../src/formula/ast-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CA8FlD"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compileAST = compileAST;
4
+ /**
5
+ * Compiles an AST Node into valid ST source code syntax.
6
+ */
7
+ function compileAST(node) {
8
+ switch (node.type) {
9
+ case 'Atom':
10
+ return node.id;
11
+ case 'Object':
12
+ return node.name;
13
+ case 'Predicate':
14
+ return `${node.name}(${node.args.map(compileAST).join(', ')})`;
15
+ case 'Connective': {
16
+ const left = compileAST(node.left);
17
+ if (node.operator === 'NOT') {
18
+ const inner = node.left.type === 'Connective' || node.left.type === 'Quantifier' ? `(${left})` : left;
19
+ return `!${inner}`;
20
+ }
21
+ const right = compileAST(node.right);
22
+ switch (node.operator) {
23
+ case 'AND': return `${left} & ${right}`;
24
+ case 'OR': return `${left} | ${right}`;
25
+ case 'IMPLIES': return `${left} -> ${right}`;
26
+ case 'IFF': return `${left} <-> ${right}`;
27
+ }
28
+ }
29
+ case 'Quantifier': {
30
+ const vars = node.variables;
31
+ const child = compileAST(node.child);
32
+ if (node.operator === 'FORALL') {
33
+ return vars.reduceRight((acc, v) => `forall ${v} (${acc})`, child);
34
+ }
35
+ else if (node.operator === 'EXISTS') {
36
+ return vars.reduceRight((acc, v) => `exists ${v} (${acc})`, child);
37
+ }
38
+ else if (node.operator === 'EXACTLY_N') {
39
+ const n = node.exactCount;
40
+ const conditions = [];
41
+ for (let i = 0; i < n; i++) {
42
+ for (let j = i + 1; j < n; j++) {
43
+ conditions.push(`(${node.variables[i]} != ${node.variables[j]})`);
44
+ }
45
+ }
46
+ let inside = `${child}`;
47
+ if (conditions.length > 0) {
48
+ inside = `${inside} & ${conditions.join(' & ')}`;
49
+ }
50
+ return `exists ${vars} (${inside})`;
51
+ }
52
+ return '';
53
+ }
54
+ case 'Modal': {
55
+ const child = compileAST(node.child);
56
+ const inner = node.child.type === 'Connective' ? `(${child})` : child;
57
+ switch (node.operator) {
58
+ case 'K': return node.agent ? `K_${node.agent}(${inner})` : `K(${inner})`;
59
+ case 'B': return node.agent ? `B_${node.agent}(${inner})` : `B(${inner})`;
60
+ case 'O': return `O(${inner})`;
61
+ case 'P': return `P(${inner})`;
62
+ case 'F': return `F(${inner})`;
63
+ case 'BOX': return `box(${inner})`;
64
+ case 'DIA': return `dia(${inner})`;
65
+ case 'ALWAYS': return `G(${inner})`;
66
+ case 'EVENTUALLY': return `F_temp(${inner})`;
67
+ case 'NEXT': return `X(${inner})`;
68
+ }
69
+ return child;
70
+ }
71
+ case 'TemporalBinary': {
72
+ const left = compileAST(node.left);
73
+ const right = compileAST(node.right);
74
+ if (node.operator === 'UNTIL')
75
+ return `${left} U ${right}`;
76
+ return '';
77
+ }
78
+ case 'Math': {
79
+ const left = compileAST(node.left);
80
+ const right = compileAST(node.right);
81
+ switch (node.operator) {
82
+ case 'ADD': return `Addition(${left}, ${right})`;
83
+ case 'SUB': return `Subtraction(${left}, ${right})`;
84
+ case 'MUL': return `Multiplication(${left}, ${right})`;
85
+ case 'DIV': return `Division(${left}, ${right})`;
86
+ case 'MOD': return `Modulo(${left}, ${right})`;
87
+ case 'EQ': return `${left} = ${right}`;
88
+ case 'NEQ': return `${left} != ${right}`;
89
+ case 'LT': return `${left} < ${right}`;
90
+ case 'LTE': return `${left} <= ${right}`;
91
+ case 'GT': return `${left} > ${right}`;
92
+ case 'GTE': return `${left} >= ${right}`;
93
+ }
94
+ }
95
+ case 'Probability': {
96
+ const child = compileAST(node.child);
97
+ return `Pr(${child}) = ${node.value}`;
98
+ }
99
+ case 'Ref': {
100
+ return `REF_${node.targetId}`;
101
+ }
102
+ }
103
+ return '';
104
+ }
105
+ //# sourceMappingURL=ast-compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast-compiler.js","sourceRoot":"","sources":["../../src/formula/ast-compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ export type LogicOperation = 'AND' | 'OR' | 'IMPLIES' | 'IFF' | 'NOT';
2
+ export type QuantifierType = 'FORALL' | 'EXISTS' | 'EXACTLY_N';
3
+ export type ModalOperator = 'K' | 'B' | 'O' | 'P' | 'F' | 'BOX' | 'DIA' | 'ALWAYS' | 'EVENTUALLY' | 'NEXT';
4
+ export type TemporalBinaryOp = 'UNTIL';
5
+ export type MathOp = 'ADD' | 'SUB' | 'MUL' | 'DIV' | 'MOD' | 'EQ' | 'NEQ' | 'LT' | 'GT' | 'LTE' | 'GTE';
6
+ export interface BaseNode {
7
+ type: string;
8
+ }
9
+ export interface AtomNode extends BaseNode {
10
+ type: 'Atom';
11
+ id: string;
12
+ text: string;
13
+ }
14
+ export interface ConnectiveNode extends BaseNode {
15
+ type: 'Connective';
16
+ operator: LogicOperation;
17
+ left: LogicNode;
18
+ right?: LogicNode;
19
+ }
20
+ export interface QuantifierNode extends BaseNode {
21
+ type: 'Quantifier';
22
+ operator: QuantifierType;
23
+ variables: string[];
24
+ exactCount?: number;
25
+ child: LogicNode;
26
+ }
27
+ export interface ModalNode extends BaseNode {
28
+ type: 'Modal';
29
+ operator: ModalOperator;
30
+ agent?: string;
31
+ child: LogicNode;
32
+ }
33
+ export interface TemporalNode extends BaseNode {
34
+ type: 'TemporalBinary';
35
+ operator: TemporalBinaryOp;
36
+ left: LogicNode;
37
+ right: LogicNode;
38
+ }
39
+ export interface PredicateNode extends BaseNode {
40
+ type: 'Predicate';
41
+ name: string;
42
+ args: LogicNode[];
43
+ }
44
+ export interface ObjectNode extends BaseNode {
45
+ type: 'Object';
46
+ name: string;
47
+ }
48
+ export interface MathNode extends BaseNode {
49
+ type: 'Math';
50
+ operator: MathOp;
51
+ left: LogicNode;
52
+ right: LogicNode;
53
+ }
54
+ export interface ProbabilityNode extends BaseNode {
55
+ type: 'Probability';
56
+ value: number;
57
+ child: LogicNode;
58
+ }
59
+ export interface RefNode extends BaseNode {
60
+ type: 'Ref';
61
+ targetId: string;
62
+ }
63
+ export type LogicNode = AtomNode | ConnectiveNode | QuantifierNode | ModalNode | TemporalNode | PredicateNode | ObjectNode | MathNode | ProbabilityNode | RefNode;
64
+ export declare const AST: {
65
+ atom(id: string, text: string): AtomNode;
66
+ and(left: LogicNode, right: LogicNode): ConnectiveNode;
67
+ or(left: LogicNode, right: LogicNode): ConnectiveNode;
68
+ implies(left: LogicNode, right: LogicNode): ConnectiveNode;
69
+ not(child: LogicNode): ConnectiveNode;
70
+ forall(variables: string[], child: LogicNode): QuantifierNode;
71
+ exists(variables: string[], child: LogicNode): QuantifierNode;
72
+ exactlyN(variables: string[], count: number, child: LogicNode): QuantifierNode;
73
+ modal(operator: ModalOperator, child: LogicNode, agent?: string): ModalNode;
74
+ temporalUntil(left: LogicNode, right: LogicNode): TemporalNode;
75
+ predicate(name: string, args: LogicNode[]): PredicateNode;
76
+ obj(name: string): ObjectNode;
77
+ math(operator: MathOp, left: LogicNode, right: LogicNode): MathNode;
78
+ probability(value: number, child: LogicNode): ProbabilityNode;
79
+ ref(targetId: string): RefNode;
80
+ };
81
+ //# sourceMappingURL=ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/formula/ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AST = void 0;
4
+ // Helper Factories
5
+ exports.AST = {
6
+ atom(id, text) {
7
+ return { type: 'Atom', id, text };
8
+ },
9
+ and(left, right) {
10
+ return { type: 'Connective', operator: 'AND', left, right };
11
+ },
12
+ or(left, right) {
13
+ return { type: 'Connective', operator: 'OR', left, right };
14
+ },
15
+ implies(left, right) {
16
+ return { type: 'Connective', operator: 'IMPLIES', left, right };
17
+ },
18
+ not(child) {
19
+ return { type: 'Connective', operator: 'NOT', left: child };
20
+ },
21
+ forall(variables, child) {
22
+ return { type: 'Quantifier', operator: 'FORALL', variables, child };
23
+ },
24
+ exists(variables, child) {
25
+ return { type: 'Quantifier', operator: 'EXISTS', variables, child };
26
+ },
27
+ exactlyN(variables, count, child) {
28
+ return { type: 'Quantifier', operator: 'EXACTLY_N', variables, exactCount: count, child };
29
+ },
30
+ modal(operator, child, agent) {
31
+ return { type: 'Modal', operator, agent, child };
32
+ },
33
+ temporalUntil(left, right) {
34
+ return { type: 'TemporalBinary', operator: 'UNTIL', left, right };
35
+ },
36
+ predicate(name, args) {
37
+ return { type: 'Predicate', name, args };
38
+ },
39
+ obj(name) {
40
+ return { type: 'Object', name };
41
+ },
42
+ math(operator, left, right) {
43
+ return { type: 'Math', operator, left, right };
44
+ },
45
+ probability(value, child) {
46
+ return { type: 'Probability', value, child };
47
+ },
48
+ ref(targetId) {
49
+ return { type: 'Ref', targetId };
50
+ }
51
+ };
52
+ //# sourceMappingURL=ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/formula/ast.ts"],"names":[],"mappings":";;;AAyGA,mBAAmB;AACN,QAAA,GAAG,GAAG;IACjB,IAAI,CAAC,EAAU,EAAE,IAAY;QAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,GAAG,CAAC,IAAe,EAAE,KAAgB;QACnC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IACD,EAAE,CAAC,IAAe,EAAE,KAAgB;QAClC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7D,CAAC;IACD,OAAO,CAAC,IAAe,EAAE,KAAgB;QACvC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAClE,CAAC;IACD,GAAG,CAAC,KAAgB;QAClB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,CAAC,SAAmB,EAAE,KAAgB;QAC1C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;IACD,MAAM,CAAC,SAAmB,EAAE,KAAgB;QAC1C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;IACD,QAAQ,CAAC,SAAmB,EAAE,KAAa,EAAE,KAAgB;QAC3D,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC5F,CAAC;IACD,KAAK,CAAC,QAAuB,EAAE,KAAgB,EAAE,KAAc;QAC7D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACnD,CAAC;IACD,aAAa,CAAC,IAAe,EAAE,KAAgB;QAC7C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACpE,CAAC;IACD,SAAS,CAAC,IAAY,EAAE,IAAiB;QACvC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3C,CAAC;IACD,GAAG,CAAC,IAAY;QACd,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,QAAgB,EAAE,IAAe,EAAE,KAAgB;QACtD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACjD,CAAC;IACD,WAAW,CAAC,KAAa,EAAE,KAAgB;QACzC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC/C,CAAC;IACD,GAAG,CAAC,QAAgB;QAClB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC;CACF,CAAC"}
@@ -82,7 +82,7 @@ function profileSupportsOperator(profile, operator) {
82
82
  return firstOrder.includes(operator);
83
83
  case 'arithmetic':
84
84
  case 'probabilistic.basic':
85
- return propositional.includes(operator);
85
+ return [...propositional, '<>', '[]', 'Pr'].includes(operator);
86
86
  default:
87
87
  return propositional.includes(operator);
88
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../src/formula/connectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../src/formula/connectors.ts"],"names":[],"mappings":"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"}