@stevenvo780/st-lang 4.1.0 → 4.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/dist/belief-revision/agm.d.ts +76 -0
- package/dist/belief-revision/agm.d.ts.map +1 -0
- package/dist/belief-revision/agm.js +249 -0
- package/dist/belief-revision/agm.js.map +1 -0
- package/dist/belief-revision/index.d.ts +6 -0
- package/dist/belief-revision/index.d.ts.map +1 -0
- package/dist/belief-revision/index.js +33 -0
- package/dist/belief-revision/index.js.map +1 -0
- package/dist/belief-revision/parser.d.ts +16 -0
- package/dist/belief-revision/parser.d.ts.map +1 -0
- package/dist/belief-revision/parser.js +199 -0
- package/dist/belief-revision/parser.js.map +1 -0
- package/dist/belief-revision/sat.d.ts +19 -0
- package/dist/belief-revision/sat.d.ts.map +1 -0
- package/dist/belief-revision/sat.js +90 -0
- package/dist/belief-revision/sat.js.map +1 -0
- package/dist/belief-revision/types.d.ts +51 -0
- package/dist/belief-revision/types.d.ts.map +1 -0
- package/dist/belief-revision/types.js +10 -0
- package/dist/belief-revision/types.js.map +1 -0
- package/dist/curry-howard/index.d.ts +7 -0
- package/dist/curry-howard/index.d.ts.map +1 -0
- package/dist/curry-howard/index.js +46 -0
- package/dist/curry-howard/index.js.map +1 -0
- package/dist/curry-howard/infer.d.ts +9 -0
- package/dist/curry-howard/infer.d.ts.map +1 -0
- package/dist/curry-howard/infer.js +129 -0
- package/dist/curry-howard/infer.js.map +1 -0
- package/dist/curry-howard/proof.d.ts +7 -0
- package/dist/curry-howard/proof.d.ts.map +1 -0
- package/dist/curry-howard/proof.js +282 -0
- package/dist/curry-howard/proof.js.map +1 -0
- package/dist/curry-howard/reduce.d.ts +7 -0
- package/dist/curry-howard/reduce.d.ts.map +1 -0
- package/dist/curry-howard/reduce.js +266 -0
- package/dist/curry-howard/reduce.js.map +1 -0
- package/dist/curry-howard/types.d.ts +91 -0
- package/dist/curry-howard/types.d.ts.map +1 -0
- package/dist/curry-howard/types.js +149 -0
- package/dist/curry-howard/types.js.map +1 -0
- package/dist/fol-prover-equality/demodulate.d.ts +29 -0
- package/dist/fol-prover-equality/demodulate.d.ts.map +1 -0
- package/dist/fol-prover-equality/demodulate.js +197 -0
- package/dist/fol-prover-equality/demodulate.js.map +1 -0
- package/dist/fol-prover-equality/index.d.ts +8 -0
- package/dist/fol-prover-equality/index.d.ts.map +1 -0
- package/dist/fol-prover-equality/index.js +24 -0
- package/dist/fol-prover-equality/index.js.map +1 -0
- package/dist/fol-prover-equality/paramodulate.d.ts +46 -0
- package/dist/fol-prover-equality/paramodulate.d.ts.map +1 -0
- package/dist/fol-prover-equality/paramodulate.js +159 -0
- package/dist/fol-prover-equality/paramodulate.js.map +1 -0
- package/dist/fol-prover-equality/prove.d.ts +7 -0
- package/dist/fol-prover-equality/prove.d.ts.map +1 -0
- package/dist/fol-prover-equality/prove.js +307 -0
- package/dist/fol-prover-equality/prove.js.map +1 -0
- package/dist/fol-prover-equality/term-utils.d.ts +43 -0
- package/dist/fol-prover-equality/term-utils.d.ts.map +1 -0
- package/dist/fol-prover-equality/term-utils.js +230 -0
- package/dist/fol-prover-equality/term-utils.js.map +1 -0
- package/dist/fol-prover-equality/types.d.ts +20 -0
- package/dist/fol-prover-equality/types.d.ts.map +1 -0
- package/dist/fol-prover-equality/types.js +5 -0
- package/dist/fol-prover-equality/types.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -1
- package/dist/index.js.map +1 -1
- package/dist/profiles/ctl/check.d.ts +13 -0
- package/dist/profiles/ctl/check.d.ts.map +1 -0
- package/dist/profiles/ctl/check.js +359 -0
- package/dist/profiles/ctl/check.js.map +1 -0
- package/dist/profiles/ctl/index.d.ts +5 -0
- package/dist/profiles/ctl/index.d.ts.map +1 -0
- package/dist/profiles/ctl/index.js +23 -0
- package/dist/profiles/ctl/index.js.map +1 -0
- package/dist/profiles/ctl/types.d.ts +74 -0
- package/dist/profiles/ctl/types.d.ts.map +1 -0
- package/dist/profiles/ctl/types.js +53 -0
- package/dist/profiles/ctl/types.js.map +1 -0
- package/dist/profiles/ctl/witness.d.ts +20 -0
- package/dist/profiles/ctl/witness.d.ts.map +1 -0
- package/dist/profiles/ctl/witness.js +149 -0
- package/dist/profiles/ctl/witness.js.map +1 -0
- package/dist/profiles/default-logic/entailment.d.ts +14 -0
- package/dist/profiles/default-logic/entailment.d.ts.map +1 -0
- package/dist/profiles/default-logic/entailment.js +36 -0
- package/dist/profiles/default-logic/entailment.js.map +1 -0
- package/dist/profiles/default-logic/extensions.d.ts +35 -0
- package/dist/profiles/default-logic/extensions.d.ts.map +1 -0
- package/dist/profiles/default-logic/extensions.js +276 -0
- package/dist/profiles/default-logic/extensions.js.map +1 -0
- package/dist/profiles/default-logic/index.d.ts +5 -0
- package/dist/profiles/default-logic/index.d.ts.map +1 -0
- package/dist/profiles/default-logic/index.js +33 -0
- package/dist/profiles/default-logic/index.js.map +1 -0
- package/dist/profiles/default-logic/types.d.ts +29 -0
- package/dist/profiles/default-logic/types.d.ts.map +1 -0
- package/dist/profiles/default-logic/types.js +25 -0
- package/dist/profiles/default-logic/types.js.map +1 -0
- package/dist/profiles/description-logic/index.d.ts +5 -0
- package/dist/profiles/description-logic/index.d.ts.map +1 -0
- package/dist/profiles/description-logic/index.js +39 -0
- package/dist/profiles/description-logic/index.js.map +1 -0
- package/dist/profiles/description-logic/nnf.d.ts +13 -0
- package/dist/profiles/description-logic/nnf.d.ts.map +1 -0
- package/dist/profiles/description-logic/nnf.js +123 -0
- package/dist/profiles/description-logic/nnf.js.map +1 -0
- package/dist/profiles/description-logic/tableau.d.ts +27 -0
- package/dist/profiles/description-logic/tableau.d.ts.map +1 -0
- package/dist/profiles/description-logic/tableau.js +491 -0
- package/dist/profiles/description-logic/tableau.js.map +1 -0
- package/dist/profiles/description-logic/types.d.ts +45 -0
- package/dist/profiles/description-logic/types.d.ts.map +1 -0
- package/dist/profiles/description-logic/types.js +71 -0
- package/dist/profiles/description-logic/types.js.map +1 -0
- package/dist/profiles/hybrid-logic/index.d.ts +5 -0
- package/dist/profiles/hybrid-logic/index.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/index.js +34 -0
- package/dist/profiles/hybrid-logic/index.js.map +1 -0
- package/dist/profiles/hybrid-logic/sat.d.ts +15 -0
- package/dist/profiles/hybrid-logic/sat.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/sat.js +142 -0
- package/dist/profiles/hybrid-logic/sat.js.map +1 -0
- package/dist/profiles/hybrid-logic/semantics.d.ts +20 -0
- package/dist/profiles/hybrid-logic/semantics.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/semantics.js +107 -0
- package/dist/profiles/hybrid-logic/semantics.js.map +1 -0
- package/dist/profiles/hybrid-logic/types.d.ts +78 -0
- package/dist/profiles/hybrid-logic/types.d.ts.map +1 -0
- package/dist/profiles/hybrid-logic/types.js +107 -0
- package/dist/profiles/hybrid-logic/types.js.map +1 -0
- package/dist/profiles/ltl-sat/index.d.ts +4 -0
- package/dist/profiles/ltl-sat/index.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/index.js +40 -0
- package/dist/profiles/ltl-sat/index.js.map +1 -0
- package/dist/profiles/ltl-sat/sat.d.ts +8 -0
- package/dist/profiles/ltl-sat/sat.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/sat.js +140 -0
- package/dist/profiles/ltl-sat/sat.js.map +1 -0
- package/dist/profiles/ltl-sat/tableau.d.ts +19 -0
- package/dist/profiles/ltl-sat/tableau.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/tableau.js +358 -0
- package/dist/profiles/ltl-sat/tableau.js.map +1 -0
- package/dist/profiles/ltl-sat/types.d.ts +52 -0
- package/dist/profiles/ltl-sat/types.d.ts.map +1 -0
- package/dist/profiles/ltl-sat/types.js +101 -0
- package/dist/profiles/ltl-sat/types.js.map +1 -0
- package/dist/profiles/sequent-g3/index.d.ts +5 -0
- package/dist/profiles/sequent-g3/index.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/index.js +23 -0
- package/dist/profiles/sequent-g3/index.js.map +1 -0
- package/dist/profiles/sequent-g3/latex.d.ts +7 -0
- package/dist/profiles/sequent-g3/latex.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/latex.js +107 -0
- package/dist/profiles/sequent-g3/latex.js.map +1 -0
- package/dist/profiles/sequent-g3/normalize.d.ts +15 -0
- package/dist/profiles/sequent-g3/normalize.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/normalize.js +121 -0
- package/dist/profiles/sequent-g3/normalize.js.map +1 -0
- package/dist/profiles/sequent-g3/prover.d.ts +16 -0
- package/dist/profiles/sequent-g3/prover.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/prover.js +348 -0
- package/dist/profiles/sequent-g3/prover.js.map +1 -0
- package/dist/profiles/sequent-g3/types.d.ts +30 -0
- package/dist/profiles/sequent-g3/types.d.ts.map +1 -0
- package/dist/profiles/sequent-g3/types.js +16 -0
- package/dist/profiles/sequent-g3/types.js.map +1 -0
- package/dist/runtime/countermodel-min/index.d.ts +3 -0
- package/dist/runtime/countermodel-min/index.d.ts.map +1 -0
- package/dist/runtime/countermodel-min/index.js +9 -0
- package/dist/runtime/countermodel-min/index.js.map +1 -0
- package/dist/runtime/countermodel-min/minimize.d.ts +17 -0
- package/dist/runtime/countermodel-min/minimize.d.ts.map +1 -0
- package/dist/runtime/countermodel-min/minimize.js +0 -0
- package/dist/runtime/countermodel-min/minimize.js.map +1 -0
- package/dist/runtime/countermodel-min/types.d.ts +40 -0
- package/dist/runtime/countermodel-min/types.d.ts.map +1 -0
- package/dist/runtime/countermodel-min/types.js +6 -0
- package/dist/runtime/countermodel-min/types.js.map +1 -0
- package/dist/runtime/mus/extract.d.ts +34 -0
- package/dist/runtime/mus/extract.d.ts.map +1 -0
- package/dist/runtime/mus/extract.js +243 -0
- package/dist/runtime/mus/extract.js.map +1 -0
- package/dist/runtime/mus/index.d.ts +4 -0
- package/dist/runtime/mus/index.d.ts.map +1 -0
- package/dist/runtime/mus/index.js +12 -0
- package/dist/runtime/mus/index.js.map +1 -0
- package/dist/runtime/mus/quickxplain.d.ts +10 -0
- package/dist/runtime/mus/quickxplain.d.ts.map +1 -0
- package/dist/runtime/mus/quickxplain.js +100 -0
- package/dist/runtime/mus/quickxplain.js.map +1 -0
- package/dist/runtime/mus/types.d.ts +59 -0
- package/dist/runtime/mus/types.d.ts.map +1 -0
- package/dist/runtime/mus/types.js +20 -0
- package/dist/runtime/mus/types.js.map +1 -0
- package/dist/solver/cdcl-v2-incremental/index.d.ts +3 -0
- package/dist/solver/cdcl-v2-incremental/index.d.ts.map +1 -0
- package/dist/solver/cdcl-v2-incremental/index.js +16 -0
- package/dist/solver/cdcl-v2-incremental/index.js.map +1 -0
- package/dist/solver/cdcl-v2-incremental/solver.d.ts +83 -0
- package/dist/solver/cdcl-v2-incremental/solver.d.ts.map +1 -0
- package/dist/solver/cdcl-v2-incremental/solver.js +727 -0
- package/dist/solver/cdcl-v2-incremental/solver.js.map +1 -0
- package/dist/solver/cdcl-v2-incremental/types.d.ts +47 -0
- package/dist/solver/cdcl-v2-incremental/types.d.ts.map +1 -0
- package/dist/solver/cdcl-v2-incremental/types.js +13 -0
- package/dist/solver/cdcl-v2-incremental/types.js.map +1 -0
- package/dist/tests/belief-revision/agm.test.d.ts +2 -0
- package/dist/tests/belief-revision/agm.test.d.ts.map +1 -0
- package/dist/tests/belief-revision/agm.test.js +173 -0
- package/dist/tests/belief-revision/agm.test.js.map +1 -0
- package/dist/tests/countermodel-min/minimize.test.d.ts +2 -0
- package/dist/tests/countermodel-min/minimize.test.d.ts.map +1 -0
- package/dist/tests/countermodel-min/minimize.test.js +241 -0
- package/dist/tests/countermodel-min/minimize.test.js.map +1 -0
- package/dist/tests/ctl/check.test.d.ts +2 -0
- package/dist/tests/ctl/check.test.d.ts.map +1 -0
- package/dist/tests/ctl/check.test.js +337 -0
- package/dist/tests/ctl/check.test.js.map +1 -0
- package/dist/tests/curry-howard/infer.test.d.ts +2 -0
- package/dist/tests/curry-howard/infer.test.d.ts.map +1 -0
- package/dist/tests/curry-howard/infer.test.js +93 -0
- package/dist/tests/curry-howard/infer.test.js.map +1 -0
- package/dist/tests/curry-howard/proof.test.d.ts +2 -0
- package/dist/tests/curry-howard/proof.test.d.ts.map +1 -0
- package/dist/tests/curry-howard/proof.test.js +105 -0
- package/dist/tests/curry-howard/proof.test.js.map +1 -0
- package/dist/tests/curry-howard/reduce.test.d.ts +2 -0
- package/dist/tests/curry-howard/reduce.test.d.ts.map +1 -0
- package/dist/tests/curry-howard/reduce.test.js +109 -0
- package/dist/tests/curry-howard/reduce.test.js.map +1 -0
- package/dist/tests/default-logic/extensions.test.d.ts +2 -0
- package/dist/tests/default-logic/extensions.test.d.ts.map +1 -0
- package/dist/tests/default-logic/extensions.test.js +323 -0
- package/dist/tests/default-logic/extensions.test.js.map +1 -0
- package/dist/tests/description-logic/alc.test.d.ts +2 -0
- package/dist/tests/description-logic/alc.test.d.ts.map +1 -0
- package/dist/tests/description-logic/alc.test.js +253 -0
- package/dist/tests/description-logic/alc.test.js.map +1 -0
- package/dist/tests/fol-prover-equality/prove.test.d.ts +2 -0
- package/dist/tests/fol-prover-equality/prove.test.d.ts.map +1 -0
- package/dist/tests/fol-prover-equality/prove.test.js +179 -0
- package/dist/tests/fol-prover-equality/prove.test.js.map +1 -0
- package/dist/tests/hybrid-logic/semantics.test.d.ts +2 -0
- package/dist/tests/hybrid-logic/semantics.test.d.ts.map +1 -0
- package/dist/tests/hybrid-logic/semantics.test.js +169 -0
- package/dist/tests/hybrid-logic/semantics.test.js.map +1 -0
- package/dist/tests/ltl-sat/sat.test.d.ts +2 -0
- package/dist/tests/ltl-sat/sat.test.d.ts.map +1 -0
- package/dist/tests/ltl-sat/sat.test.js +160 -0
- package/dist/tests/ltl-sat/sat.test.js.map +1 -0
- package/dist/tests/mus/extract.test.d.ts +2 -0
- package/dist/tests/mus/extract.test.d.ts.map +1 -0
- package/dist/tests/mus/extract.test.js +352 -0
- package/dist/tests/mus/extract.test.js.map +1 -0
- package/dist/tests/sat-v2-incremental/basic.test.d.ts +2 -0
- package/dist/tests/sat-v2-incremental/basic.test.d.ts.map +1 -0
- package/dist/tests/sat-v2-incremental/basic.test.js +352 -0
- package/dist/tests/sat-v2-incremental/basic.test.js.map +1 -0
- package/dist/tests/sequent-g3/prover.test.d.ts +2 -0
- package/dist/tests/sequent-g3/prover.test.d.ts.map +1 -0
- package/dist/tests/sequent-g3/prover.test.js +205 -0
- package/dist/tests/sequent-g3/prover.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// ST LTL-SAT — Tipos para el procedimiento de decisión de LTL
|
|
4
|
+
// ============================================================
|
|
5
|
+
// AST nativo de LTL para el decisor por tableau:
|
|
6
|
+
// atom, not, and, or, X (next), F (eventually), G (globally),
|
|
7
|
+
// U (until), R (release).
|
|
8
|
+
//
|
|
9
|
+
// La operación derivada W (weak until) se traduce a R en la
|
|
10
|
+
// normalización: φ W ψ ≡ ψ R (φ ∨ ψ) ≡ (G φ) ∨ (φ U ψ).
|
|
11
|
+
// ============================================================
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.implies = exports.weakUntil = exports.release = exports.until = exports.globally = exports.eventually = exports.next = exports.or = exports.and = exports.not = exports.atom = void 0;
|
|
14
|
+
exports.formulaToString = formulaToString;
|
|
15
|
+
exports.formulaKey = formulaKey;
|
|
16
|
+
// Constructores ergonómicos.
|
|
17
|
+
const atom = (name) => ({ kind: 'atom', name });
|
|
18
|
+
exports.atom = atom;
|
|
19
|
+
const not = (arg) => ({ kind: 'not', arg });
|
|
20
|
+
exports.not = not;
|
|
21
|
+
const and = (...args) => ({ kind: 'and', args });
|
|
22
|
+
exports.and = and;
|
|
23
|
+
const or = (...args) => ({ kind: 'or', args });
|
|
24
|
+
exports.or = or;
|
|
25
|
+
const next = (arg) => ({ kind: 'X', arg });
|
|
26
|
+
exports.next = next;
|
|
27
|
+
const eventually = (arg) => ({ kind: 'F', arg });
|
|
28
|
+
exports.eventually = eventually;
|
|
29
|
+
const globally = (arg) => ({ kind: 'G', arg });
|
|
30
|
+
exports.globally = globally;
|
|
31
|
+
const until = (left, right) => ({
|
|
32
|
+
kind: 'U',
|
|
33
|
+
left,
|
|
34
|
+
right,
|
|
35
|
+
});
|
|
36
|
+
exports.until = until;
|
|
37
|
+
const release = (left, right) => ({
|
|
38
|
+
kind: 'R',
|
|
39
|
+
left,
|
|
40
|
+
right,
|
|
41
|
+
});
|
|
42
|
+
exports.release = release;
|
|
43
|
+
// Weak until: φ W ψ ≡ (φ U ψ) ∨ G φ
|
|
44
|
+
const weakUntil = (left, right) => (0, exports.or)((0, exports.until)(left, right), (0, exports.globally)(left));
|
|
45
|
+
exports.weakUntil = weakUntil;
|
|
46
|
+
// Implicación derivada: φ → ψ ≡ ¬φ ∨ ψ
|
|
47
|
+
const implies = (left, right) => (0, exports.or)((0, exports.not)(left), right);
|
|
48
|
+
exports.implies = implies;
|
|
49
|
+
function formulaToString(f) {
|
|
50
|
+
switch (f.kind) {
|
|
51
|
+
case 'atom':
|
|
52
|
+
return f.name;
|
|
53
|
+
case 'not':
|
|
54
|
+
return `¬${parenthesize(f.arg)}`;
|
|
55
|
+
case 'and':
|
|
56
|
+
return f.args.map(parenthesize).join(' ∧ ');
|
|
57
|
+
case 'or':
|
|
58
|
+
return f.args.map(parenthesize).join(' ∨ ');
|
|
59
|
+
case 'X':
|
|
60
|
+
return `X ${parenthesize(f.arg)}`;
|
|
61
|
+
case 'F':
|
|
62
|
+
return `F ${parenthesize(f.arg)}`;
|
|
63
|
+
case 'G':
|
|
64
|
+
return `G ${parenthesize(f.arg)}`;
|
|
65
|
+
case 'U':
|
|
66
|
+
return `(${formulaToString(f.left)} U ${formulaToString(f.right)})`;
|
|
67
|
+
case 'R':
|
|
68
|
+
return `(${formulaToString(f.left)} R ${formulaToString(f.right)})`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function parenthesize(f) {
|
|
72
|
+
if (f.kind === 'atom')
|
|
73
|
+
return f.name;
|
|
74
|
+
if (f.kind === 'not')
|
|
75
|
+
return formulaToString(f);
|
|
76
|
+
return `(${formulaToString(f)})`;
|
|
77
|
+
}
|
|
78
|
+
// Clave canónica: usada para hashing en sets/maps.
|
|
79
|
+
function formulaKey(f) {
|
|
80
|
+
switch (f.kind) {
|
|
81
|
+
case 'atom':
|
|
82
|
+
return `a:${f.name}`;
|
|
83
|
+
case 'not':
|
|
84
|
+
return `n:${formulaKey(f.arg)}`;
|
|
85
|
+
case 'and':
|
|
86
|
+
return `&:${f.args.map(formulaKey).sort().join(',')}`;
|
|
87
|
+
case 'or':
|
|
88
|
+
return `|:${f.args.map(formulaKey).sort().join(',')}`;
|
|
89
|
+
case 'X':
|
|
90
|
+
return `X:${formulaKey(f.arg)}`;
|
|
91
|
+
case 'F':
|
|
92
|
+
return `F:${formulaKey(f.arg)}`;
|
|
93
|
+
case 'G':
|
|
94
|
+
return `G:${formulaKey(f.arg)}`;
|
|
95
|
+
case 'U':
|
|
96
|
+
return `U:${formulaKey(f.left)};${formulaKey(f.right)}`;
|
|
97
|
+
case 'R':
|
|
98
|
+
return `R:${formulaKey(f.left)};${formulaKey(f.right)}`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/profiles/ltl-sat/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { Sequent, ProofTree, ProveResult, SequentRule } from './types';
|
|
2
|
+
export { proveSequent, proveFormula } from './prover';
|
|
3
|
+
export { proofToLatex } from './latex';
|
|
4
|
+
export { normalizeForG3, formulaKey } from './normalize';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/index.ts"],"names":[],"mappings":"AAYA,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// G3 Sequent Calculus — Entrada publica del perfil
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Este perfil expone el calculo de secuentes G3 (Gentzen reformulado
|
|
7
|
+
// por Kleene) para logica proposicional clasica. La interfaz que se
|
|
8
|
+
// reexporta es minima y suficiente para integrarlo desde otros perfiles
|
|
9
|
+
// o pruebas:
|
|
10
|
+
//
|
|
11
|
+
// import { proveFormula, proveSequent, proofToLatex }
|
|
12
|
+
// from 'src/profiles/sequent-g3';
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.formulaKey = exports.normalizeForG3 = exports.proofToLatex = exports.proveFormula = exports.proveSequent = void 0;
|
|
15
|
+
var prover_1 = require("./prover");
|
|
16
|
+
Object.defineProperty(exports, "proveSequent", { enumerable: true, get: function () { return prover_1.proveSequent; } });
|
|
17
|
+
Object.defineProperty(exports, "proveFormula", { enumerable: true, get: function () { return prover_1.proveFormula; } });
|
|
18
|
+
var latex_1 = require("./latex");
|
|
19
|
+
Object.defineProperty(exports, "proofToLatex", { enumerable: true, get: function () { return latex_1.proofToLatex; } });
|
|
20
|
+
var normalize_1 = require("./normalize");
|
|
21
|
+
Object.defineProperty(exports, "normalizeForG3", { enumerable: true, get: function () { return normalize_1.normalizeForG3; } });
|
|
22
|
+
Object.defineProperty(exports, "formulaKey", { enumerable: true, get: function () { return normalize_1.formulaKey; } });
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,mDAAmD;AACnD,+DAA+D;AAC/D,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AACpE,wEAAwE;AACxE,aAAa;AACb,EAAE;AACF,wDAAwD;AACxD,sCAAsC;;;AAGtC,mCAAsD;AAA7C,sGAAA,YAAY,OAAA;AAAE,sGAAA,YAAY,OAAA;AACnC,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,yCAAyD;AAAhD,2GAAA,cAAc,OAAA;AAAE,uGAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ProofTree } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Convierte un `ProofTree` G3 en codigo LaTeX bussproofs listo para
|
|
4
|
+
* embeberse dentro de un documento. Asume `\usepackage{bussproofs}`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function proofToLatex(proof: ProofTree): string;
|
|
7
|
+
//# sourceMappingURL=latex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"latex.d.ts","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/latex.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAwB,MAAM,SAAS,CAAC;AA8F1D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAIrD"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// G3 — Export de arboles de prueba a LaTeX (bussproofs)
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Genera codigo bussproofs valido para LaTeX. Cada nodo del arbol
|
|
7
|
+
// produce un bloque \AxiomC / \UnaryInfC / \BinaryInfC con la
|
|
8
|
+
// regla anotada en \RightLabel. La raiz queda envuelta en un
|
|
9
|
+
// $\DisplayProof$ para ser inmediatamente renderizable.
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.proofToLatex = proofToLatex;
|
|
12
|
+
const RULE_LABEL = {
|
|
13
|
+
axiom: '\\textsc{Ax}',
|
|
14
|
+
falseL: '$\\bot_L$',
|
|
15
|
+
trueR: '$\\top_R$',
|
|
16
|
+
andL: '$\\wedge_L$',
|
|
17
|
+
andR: '$\\wedge_R$',
|
|
18
|
+
orL: '$\\vee_L$',
|
|
19
|
+
orR: '$\\vee_R$',
|
|
20
|
+
impL: '$\\to_L$',
|
|
21
|
+
impR: '$\\to_R$',
|
|
22
|
+
notL: '$\\neg_L$',
|
|
23
|
+
notR: '$\\neg_R$',
|
|
24
|
+
};
|
|
25
|
+
function formulaToLatex(f) {
|
|
26
|
+
switch (f.kind) {
|
|
27
|
+
case 'atom':
|
|
28
|
+
return escapeAtom(f.name ?? '?');
|
|
29
|
+
case 'true':
|
|
30
|
+
return '\\top';
|
|
31
|
+
case 'false':
|
|
32
|
+
return '\\bot';
|
|
33
|
+
case 'not': {
|
|
34
|
+
const inner = f.args && f.args[0] ? f.args[0] : undefined;
|
|
35
|
+
if (!inner)
|
|
36
|
+
return '\\neg ?';
|
|
37
|
+
return inner.kind === 'atom' || inner.kind === 'true' || inner.kind === 'false'
|
|
38
|
+
? `\\neg ${formulaToLatex(inner)}`
|
|
39
|
+
: `\\neg (${formulaToLatex(inner)})`;
|
|
40
|
+
}
|
|
41
|
+
case 'and':
|
|
42
|
+
return binop(f, '\\wedge');
|
|
43
|
+
case 'or':
|
|
44
|
+
return binop(f, '\\vee');
|
|
45
|
+
case 'implies':
|
|
46
|
+
return binop(f, '\\to');
|
|
47
|
+
case 'biconditional':
|
|
48
|
+
return binop(f, '\\leftrightarrow');
|
|
49
|
+
default:
|
|
50
|
+
// Fallback: usar `kind` como etiqueta opaca
|
|
51
|
+
return `\\mathit{${escapeAtom(f.kind)}}`;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function binop(f, op) {
|
|
55
|
+
const a = f.args && f.args[0] ? formulaToLatex(f.args[0]) : '?';
|
|
56
|
+
const b = f.args && f.args[1] ? formulaToLatex(f.args[1]) : '?';
|
|
57
|
+
return `(${a} ${op} ${b})`;
|
|
58
|
+
}
|
|
59
|
+
function escapeAtom(name) {
|
|
60
|
+
// bussproofs corre dentro de math mode: hay que escapar caracteres
|
|
61
|
+
// problematicos como `_` y `#` para evitar romper el render.
|
|
62
|
+
return name.replace(/([\\#$%&_{}])/g, '\\$1');
|
|
63
|
+
}
|
|
64
|
+
function sequentToLatex(seq) {
|
|
65
|
+
const left = seq.left.map(formulaToLatex).join(', ');
|
|
66
|
+
const right = seq.right.map(formulaToLatex).join(', ');
|
|
67
|
+
return `$${left} \\vdash ${right}$`;
|
|
68
|
+
}
|
|
69
|
+
function emit(tree, lines) {
|
|
70
|
+
// Recorrido post-orden: emitimos premisas primero porque bussproofs
|
|
71
|
+
// consume el stack de \AxiomC en orden top-down.
|
|
72
|
+
if (!tree.rule || tree.premises.length === 0) {
|
|
73
|
+
// Hoja: axiom, falseL, trueR, o rama abierta.
|
|
74
|
+
if (tree.rule === 'axiom' || tree.rule === 'falseL' || tree.rule === 'trueR') {
|
|
75
|
+
lines.push(`\\AxiomC{${sequentToLatex(tree.goal)}}`);
|
|
76
|
+
lines.push(`\\RightLabel{${RULE_LABEL[tree.rule]}}`);
|
|
77
|
+
lines.push(`\\UnaryInfC{${sequentToLatex(tree.goal)}}`);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// Rama abierta (no cerrable): emitimos como axioma marcado.
|
|
81
|
+
lines.push(`\\AxiomC{${sequentToLatex(tree.goal)}}`);
|
|
82
|
+
lines.push(`\\RightLabel{\\textsc{open}}`);
|
|
83
|
+
lines.push(`\\UnaryInfC{${sequentToLatex(tree.goal)}}`);
|
|
84
|
+
}
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
for (const premise of tree.premises) {
|
|
88
|
+
emit(premise, lines);
|
|
89
|
+
}
|
|
90
|
+
lines.push(`\\RightLabel{${RULE_LABEL[tree.rule]}}`);
|
|
91
|
+
const infCmd = tree.premises.length === 1
|
|
92
|
+
? 'UnaryInfC'
|
|
93
|
+
: tree.premises.length === 2
|
|
94
|
+
? 'BinaryInfC'
|
|
95
|
+
: 'TrinaryInfC';
|
|
96
|
+
lines.push(`\\${infCmd}{${sequentToLatex(tree.goal)}}`);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Convierte un `ProofTree` G3 en codigo LaTeX bussproofs listo para
|
|
100
|
+
* embeberse dentro de un documento. Asume `\usepackage{bussproofs}`.
|
|
101
|
+
*/
|
|
102
|
+
function proofToLatex(proof) {
|
|
103
|
+
const lines = [];
|
|
104
|
+
emit(proof, lines);
|
|
105
|
+
return `\\begin{prooftree}\n${lines.join('\n')}\n\\end{prooftree}`;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=latex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"latex.js","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/latex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Formula } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Reescribe la formula al nucleo {atom, true, false, not, and, or, implies}
|
|
4
|
+
* preservando las locaciones. Las formulas no proposicionales se dejan tal
|
|
5
|
+
* cual: el prover las tratara como atomicas y normalmente no podra cerrar
|
|
6
|
+
* la prueba salvo coincidencia sintactica exacta.
|
|
7
|
+
*/
|
|
8
|
+
export declare function normalizeForG3(f: Formula): Formula;
|
|
9
|
+
/**
|
|
10
|
+
* Canoniza una formula a una representacion textual estable que ignora
|
|
11
|
+
* `source` y normaliza orden interno donde aplica. Sirve como clave para
|
|
12
|
+
* comparar formulas en multisets.
|
|
13
|
+
*/
|
|
14
|
+
export declare function formulaKey(f: Formula): string;
|
|
15
|
+
//# sourceMappingURL=normalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/normalize.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAgElD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CA2B7C"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// G3 — Normalizacion de formulas a {atom, not, and, or, implies}
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// El nucleo G3 razona sobre 5 conectivos. Las formulas con
|
|
7
|
+
// biconditional, xor, nand, nor se reescriben a esa base; tambien
|
|
8
|
+
// se expanden cuantificadores y operadores aritmeticos no
|
|
9
|
+
// soportados (devolviendo error semantico via NaN-formula).
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.normalizeForG3 = normalizeForG3;
|
|
12
|
+
exports.formulaKey = formulaKey;
|
|
13
|
+
/**
|
|
14
|
+
* Reescribe la formula al nucleo {atom, true, false, not, and, or, implies}
|
|
15
|
+
* preservando las locaciones. Las formulas no proposicionales se dejan tal
|
|
16
|
+
* cual: el prover las tratara como atomicas y normalmente no podra cerrar
|
|
17
|
+
* la prueba salvo coincidencia sintactica exacta.
|
|
18
|
+
*/
|
|
19
|
+
function normalizeForG3(f) {
|
|
20
|
+
switch (f.kind) {
|
|
21
|
+
case 'atom':
|
|
22
|
+
case 'true':
|
|
23
|
+
case 'false':
|
|
24
|
+
return f;
|
|
25
|
+
case 'not': {
|
|
26
|
+
const inner = f.args && f.args[0] ? normalizeForG3(f.args[0]) : f;
|
|
27
|
+
return { kind: 'not', args: [inner], source: f.source };
|
|
28
|
+
}
|
|
29
|
+
case 'and':
|
|
30
|
+
case 'or':
|
|
31
|
+
case 'implies': {
|
|
32
|
+
const a = f.args && f.args[0] ? normalizeForG3(f.args[0]) : f;
|
|
33
|
+
const b = f.args && f.args[1] ? normalizeForG3(f.args[1]) : f;
|
|
34
|
+
return { kind: f.kind, args: [a, b], source: f.source };
|
|
35
|
+
}
|
|
36
|
+
case 'biconditional': {
|
|
37
|
+
// A ↔ B ≡ (A → B) ∧ (B → A)
|
|
38
|
+
if (!f.args || !f.args[0] || !f.args[1])
|
|
39
|
+
return f;
|
|
40
|
+
const a = normalizeForG3(f.args[0]);
|
|
41
|
+
const b = normalizeForG3(f.args[1]);
|
|
42
|
+
return {
|
|
43
|
+
kind: 'and',
|
|
44
|
+
args: [
|
|
45
|
+
{ kind: 'implies', args: [a, b] },
|
|
46
|
+
{ kind: 'implies', args: [b, a] },
|
|
47
|
+
],
|
|
48
|
+
source: f.source,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
case 'xor': {
|
|
52
|
+
// A ⊕ B ≡ (A ∧ ¬B) ∨ (¬A ∧ B)
|
|
53
|
+
if (!f.args || !f.args[0] || !f.args[1])
|
|
54
|
+
return f;
|
|
55
|
+
const a = normalizeForG3(f.args[0]);
|
|
56
|
+
const b = normalizeForG3(f.args[1]);
|
|
57
|
+
return {
|
|
58
|
+
kind: 'or',
|
|
59
|
+
args: [
|
|
60
|
+
{ kind: 'and', args: [a, { kind: 'not', args: [b] }] },
|
|
61
|
+
{ kind: 'and', args: [{ kind: 'not', args: [a] }, b] },
|
|
62
|
+
],
|
|
63
|
+
source: f.source,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
case 'nand': {
|
|
67
|
+
// A ↑ B ≡ ¬(A ∧ B)
|
|
68
|
+
if (!f.args || !f.args[0] || !f.args[1])
|
|
69
|
+
return f;
|
|
70
|
+
const a = normalizeForG3(f.args[0]);
|
|
71
|
+
const b = normalizeForG3(f.args[1]);
|
|
72
|
+
return { kind: 'not', args: [{ kind: 'and', args: [a, b] }], source: f.source };
|
|
73
|
+
}
|
|
74
|
+
case 'nor': {
|
|
75
|
+
// A ↓ B ≡ ¬(A ∨ B)
|
|
76
|
+
if (!f.args || !f.args[0] || !f.args[1])
|
|
77
|
+
return f;
|
|
78
|
+
const a = normalizeForG3(f.args[0]);
|
|
79
|
+
const b = normalizeForG3(f.args[1]);
|
|
80
|
+
return { kind: 'not', args: [{ kind: 'or', args: [a, b] }], source: f.source };
|
|
81
|
+
}
|
|
82
|
+
default:
|
|
83
|
+
// Cuantificadores, predicados, modales, aritmetica: el prover
|
|
84
|
+
// proposicional los trata como atomos opacos.
|
|
85
|
+
return f;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Canoniza una formula a una representacion textual estable que ignora
|
|
90
|
+
* `source` y normaliza orden interno donde aplica. Sirve como clave para
|
|
91
|
+
* comparar formulas en multisets.
|
|
92
|
+
*/
|
|
93
|
+
function formulaKey(f) {
|
|
94
|
+
switch (f.kind) {
|
|
95
|
+
case 'atom':
|
|
96
|
+
return `a:${f.name ?? '?'}`;
|
|
97
|
+
case 'true':
|
|
98
|
+
return 'T';
|
|
99
|
+
case 'false':
|
|
100
|
+
return 'F';
|
|
101
|
+
case 'not':
|
|
102
|
+
return `n(${f.args && f.args[0] ? formulaKey(f.args[0]) : '?'})`;
|
|
103
|
+
case 'and':
|
|
104
|
+
case 'or':
|
|
105
|
+
case 'implies':
|
|
106
|
+
case 'biconditional': {
|
|
107
|
+
const a = f.args && f.args[0] ? formulaKey(f.args[0]) : '?';
|
|
108
|
+
const b = f.args && f.args[1] ? formulaKey(f.args[1]) : '?';
|
|
109
|
+
return `${f.kind}(${a},${b})`;
|
|
110
|
+
}
|
|
111
|
+
case 'predicate':
|
|
112
|
+
return `p:${f.name ?? '?'}(${(f.params ?? f.terms ?? []).join(',')})`;
|
|
113
|
+
case 'forall':
|
|
114
|
+
case 'exists':
|
|
115
|
+
return `${f.kind}:${f.variable ?? '?'}(${f.args && f.args[0] ? formulaKey(f.args[0]) : '?'})`;
|
|
116
|
+
default:
|
|
117
|
+
// Fallback: usar kind + estructura recursiva
|
|
118
|
+
return `${f.kind}(${(f.args ?? []).map(formulaKey).join(',')})`;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/normalize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Formula } from '../../types';
|
|
2
|
+
import { Sequent, ProveResult } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Demuestra `seq` (Γ ⊢ Δ) por backward search en G3.
|
|
5
|
+
* Normaliza las formulas antes de comenzar.
|
|
6
|
+
*/
|
|
7
|
+
export declare function proveSequent(seq: Sequent, options?: {
|
|
8
|
+
budget?: number;
|
|
9
|
+
}): ProveResult;
|
|
10
|
+
/**
|
|
11
|
+
* Atajo: demuestra que `⊢ φ` (formula sin hipotesis) es valida en G3.
|
|
12
|
+
*/
|
|
13
|
+
export declare function proveFormula(formula: Formula, options?: {
|
|
14
|
+
budget?: number;
|
|
15
|
+
}): ProveResult;
|
|
16
|
+
//# sourceMappingURL=prover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prover.d.ts","sourceRoot":"","sources":["../../../src/profiles/sequent-g3/prover.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAa,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAyV1D;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAOzF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,WAAW,CAE7F"}
|