@stevenvo780/autologic 2.0.0 → 2.2.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.
- package/README.md +2 -0
- package/dist/atoms/index.d.ts +1 -1
- package/dist/atoms/index.d.ts.map +1 -1
- package/dist/atoms/index.js +91 -3
- package/dist/atoms/index.js.map +1 -1
- package/dist/atoms/keyword-extractor.d.ts +9 -0
- package/dist/atoms/keyword-extractor.d.ts.map +1 -1
- package/dist/atoms/keyword-extractor.js +64 -2
- package/dist/atoms/keyword-extractor.js.map +1 -1
- package/dist/atoms/math-parser.d.ts +11 -0
- package/dist/atoms/math-parser.d.ts.map +1 -0
- package/dist/atoms/math-parser.js +44 -0
- package/dist/atoms/math-parser.js.map +1 -0
- package/dist/compiler-frontend.d.ts +9 -0
- package/dist/compiler-frontend.d.ts.map +1 -0
- package/dist/compiler-frontend.js +142 -0
- package/dist/compiler-frontend.js.map +1 -0
- package/dist/context/discourse-state.d.ts +10 -0
- package/dist/context/discourse-state.d.ts.map +1 -0
- package/dist/context/discourse-state.js +26 -0
- package/dist/context/discourse-state.js.map +1 -0
- package/dist/discourse/markers-es.d.ts.map +1 -1
- package/dist/discourse/markers-es.js +23 -0
- package/dist/discourse/markers-es.js.map +1 -1
- package/dist/discourse/pattern-detector.d.ts.map +1 -1
- package/dist/discourse/pattern-detector.js +2 -1
- package/dist/discourse/pattern-detector.js.map +1 -1
- package/dist/discourse/role-classifier.js +38 -6
- package/dist/discourse/role-classifier.js.map +1 -1
- package/dist/formalize.d.ts +16 -0
- package/dist/formalize.d.ts.map +1 -1
- package/dist/formalize.js +128 -0
- package/dist/formalize.js.map +1 -1
- package/dist/formula/argument-builder.d.ts.map +1 -1
- package/dist/formula/argument-builder.js +124 -15
- package/dist/formula/argument-builder.js.map +1 -1
- package/dist/formula/ast-compiler.d.ts +6 -0
- package/dist/formula/ast-compiler.d.ts.map +1 -0
- package/dist/formula/ast-compiler.js +105 -0
- package/dist/formula/ast-compiler.js.map +1 -0
- package/dist/formula/ast.d.ts +81 -0
- package/dist/formula/ast.d.ts.map +1 -0
- package/dist/formula/ast.js +52 -0
- package/dist/formula/ast.js.map +1 -0
- package/dist/formula/connectors.js +1 -1
- package/dist/formula/connectors.js.map +1 -1
- package/dist/formula/first-order.js +74 -7
- package/dist/formula/first-order.js.map +1 -1
- package/dist/formula/helpers.d.ts +8 -0
- package/dist/formula/helpers.d.ts.map +1 -0
- package/dist/formula/helpers.js +166 -0
- package/dist/formula/helpers.js.map +1 -0
- package/dist/formula/index.d.ts +1 -0
- package/dist/formula/index.d.ts.map +1 -1
- package/dist/formula/index.js +5 -3
- package/dist/formula/index.js.map +1 -1
- package/dist/formula/modal.d.ts.map +1 -1
- package/dist/formula/modal.js +56 -67
- package/dist/formula/modal.js.map +1 -1
- package/dist/formula/probabilistic.d.ts +3 -0
- package/dist/formula/probabilistic.d.ts.map +1 -0
- package/dist/formula/probabilistic.js +55 -0
- package/dist/formula/probabilistic.js.map +1 -0
- package/dist/formula/propositional.d.ts +2 -2
- package/dist/formula/propositional.d.ts.map +1 -1
- package/dist/formula/propositional.js +99 -88
- package/dist/formula/propositional.js.map +1 -1
- package/dist/formula/temporal.d.ts.map +1 -1
- package/dist/formula/temporal.js +87 -62
- package/dist/formula/temporal.js.map +1 -1
- package/dist/generator/validator.d.ts +20 -0
- package/dist/generator/validator.d.ts.map +1 -1
- package/dist/generator/validator.js +112 -0
- package/dist/generator/validator.js.map +1 -1
- package/dist/index.d.ts +6 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -17
- package/dist/index.js.map +1 -1
- package/dist/llm-parser.d.ts +29 -0
- package/dist/llm-parser.d.ts.map +1 -0
- package/dist/llm-parser.js +122 -0
- package/dist/llm-parser.js.map +1 -0
- package/dist/local-slm-web.d.ts +8 -0
- package/dist/local-slm-web.d.ts.map +1 -0
- package/dist/local-slm-web.js +87 -0
- package/dist/local-slm-web.js.map +1 -0
- package/dist/nl-linter/index.d.ts +10 -0
- package/dist/nl-linter/index.d.ts.map +1 -0
- package/dist/nl-linter/index.js +45 -0
- package/dist/nl-linter/index.js.map +1 -0
- package/dist/nl-linter/rules.d.ts +6 -0
- package/dist/nl-linter/rules.d.ts.map +1 -0
- package/dist/nl-linter/rules.js +93 -0
- package/dist/nl-linter/rules.js.map +1 -0
- package/dist/nl-linter/types.d.ts +14 -0
- package/dist/nl-linter/types.d.ts.map +1 -0
- package/dist/nl-linter/types.js +3 -0
- package/dist/nl-linter/types.js.map +1 -0
- package/dist/segmenter/clause-splitter.d.ts.map +1 -1
- package/dist/segmenter/clause-splitter.js +208 -10
- package/dist/segmenter/clause-splitter.js.map +1 -1
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +14 -3
- 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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 &&
|
|
131
|
-
|
|
134
|
+
if (matchingStart && !derivedOrExistingFormulas.has(chain.end)) {
|
|
135
|
+
pushExtra({
|
|
132
136
|
formula: chain.end,
|
|
133
137
|
stType: 'derive',
|
|
134
138
|
label: `chain_${labelCounter++}`,
|
|
@@ -139,6 +143,36 @@ function buildCrossSentenceDerivations(perSentenceFormulas, sentences, atomEntri
|
|
|
139
143
|
}
|
|
140
144
|
}
|
|
141
145
|
}
|
|
146
|
+
// ── Instanciación Universal Proposicional ──────
|
|
147
|
+
// Si hay universal_instantiation + universal_generalization y una conclusión explícita
|
|
148
|
+
// sin condicionales, generar la regla implícita:
|
|
149
|
+
// "Todos F buscan V" (universal) + "S es F" (instancia) → "S busca V" (conclusión)
|
|
150
|
+
// Proposicionalmente: UNIVERSAL & INSTANCIA -> CONCLUSIÓN
|
|
151
|
+
if (detectedPatterns.includes('universal_instantiation') &&
|
|
152
|
+
conditionals.length === 0 && existingDerives.length > 0) {
|
|
153
|
+
// Hay derives per-sentence (la conclusión explícita con "por lo tanto")
|
|
154
|
+
// y axiomas universales + instancias, pero no hay condicionales.
|
|
155
|
+
// Generar regla proposicional: premisas → conclusión
|
|
156
|
+
const premiseFormulas = positiveAxioms.map(a => a.formula);
|
|
157
|
+
if (premiseFormulas.length >= 2 && existingDerives.length > 0) {
|
|
158
|
+
const conclusionFormula = existingDerives[0].formula;
|
|
159
|
+
const antecedent = premiseFormulas.length === 1
|
|
160
|
+
? premiseFormulas[0]
|
|
161
|
+
: `(${premiseFormulas.join(` ${connectors_1.ST_OPERATORS.conjunction} `)})`;
|
|
162
|
+
const premiseLabels = positiveAxioms.map(a => a.label);
|
|
163
|
+
// Solo agregar si no es redundante con la conclusión ya existente
|
|
164
|
+
if (!extra.some(e => e.formula === conclusionFormula)) {
|
|
165
|
+
pushExtra({
|
|
166
|
+
formula: `${antecedent} ${connectors_1.ST_OPERATORS.implication} ${conclusionFormula}`,
|
|
167
|
+
stType: 'axiom',
|
|
168
|
+
label: `ui_regla_${labelCounter++}`,
|
|
169
|
+
sourceText: `Instanciación universal: ${premiseLabels.join(', ')} ⊢ ${conclusionFormula}`,
|
|
170
|
+
sourceSentence: existingDerives[0].sourceSentence,
|
|
171
|
+
comment: `Regla de instanciación universal (proposicional): ${antecedent} → ${conclusionFormula}`,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
142
176
|
return extra;
|
|
143
177
|
}
|
|
144
178
|
// ══════════════════════════════════════════════════════════════
|
|
@@ -146,11 +180,24 @@ function buildCrossSentenceDerivations(perSentenceFormulas, sentences, atomEntri
|
|
|
146
180
|
// ══════════════════════════════════════════════════════════════
|
|
147
181
|
/** Parsea "A -> B" en { antecedent, consequent } */
|
|
148
182
|
function parseImplication(formula) {
|
|
149
|
-
const
|
|
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
|
+
}
|
|
150
197
|
if (idx < 0)
|
|
151
198
|
return null;
|
|
152
199
|
const antecedent = formula.slice(0, idx).trim();
|
|
153
|
-
const consequent = formula.slice(idx +
|
|
200
|
+
const consequent = formula.slice(idx + operator.length).trim();
|
|
154
201
|
if (!antecedent || !consequent)
|
|
155
202
|
return null;
|
|
156
203
|
return { antecedent, consequent };
|
|
@@ -178,17 +225,79 @@ function stripNegation(formula) {
|
|
|
178
225
|
* Usa similitud de stems para manejar variaciones morfológicas.
|
|
179
226
|
*/
|
|
180
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
|
+
};
|
|
181
285
|
// Igualdad directa
|
|
182
286
|
if (a === b)
|
|
183
287
|
return true;
|
|
184
288
|
// Normalizar quitando paréntesis externos
|
|
185
|
-
const na = a
|
|
186
|
-
const nb = b
|
|
289
|
+
const na = normalizeFormulaAtom(a);
|
|
290
|
+
const nb = normalizeFormulaAtom(b);
|
|
187
291
|
if (na === nb)
|
|
188
292
|
return true;
|
|
189
293
|
// Buscar los textos originales de los átomos
|
|
190
|
-
const
|
|
191
|
-
const
|
|
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
|
+
}
|
|
192
301
|
if (textA && textB) {
|
|
193
302
|
const stemsA = (0, keyword_extractor_1.bagOfStems)(textA, 'es');
|
|
194
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 @@
|
|
|
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":";;;AA2BA,wCAkCC;AAKD,0DA2BC;AAtFD,yCAAyC;AAC5B,QAAA,YAAY,GAAG;IAC1B,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,GAAG;IAChB,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,QAAQ;IACrB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,MAAM;IACrB,cAAc,EAAE,OAAO;IACvB,eAAe,EAAE,QAAQ;IACzB,mBAAmB,EAAE,YAAY;CACzB,CAAC;AAEX;;GAEG;AACH,SAAgB,cAAc,CAAC,IAAgB;IAC7C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY,CAAC;QAClB,KAAK,YAAY;YACf,OAAO,oBAAY,CAAC,WAAW,CAAC;QAClC,KAAK,eAAe;YAClB,OAAO,oBAAY,CAAC,aAAa,CAAC;QACpC,KAAK,KAAK;YACR,OAAO,oBAAY,CAAC,WAAW,CAAC;QAClC,KAAK,IAAI;YACP,OAAO,oBAAY,CAAC,WAAW,CAAC;QAClC,KAAK,UAAU;YACb,OAAO,oBAAY,CAAC,QAAQ,CAAC;QAC/B,KAAK,WAAW;YACd,OAAO,oBAAY,CAAC,SAAS,CAAC;QAChC,KAAK,aAAa;YAChB,OAAO,oBAAY,CAAC,WAAW,CAAC;QAClC,KAAK,WAAW;YACd,OAAO,oBAAY,CAAC,SAAS,CAAC;QAChC,KAAK,aAAa;YAChB,OAAO,oBAAY,CAAC,WAAW,CAAC;QAClC,KAAK,UAAU,CAAC;QAChB,KAAK,eAAe;YAClB,OAAO,oBAAY,CAAC,aAAa,CAAC;QACpC,KAAK,gBAAgB;YACnB,OAAO,oBAAY,CAAC,cAAc,CAAC;QACrC,KAAK,iBAAiB;YACpB,OAAO,oBAAY,CAAC,eAAe,CAAC;QACtC,KAAK,qBAAqB;YACxB,OAAO,oBAAY,CAAC,mBAAmB,CAAC;QAC1C;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,OAAqB,EAAE,QAAgB;IAC7E,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,CAAC,GAAG,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,CAAC,GAAG,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAE7E,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,yBAAyB,CAAC;QAC/B,KAAK,8BAA8B,CAAC;QACpC,KAAK,uBAAuB;YAC1B,OAAO,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1C,KAAK,uBAAuB;YAC1B,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,KAAK,SAAS,CAAC;QACf,KAAK,cAAc,CAAC;QACpB,KAAK,kBAAkB;YACrB,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,KAAK,cAAc;YACjB,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrC,KAAK,0BAA0B;YAC7B,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,KAAK,YAAY,CAAC;QAClB,KAAK,qBAAqB;YACxB,OAAO,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../src/formula/connectors.ts"],"names":[],"mappings":"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"}
|