@stevenvo780/st-lang 4.2.0 → 4.3.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/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -1
- package/dist/index.js.map +1 -1
- package/dist/lambda-calc/church.d.ts +8 -0
- package/dist/lambda-calc/church.d.ts.map +1 -0
- package/dist/lambda-calc/church.js +67 -0
- package/dist/lambda-calc/church.js.map +1 -0
- package/dist/lambda-calc/combinators.d.ts +8 -0
- package/dist/lambda-calc/combinators.d.ts.map +1 -0
- package/dist/lambda-calc/combinators.js +24 -0
- package/dist/lambda-calc/combinators.js.map +1 -0
- package/dist/lambda-calc/index.d.ts +8 -0
- package/dist/lambda-calc/index.d.ts.map +1 -0
- package/dist/lambda-calc/index.js +48 -0
- package/dist/lambda-calc/index.js.map +1 -0
- package/dist/lambda-calc/reduce.d.ts +18 -0
- package/dist/lambda-calc/reduce.d.ts.map +1 -0
- package/dist/lambda-calc/reduce.js +174 -0
- package/dist/lambda-calc/reduce.js.map +1 -0
- package/dist/lambda-calc/substitution.d.ts +6 -0
- package/dist/lambda-calc/substitution.d.ts.map +1 -0
- package/dist/lambda-calc/substitution.js +120 -0
- package/dist/lambda-calc/substitution.js.map +1 -0
- package/dist/lambda-calc/types.d.ts +19 -0
- package/dist/lambda-calc/types.d.ts.map +1 -0
- package/dist/lambda-calc/types.js +72 -0
- package/dist/lambda-calc/types.js.map +1 -0
- package/dist/profiles/intuitionistic-nj/formula.d.ts +19 -0
- package/dist/profiles/intuitionistic-nj/formula.d.ts.map +1 -0
- package/dist/profiles/intuitionistic-nj/formula.js +99 -0
- package/dist/profiles/intuitionistic-nj/formula.js.map +1 -0
- package/dist/profiles/intuitionistic-nj/index.d.ts +5 -0
- package/dist/profiles/intuitionistic-nj/index.d.ts.map +1 -0
- package/dist/profiles/intuitionistic-nj/index.js +24 -0
- package/dist/profiles/intuitionistic-nj/index.js.map +1 -0
- package/dist/profiles/intuitionistic-nj/kripke.d.ts +17 -0
- package/dist/profiles/intuitionistic-nj/kripke.d.ts.map +1 -0
- package/dist/profiles/intuitionistic-nj/kripke.js +206 -0
- package/dist/profiles/intuitionistic-nj/kripke.js.map +1 -0
- package/dist/profiles/intuitionistic-nj/prover.d.ts +13 -0
- package/dist/profiles/intuitionistic-nj/prover.d.ts.map +1 -0
- package/dist/profiles/intuitionistic-nj/prover.js +418 -0
- package/dist/profiles/intuitionistic-nj/prover.js.map +1 -0
- package/dist/profiles/intuitionistic-nj/types.d.ts +55 -0
- package/dist/profiles/intuitionistic-nj/types.d.ts.map +1 -0
- package/dist/profiles/intuitionistic-nj/types.js +21 -0
- package/dist/profiles/intuitionistic-nj/types.js.map +1 -0
- package/dist/profiles/many-valued/index.d.ts +39 -0
- package/dist/profiles/many-valued/index.d.ts.map +1 -0
- package/dist/profiles/many-valued/index.js +250 -0
- package/dist/profiles/many-valued/index.js.map +1 -0
- package/dist/profiles/modal-frame-axioms/formula.d.ts +23 -0
- package/dist/profiles/modal-frame-axioms/formula.d.ts.map +1 -0
- package/dist/profiles/modal-frame-axioms/formula.js +158 -0
- package/dist/profiles/modal-frame-axioms/formula.js.map +1 -0
- package/dist/profiles/modal-frame-axioms/index.d.ts +6 -0
- package/dist/profiles/modal-frame-axioms/index.d.ts.map +1 -0
- package/dist/profiles/modal-frame-axioms/index.js +41 -0
- package/dist/profiles/modal-frame-axioms/index.js.map +1 -0
- package/dist/profiles/modal-frame-axioms/systems.d.ts +29 -0
- package/dist/profiles/modal-frame-axioms/systems.d.ts.map +1 -0
- package/dist/profiles/modal-frame-axioms/systems.js +96 -0
- package/dist/profiles/modal-frame-axioms/systems.js.map +1 -0
- package/dist/profiles/modal-frame-axioms/tableau.d.ts +12 -0
- package/dist/profiles/modal-frame-axioms/tableau.d.ts.map +1 -0
- package/dist/profiles/modal-frame-axioms/tableau.js +299 -0
- package/dist/profiles/modal-frame-axioms/tableau.js.map +1 -0
- package/dist/profiles/modal-frame-axioms/types.d.ts +61 -0
- package/dist/profiles/modal-frame-axioms/types.d.ts.map +1 -0
- package/dist/profiles/modal-frame-axioms/types.js +27 -0
- package/dist/profiles/modal-frame-axioms/types.js.map +1 -0
- package/dist/profiles/substructural/index.d.ts +4 -0
- package/dist/profiles/substructural/index.d.ts.map +1 -0
- package/dist/profiles/substructural/index.js +22 -0
- package/dist/profiles/substructural/index.js.map +1 -0
- package/dist/profiles/substructural/prover.d.ts +13 -0
- package/dist/profiles/substructural/prover.d.ts.map +1 -0
- package/dist/profiles/substructural/prover.js +481 -0
- package/dist/profiles/substructural/prover.js.map +1 -0
- package/dist/profiles/substructural/types.d.ts +72 -0
- package/dist/profiles/substructural/types.d.ts.map +1 -0
- package/dist/profiles/substructural/types.js +27 -0
- package/dist/profiles/substructural/types.js.map +1 -0
- package/dist/runtime/abduction/entails.d.ts +21 -0
- package/dist/runtime/abduction/entails.d.ts.map +1 -0
- package/dist/runtime/abduction/entails.js +308 -0
- package/dist/runtime/abduction/entails.js.map +1 -0
- package/dist/runtime/abduction/find.d.ts +18 -0
- package/dist/runtime/abduction/find.d.ts.map +1 -0
- package/dist/runtime/abduction/find.js +202 -0
- package/dist/runtime/abduction/find.js.map +1 -0
- package/dist/runtime/abduction/index.d.ts +4 -0
- package/dist/runtime/abduction/index.d.ts.map +1 -0
- package/dist/runtime/abduction/index.js +26 -0
- package/dist/runtime/abduction/index.js.map +1 -0
- package/dist/runtime/abduction/types.d.ts +78 -0
- package/dist/runtime/abduction/types.d.ts.map +1 -0
- package/dist/runtime/abduction/types.js +23 -0
- package/dist/runtime/abduction/types.js.map +1 -0
- package/dist/runtime/bayesian/factor.d.ts +22 -0
- package/dist/runtime/bayesian/factor.d.ts.map +1 -0
- package/dist/runtime/bayesian/factor.js +249 -0
- package/dist/runtime/bayesian/factor.js.map +1 -0
- package/dist/runtime/bayesian/index.d.ts +3 -0
- package/dist/runtime/bayesian/index.d.ts.map +1 -0
- package/dist/runtime/bayesian/index.js +25 -0
- package/dist/runtime/bayesian/index.js.map +1 -0
- package/dist/runtime/bayesian/inference.d.ts +6 -0
- package/dist/runtime/bayesian/inference.d.ts.map +1 -0
- package/dist/runtime/bayesian/inference.js +260 -0
- package/dist/runtime/bayesian/inference.js.map +1 -0
- package/dist/runtime/bayesian/types.d.ts +19 -0
- package/dist/runtime/bayesian/types.d.ts.map +1 -0
- package/dist/runtime/bayesian/types.js +9 -0
- package/dist/runtime/bayesian/types.js.map +1 -0
- package/dist/runtime/bisimulation/index.d.ts +4 -0
- package/dist/runtime/bisimulation/index.d.ts.map +1 -0
- package/dist/runtime/bisimulation/index.js +21 -0
- package/dist/runtime/bisimulation/index.js.map +1 -0
- package/dist/runtime/bisimulation/operations.d.ts +40 -0
- package/dist/runtime/bisimulation/operations.d.ts.map +1 -0
- package/dist/runtime/bisimulation/operations.js +219 -0
- package/dist/runtime/bisimulation/operations.js.map +1 -0
- package/dist/runtime/bisimulation/paige-tarjan.d.ts +8 -0
- package/dist/runtime/bisimulation/paige-tarjan.d.ts.map +1 -0
- package/dist/runtime/bisimulation/paige-tarjan.js +199 -0
- package/dist/runtime/bisimulation/paige-tarjan.js.map +1 -0
- package/dist/runtime/bisimulation/types.d.ts +26 -0
- package/dist/runtime/bisimulation/types.d.ts.map +1 -0
- package/dist/runtime/bisimulation/types.js +22 -0
- package/dist/runtime/bisimulation/types.js.map +1 -0
- package/dist/runtime/fca/context.d.ts +46 -0
- package/dist/runtime/fca/context.d.ts.map +1 -0
- package/dist/runtime/fca/context.js +155 -0
- package/dist/runtime/fca/context.js.map +1 -0
- package/dist/runtime/fca/implications.d.ts +10 -0
- package/dist/runtime/fca/implications.d.ts.map +1 -0
- package/dist/runtime/fca/implications.js +33 -0
- package/dist/runtime/fca/implications.js.map +1 -0
- package/dist/runtime/fca/index.d.ts +6 -0
- package/dist/runtime/fca/index.d.ts.map +1 -0
- package/dist/runtime/fca/index.js +39 -0
- package/dist/runtime/fca/index.js.map +1 -0
- package/dist/runtime/fca/lattice.d.ts +10 -0
- package/dist/runtime/fca/lattice.d.ts.map +1 -0
- package/dist/runtime/fca/lattice.js +86 -0
- package/dist/runtime/fca/lattice.js.map +1 -0
- package/dist/runtime/fca/next-closure.d.ts +12 -0
- package/dist/runtime/fca/next-closure.d.ts.map +1 -0
- package/dist/runtime/fca/next-closure.js +99 -0
- package/dist/runtime/fca/next-closure.js.map +1 -0
- package/dist/runtime/fca/types.d.ts +31 -0
- package/dist/runtime/fca/types.d.ts.map +1 -0
- package/dist/runtime/fca/types.js +30 -0
- package/dist/runtime/fca/types.js.map +1 -0
- package/dist/runtime/proof-minify/index.d.ts +3 -0
- package/dist/runtime/proof-minify/index.d.ts.map +1 -0
- package/dist/runtime/proof-minify/index.js +13 -0
- package/dist/runtime/proof-minify/index.js.map +1 -0
- package/dist/runtime/proof-minify/minify.d.ts +13 -0
- package/dist/runtime/proof-minify/minify.d.ts.map +1 -0
- package/dist/runtime/proof-minify/minify.js +540 -0
- package/dist/runtime/proof-minify/minify.js.map +1 -0
- package/dist/runtime/proof-minify/types.d.ts +89 -0
- package/dist/runtime/proof-minify/types.d.ts.map +1 -0
- package/dist/runtime/proof-minify/types.js +16 -0
- package/dist/runtime/proof-minify/types.js.map +1 -0
- package/dist/runtime/symbolic-diff/constructors.d.ts +16 -0
- package/dist/runtime/symbolic-diff/constructors.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/constructors.js +75 -0
- package/dist/runtime/symbolic-diff/constructors.js.map +1 -0
- package/dist/runtime/symbolic-diff/differentiate.d.ts +22 -0
- package/dist/runtime/symbolic-diff/differentiate.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/differentiate.js +107 -0
- package/dist/runtime/symbolic-diff/differentiate.js.map +1 -0
- package/dist/runtime/symbolic-diff/evaluate.d.ts +3 -0
- package/dist/runtime/symbolic-diff/evaluate.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/evaluate.js +47 -0
- package/dist/runtime/symbolic-diff/evaluate.js.map +1 -0
- package/dist/runtime/symbolic-diff/index.d.ts +9 -0
- package/dist/runtime/symbolic-diff/index.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/index.js +34 -0
- package/dist/runtime/symbolic-diff/index.js.map +1 -0
- package/dist/runtime/symbolic-diff/parse.d.ts +16 -0
- package/dist/runtime/symbolic-diff/parse.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/parse.js +206 -0
- package/dist/runtime/symbolic-diff/parse.js.map +1 -0
- package/dist/runtime/symbolic-diff/simplify.d.ts +11 -0
- package/dist/runtime/symbolic-diff/simplify.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/simplify.js +214 -0
- package/dist/runtime/symbolic-diff/simplify.js.map +1 -0
- package/dist/runtime/symbolic-diff/stringify.d.ts +3 -0
- package/dist/runtime/symbolic-diff/stringify.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/stringify.js +69 -0
- package/dist/runtime/symbolic-diff/stringify.js.map +1 -0
- package/dist/runtime/symbolic-diff/types.d.ts +35 -0
- package/dist/runtime/symbolic-diff/types.d.ts.map +1 -0
- package/dist/runtime/symbolic-diff/types.js +9 -0
- package/dist/runtime/symbolic-diff/types.js.map +1 -0
- package/dist/runtime/term-rewriting/critical-pairs.d.ts +38 -0
- package/dist/runtime/term-rewriting/critical-pairs.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/critical-pairs.js +109 -0
- package/dist/runtime/term-rewriting/critical-pairs.js.map +1 -0
- package/dist/runtime/term-rewriting/index.d.ts +9 -0
- package/dist/runtime/term-rewriting/index.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/index.js +38 -0
- package/dist/runtime/term-rewriting/index.js.map +1 -0
- package/dist/runtime/term-rewriting/knuth-bendix.d.ts +29 -0
- package/dist/runtime/term-rewriting/knuth-bendix.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/knuth-bendix.js +196 -0
- package/dist/runtime/term-rewriting/knuth-bendix.js.map +1 -0
- package/dist/runtime/term-rewriting/lpo.d.ts +17 -0
- package/dist/runtime/term-rewriting/lpo.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/lpo.js +158 -0
- package/dist/runtime/term-rewriting/lpo.js.map +1 -0
- package/dist/runtime/term-rewriting/rewrite.d.ts +44 -0
- package/dist/runtime/term-rewriting/rewrite.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/rewrite.js +189 -0
- package/dist/runtime/term-rewriting/rewrite.js.map +1 -0
- package/dist/runtime/term-rewriting/term-utils.d.ts +64 -0
- package/dist/runtime/term-rewriting/term-utils.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/term-utils.js +360 -0
- package/dist/runtime/term-rewriting/term-utils.js.map +1 -0
- package/dist/runtime/term-rewriting/types.d.ts +66 -0
- package/dist/runtime/term-rewriting/types.d.ts.map +1 -0
- package/dist/runtime/term-rewriting/types.js +21 -0
- package/dist/runtime/term-rewriting/types.js.map +1 -0
- package/dist/tests/abduction/abduction.test.d.ts +2 -0
- package/dist/tests/abduction/abduction.test.d.ts.map +1 -0
- package/dist/tests/abduction/abduction.test.js +380 -0
- package/dist/tests/abduction/abduction.test.js.map +1 -0
- package/dist/tests/bayesian/bayesian.test.d.ts +2 -0
- package/dist/tests/bayesian/bayesian.test.d.ts.map +1 -0
- package/dist/tests/bayesian/bayesian.test.js +328 -0
- package/dist/tests/bayesian/bayesian.test.js.map +1 -0
- package/dist/tests/bisimulation/paige-tarjan.test.d.ts +2 -0
- package/dist/tests/bisimulation/paige-tarjan.test.d.ts.map +1 -0
- package/dist/tests/bisimulation/paige-tarjan.test.js +254 -0
- package/dist/tests/bisimulation/paige-tarjan.test.js.map +1 -0
- package/dist/tests/fca/fca.test.d.ts +2 -0
- package/dist/tests/fca/fca.test.d.ts.map +1 -0
- package/dist/tests/fca/fca.test.js +317 -0
- package/dist/tests/fca/fca.test.js.map +1 -0
- package/dist/tests/intuitionistic-nj/nj.test.d.ts +2 -0
- package/dist/tests/intuitionistic-nj/nj.test.d.ts.map +1 -0
- package/dist/tests/intuitionistic-nj/nj.test.js +216 -0
- package/dist/tests/intuitionistic-nj/nj.test.js.map +1 -0
- package/dist/tests/lambda-calc/lambda-calc.test.d.ts +2 -0
- package/dist/tests/lambda-calc/lambda-calc.test.d.ts.map +1 -0
- package/dist/tests/lambda-calc/lambda-calc.test.js +164 -0
- package/dist/tests/lambda-calc/lambda-calc.test.js.map +1 -0
- package/dist/tests/many-valued/many-valued.test.d.ts +2 -0
- package/dist/tests/many-valued/many-valued.test.d.ts.map +1 -0
- package/dist/tests/many-valued/many-valued.test.js +150 -0
- package/dist/tests/many-valued/many-valued.test.js.map +1 -0
- package/dist/tests/modal-frame-axioms/frame-axioms.test.d.ts +2 -0
- package/dist/tests/modal-frame-axioms/frame-axioms.test.d.ts.map +1 -0
- package/dist/tests/modal-frame-axioms/frame-axioms.test.js +236 -0
- package/dist/tests/modal-frame-axioms/frame-axioms.test.js.map +1 -0
- package/dist/tests/proof-minify/minify.test.d.ts +2 -0
- package/dist/tests/proof-minify/minify.test.d.ts.map +1 -0
- package/dist/tests/proof-minify/minify.test.js +281 -0
- package/dist/tests/proof-minify/minify.test.js.map +1 -0
- package/dist/tests/substructural/prover.test.d.ts +2 -0
- package/dist/tests/substructural/prover.test.d.ts.map +1 -0
- package/dist/tests/substructural/prover.test.js +271 -0
- package/dist/tests/substructural/prover.test.js.map +1 -0
- package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts +2 -0
- package/dist/tests/symbolic-diff/symbolic-diff.test.d.ts.map +1 -0
- package/dist/tests/symbolic-diff/symbolic-diff.test.js +278 -0
- package/dist/tests/symbolic-diff/symbolic-diff.test.js.map +1 -0
- package/dist/tests/term-rewriting/critical-pairs.test.d.ts +2 -0
- package/dist/tests/term-rewriting/critical-pairs.test.d.ts.map +1 -0
- package/dist/tests/term-rewriting/critical-pairs.test.js +34 -0
- package/dist/tests/term-rewriting/critical-pairs.test.js.map +1 -0
- package/dist/tests/term-rewriting/knuth-bendix.test.d.ts +2 -0
- package/dist/tests/term-rewriting/knuth-bendix.test.d.ts.map +1 -0
- package/dist/tests/term-rewriting/knuth-bendix.test.js +94 -0
- package/dist/tests/term-rewriting/knuth-bendix.test.js.map +1 -0
- package/dist/tests/term-rewriting/lpo.test.d.ts +2 -0
- package/dist/tests/term-rewriting/lpo.test.d.ts.map +1 -0
- package/dist/tests/term-rewriting/lpo.test.js +57 -0
- package/dist/tests/term-rewriting/lpo.test.js.map +1 -0
- package/dist/tests/term-rewriting/rewrite.test.d.ts +2 -0
- package/dist/tests/term-rewriting/rewrite.test.d.ts.map +1 -0
- package/dist/tests/term-rewriting/rewrite.test.js +56 -0
- package/dist/tests/term-rewriting/rewrite.test.js.map +1 -0
- package/dist/tests/term-rewriting/term-utils.test.d.ts +2 -0
- package/dist/tests/term-rewriting/term-utils.test.d.ts.map +1 -0
- package/dist/tests/term-rewriting/term-utils.test.js +58 -0
- package/dist/tests/term-rewriting/term-utils.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FrameAxiom, ModalFormula, TableauResult } from './types';
|
|
2
|
+
export interface TableauOptions {
|
|
3
|
+
/** Máximo número de mundos a explorar. Default heurístico. */
|
|
4
|
+
maxWorlds?: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Construye un tableau extendido para `phi` bajo los axiomas
|
|
8
|
+
* de frame `axioms`. Devuelve `sat` con un modelo si existe; en
|
|
9
|
+
* caso contrario `closed=true`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function tableauWithAxioms(phi: ModalFormula, axioms: FrameAxiom[], options?: TableauOptions): TableauResult;
|
|
12
|
+
//# sourceMappingURL=tableau.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableau.d.ts","sourceRoot":"","sources":["../../../src/profiles/modal-frame-axioms/tableau.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,UAAU,EAAe,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA4R/E,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAoBf"}
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Tableau extendido con axiomas de frame (T, B, 4, 5, D)
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Estrategia: enumeración acotada de modelos Kripke finitos que
|
|
7
|
+
// satisfacen las condiciones de frame impuestas por los axiomas
|
|
8
|
+
// elegidos. Toda lógica modal normal definida por un subconjunto
|
|
9
|
+
// de {T, B, 4, 5, D} tiene la propiedad del modelo finito (FMP),
|
|
10
|
+
// así que la búsqueda bounded es completa para tamaños suficientes.
|
|
11
|
+
//
|
|
12
|
+
// El nombre "tableau" se mantiene por la interfaz pública: el
|
|
13
|
+
// procedimiento es equivalente a saturar un tableau prefijado y
|
|
14
|
+
// extraer un Kripke model de la rama abierta, sólo que aquí se
|
|
15
|
+
// hace por enumeración directa de frames + valuaciones — más
|
|
16
|
+
// simple de auditar y más rápido para |sub(φ)| pequeño.
|
|
17
|
+
//
|
|
18
|
+
// Para evitar explosión combinatoria:
|
|
19
|
+
// - El tamaño del frame se elige según |sub(φ)| y los axiomas.
|
|
20
|
+
// - Se aplica clausura del frame antes de evaluar para
|
|
21
|
+
// enforce de las condiciones (transitivo, simétrico, etc.).
|
|
22
|
+
// - Las valuaciones se enumeran sólo sobre átomos que aparecen.
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.tableauWithAxioms = tableauWithAxioms;
|
|
25
|
+
const formula_1 = require("./formula");
|
|
26
|
+
function edgeKey(size, from, to) {
|
|
27
|
+
return from * size + to;
|
|
28
|
+
}
|
|
29
|
+
function hasEdge(m, from, to) {
|
|
30
|
+
return m.edges.has(edgeKey(m.size, from, to));
|
|
31
|
+
}
|
|
32
|
+
function successors(m, w) {
|
|
33
|
+
const out = [];
|
|
34
|
+
for (let v = 0; v < m.size; v++) {
|
|
35
|
+
if (hasEdge(m, w, v))
|
|
36
|
+
out.push(v);
|
|
37
|
+
}
|
|
38
|
+
return out;
|
|
39
|
+
}
|
|
40
|
+
// ------------------------------------------------------------
|
|
41
|
+
// Forcing modal estándar (semántica Kripke)
|
|
42
|
+
// ------------------------------------------------------------
|
|
43
|
+
function forces(m, w, f) {
|
|
44
|
+
switch (f.kind) {
|
|
45
|
+
case 'atom':
|
|
46
|
+
return f.name !== undefined && m.val[w].has(f.name);
|
|
47
|
+
case 'not':
|
|
48
|
+
return !forces(m, w, (0, formula_1.subUnary)(f));
|
|
49
|
+
case 'and':
|
|
50
|
+
return forces(m, w, (0, formula_1.subLeft)(f)) && forces(m, w, (0, formula_1.subRight)(f));
|
|
51
|
+
case 'or':
|
|
52
|
+
return forces(m, w, (0, formula_1.subLeft)(f)) || forces(m, w, (0, formula_1.subRight)(f));
|
|
53
|
+
case 'implies':
|
|
54
|
+
return !forces(m, w, (0, formula_1.subLeft)(f)) || forces(m, w, (0, formula_1.subRight)(f));
|
|
55
|
+
case 'box': {
|
|
56
|
+
const inner = (0, formula_1.subUnary)(f);
|
|
57
|
+
for (const v of successors(m, w)) {
|
|
58
|
+
if (!forces(m, v, inner))
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
case 'diamond': {
|
|
64
|
+
const inner = (0, formula_1.subUnary)(f);
|
|
65
|
+
for (const v of successors(m, w)) {
|
|
66
|
+
if (forces(m, v, inner))
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// ------------------------------------------------------------
|
|
74
|
+
// Aplicación de axiomas de frame — clausura sobre las aristas
|
|
75
|
+
// ------------------------------------------------------------
|
|
76
|
+
/**
|
|
77
|
+
* Aplica las condiciones de frame impuestas por los axiomas
|
|
78
|
+
* IN-PLACE sobre `edges`. Devuelve `false` si el frame no puede
|
|
79
|
+
* satisfacer las condiciones (e.g. D requiere serialidad y el
|
|
80
|
+
* mundo está aislado — se intentará añadir, pero el chequeo
|
|
81
|
+
* final lo confirma).
|
|
82
|
+
*
|
|
83
|
+
* Reglas:
|
|
84
|
+
* - T : ∀w. R(w,w) → añadir lazos.
|
|
85
|
+
* - B : R(w,v) → R(v,w) → simetrizar.
|
|
86
|
+
* - 4 : transitividad → cerrar transitivamente.
|
|
87
|
+
* - 5 : R(w,v)∧R(w,u)→R(v,u) → euclidianizar.
|
|
88
|
+
* - D : ∀w. ∃v. R(w,v) → si w sin sucesor, añadir lazo
|
|
89
|
+
* a w (siempre coherente con K+D).
|
|
90
|
+
*
|
|
91
|
+
* Las clausuras (B, 4, 5) se iteran hasta punto fijo porque se
|
|
92
|
+
* generan mutuamente.
|
|
93
|
+
*/
|
|
94
|
+
function closeFrame(model, axioms) {
|
|
95
|
+
const size = model.size;
|
|
96
|
+
if (axioms.has('T')) {
|
|
97
|
+
for (let w = 0; w < size; w++) {
|
|
98
|
+
model.edges.add(edgeKey(size, w, w));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
let changed = true;
|
|
102
|
+
while (changed) {
|
|
103
|
+
changed = false;
|
|
104
|
+
if (axioms.has('B')) {
|
|
105
|
+
const snapshot = [...model.edges];
|
|
106
|
+
for (const k of snapshot) {
|
|
107
|
+
const from = Math.floor(k / size);
|
|
108
|
+
const to = k % size;
|
|
109
|
+
const rev = edgeKey(size, to, from);
|
|
110
|
+
if (!model.edges.has(rev)) {
|
|
111
|
+
model.edges.add(rev);
|
|
112
|
+
changed = true;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (axioms.has('4')) {
|
|
117
|
+
// Cierre transitivo (Floyd-Warshall sobre la matriz booleana)
|
|
118
|
+
for (let k = 0; k < size; k++) {
|
|
119
|
+
for (let i = 0; i < size; i++) {
|
|
120
|
+
if (!hasEdge(model, i, k))
|
|
121
|
+
continue;
|
|
122
|
+
for (let j = 0; j < size; j++) {
|
|
123
|
+
if (hasEdge(model, k, j) && !hasEdge(model, i, j)) {
|
|
124
|
+
model.edges.add(edgeKey(size, i, j));
|
|
125
|
+
changed = true;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (axioms.has('5')) {
|
|
132
|
+
// Euclidianidad: si w R v y w R u entonces v R u.
|
|
133
|
+
for (let w = 0; w < size; w++) {
|
|
134
|
+
const succs = [];
|
|
135
|
+
for (let v = 0; v < size; v++) {
|
|
136
|
+
if (hasEdge(model, w, v))
|
|
137
|
+
succs.push(v);
|
|
138
|
+
}
|
|
139
|
+
for (const v of succs) {
|
|
140
|
+
for (const u of succs) {
|
|
141
|
+
if (!hasEdge(model, v, u)) {
|
|
142
|
+
model.edges.add(edgeKey(size, v, u));
|
|
143
|
+
changed = true;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (axioms.has('D')) {
|
|
151
|
+
// Serialidad: cada mundo necesita ≥1 sucesor. Si falta, lo
|
|
152
|
+
// damos como auto-lazo (coherente con D, pero no añade T
|
|
153
|
+
// a otros mundos).
|
|
154
|
+
for (let w = 0; w < size; w++) {
|
|
155
|
+
let has = false;
|
|
156
|
+
for (let v = 0; v < size; v++) {
|
|
157
|
+
if (hasEdge(model, w, v)) {
|
|
158
|
+
has = true;
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (!has) {
|
|
163
|
+
model.edges.add(edgeKey(size, w, w));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Cerrar de nuevo simetría/transitividad/euclidiana si las
|
|
167
|
+
// nuevas aristas introducen requerimientos.
|
|
168
|
+
if (axioms.has('B') || axioms.has('4') || axioms.has('5')) {
|
|
169
|
+
closeFrame(model, new Set([...axioms].filter((a) => a !== 'D')));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// ------------------------------------------------------------
|
|
174
|
+
// Enumeración de frames y valuaciones
|
|
175
|
+
// ------------------------------------------------------------
|
|
176
|
+
/**
|
|
177
|
+
* Genera todos los frames de tamaño `size`. Para cada uno
|
|
178
|
+
* aplica la clausura del axioma y descarta duplicados sintácticos
|
|
179
|
+
* post-clausura.
|
|
180
|
+
*/
|
|
181
|
+
function* generateFrames(size, axioms) {
|
|
182
|
+
const pairs = [];
|
|
183
|
+
for (let i = 0; i < size; i++) {
|
|
184
|
+
for (let j = 0; j < size; j++) {
|
|
185
|
+
// Si T está activo, todos los lazos están forzados — no
|
|
186
|
+
// los enumeramos como variables libres.
|
|
187
|
+
if (axioms.has('T') && i === j)
|
|
188
|
+
continue;
|
|
189
|
+
pairs.push([i, j]);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
const total = 1 << pairs.length;
|
|
193
|
+
const seen = new Set();
|
|
194
|
+
for (let mask = 0; mask < total; mask++) {
|
|
195
|
+
const edges = new Set();
|
|
196
|
+
for (let b = 0; b < pairs.length; b++) {
|
|
197
|
+
if (mask & (1 << b)) {
|
|
198
|
+
const [from, to] = pairs[b];
|
|
199
|
+
edges.add(edgeKey(size, from, to));
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const model = {
|
|
203
|
+
size,
|
|
204
|
+
edges,
|
|
205
|
+
val: Array.from({ length: size }, () => new Set()),
|
|
206
|
+
};
|
|
207
|
+
closeFrame(model, axioms);
|
|
208
|
+
const sig = [...model.edges].sort((a, b) => a - b).join(',');
|
|
209
|
+
if (seen.has(sig))
|
|
210
|
+
continue;
|
|
211
|
+
seen.add(sig);
|
|
212
|
+
yield model;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Enumera valuaciones sobre `atoms` para los `size` mundos
|
|
217
|
+
* (subconjunto arbitrario de átomos por mundo, sin restricción
|
|
218
|
+
* de monotonía — la lógica modal estándar no la exige).
|
|
219
|
+
*/
|
|
220
|
+
function* generateValuations(size, atoms) {
|
|
221
|
+
const k = atoms.length;
|
|
222
|
+
const perWorld = 1 << k;
|
|
223
|
+
const total = Math.pow(perWorld, size);
|
|
224
|
+
for (let i = 0; i < total; i++) {
|
|
225
|
+
const val = [];
|
|
226
|
+
let idx = i;
|
|
227
|
+
for (let w = 0; w < size; w++) {
|
|
228
|
+
const mask = idx % perWorld;
|
|
229
|
+
idx = Math.floor(idx / perWorld);
|
|
230
|
+
const set = new Set();
|
|
231
|
+
for (let a = 0; a < k; a++) {
|
|
232
|
+
if (mask & (1 << a))
|
|
233
|
+
set.add(atoms[a]);
|
|
234
|
+
}
|
|
235
|
+
val.push(set);
|
|
236
|
+
}
|
|
237
|
+
yield val;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// ------------------------------------------------------------
|
|
241
|
+
// Cota de tamaño de modelo
|
|
242
|
+
// ------------------------------------------------------------
|
|
243
|
+
/**
|
|
244
|
+
* Tamaño máximo de modelo a explorar. Conservador: 2^|atoms|+1
|
|
245
|
+
* bastaría para la propiedad de filtración en muchas lógicas,
|
|
246
|
+
* pero acotado por un máximo absoluto para evitar explosiones.
|
|
247
|
+
*
|
|
248
|
+
* Override vía `options.maxWorlds` en la API pública.
|
|
249
|
+
*/
|
|
250
|
+
function defaultMaxWorlds(atomCount) {
|
|
251
|
+
if (atomCount <= 1)
|
|
252
|
+
return 3;
|
|
253
|
+
if (atomCount <= 2)
|
|
254
|
+
return 3;
|
|
255
|
+
return 3;
|
|
256
|
+
}
|
|
257
|
+
// ------------------------------------------------------------
|
|
258
|
+
// Conversión modelo interno → público
|
|
259
|
+
// ------------------------------------------------------------
|
|
260
|
+
function toPublic(model, actual) {
|
|
261
|
+
const worlds = Array.from({ length: model.size }, (_, i) => `w${i}`);
|
|
262
|
+
const accessibility = [];
|
|
263
|
+
for (const k of model.edges) {
|
|
264
|
+
const from = Math.floor(k / model.size);
|
|
265
|
+
const to = k % model.size;
|
|
266
|
+
accessibility.push([`w${from}`, `w${to}`]);
|
|
267
|
+
}
|
|
268
|
+
accessibility.sort((a, b) => a[0] === b[0] ? a[1].localeCompare(b[1]) : a[0].localeCompare(b[0]));
|
|
269
|
+
const valuation = new Map();
|
|
270
|
+
for (let w = 0; w < model.size; w++) {
|
|
271
|
+
valuation.set(`w${w}`, new Set(model.val[w]));
|
|
272
|
+
}
|
|
273
|
+
return { worlds, accessibility, valuation, actual: `w${actual}` };
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Construye un tableau extendido para `phi` bajo los axiomas
|
|
277
|
+
* de frame `axioms`. Devuelve `sat` con un modelo si existe; en
|
|
278
|
+
* caso contrario `closed=true`.
|
|
279
|
+
*/
|
|
280
|
+
function tableauWithAxioms(phi, axioms, options = {}) {
|
|
281
|
+
const axiomSet = new Set(axioms);
|
|
282
|
+
const atoms = [...(0, formula_1.collectAtoms)(phi)];
|
|
283
|
+
// Si la fórmula no menciona átomos (e.g. □⊥ con notación
|
|
284
|
+
// sintética), igual hay que considerar valuaciones triviales.
|
|
285
|
+
const effectiveAtoms = atoms.length === 0 ? [] : atoms;
|
|
286
|
+
const maxWorlds = options.maxWorlds ?? defaultMaxWorlds(effectiveAtoms.length);
|
|
287
|
+
for (let size = 1; size <= maxWorlds; size++) {
|
|
288
|
+
for (const frame of generateFrames(size, axiomSet)) {
|
|
289
|
+
for (const val of generateValuations(size, effectiveAtoms)) {
|
|
290
|
+
frame.val = val;
|
|
291
|
+
if (forces(frame, 0, phi)) {
|
|
292
|
+
return { sat: true, closed: false, model: toPublic(frame, 0) };
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return { sat: false, closed: true };
|
|
298
|
+
}
|
|
299
|
+
//# sourceMappingURL=tableau.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableau.js","sourceRoot":"","sources":["../../../src/profiles/modal-frame-axioms/tableau.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Axiomas de frame disponibles. Cualquier subconjunto define una
|
|
3
|
+
* lógica modal normal.
|
|
4
|
+
*/
|
|
5
|
+
export type FrameAxiom = 'T' | 'B' | '4' | '5' | 'D';
|
|
6
|
+
/**
|
|
7
|
+
* Sistemas modales nombrados que reconoce {@link systemAxioms}.
|
|
8
|
+
* Cualquier otra combinación puede construirse pasando los axiomas
|
|
9
|
+
* directamente a {@link tableauWithAxioms}.
|
|
10
|
+
*/
|
|
11
|
+
export type ModalSystem = 'K' | 'T' | 'D' | 'B' | 'S4' | 'S5' | 'KD45' | 'KB' | 'K4' | 'K5';
|
|
12
|
+
/**
|
|
13
|
+
* Fórmula modal proposicional. Estructura discriminada por `kind`.
|
|
14
|
+
*
|
|
15
|
+
* Convenciones:
|
|
16
|
+
* - 'atom' usa `name`.
|
|
17
|
+
* - 'not' usa `arg`.
|
|
18
|
+
* - 'box' usa `arg` (□φ — necesidad).
|
|
19
|
+
* - 'diamond' usa `arg` (◇φ — posibilidad).
|
|
20
|
+
* - 'and' / 'or' / 'implies' usan `left` y `right`.
|
|
21
|
+
*
|
|
22
|
+
* Se mantiene también `args` como alternativa lista para
|
|
23
|
+
* compatibilidad con consumidores que prefieren n-arios.
|
|
24
|
+
*/
|
|
25
|
+
export interface ModalFormula {
|
|
26
|
+
kind: 'atom' | 'not' | 'and' | 'or' | 'implies' | 'box' | 'diamond';
|
|
27
|
+
name?: string;
|
|
28
|
+
arg?: ModalFormula;
|
|
29
|
+
args?: ModalFormula[];
|
|
30
|
+
left?: ModalFormula;
|
|
31
|
+
right?: ModalFormula;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Modelo de Kripke devuelto cuando una fórmula es satisfacible.
|
|
35
|
+
*
|
|
36
|
+
* - `worlds` : nombres simbólicos de mundos (e.g. "w0", "w1").
|
|
37
|
+
* - `accessibility` : aristas dirigidas `[from, to]` del frame.
|
|
38
|
+
* - `valuation` : por mundo, los átomos verdaderos en ese mundo.
|
|
39
|
+
* - `actual` : mundo "real" donde se evalúa la fórmula
|
|
40
|
+
* (típicamente "w0").
|
|
41
|
+
*/
|
|
42
|
+
export interface KripkeModel {
|
|
43
|
+
worlds: string[];
|
|
44
|
+
accessibility: Array<[string, string]>;
|
|
45
|
+
valuation: Map<string, Set<string>>;
|
|
46
|
+
actual: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Resultado del tableau / búsqueda de modelo.
|
|
50
|
+
*
|
|
51
|
+
* - `sat` : ¿existe modelo en el frame indicado?
|
|
52
|
+
* - `model` : si `sat`, modelo concreto (raíz = actual world).
|
|
53
|
+
* - `closed` : ¿el tableau cerró todas las ramas? (= ¬sat).
|
|
54
|
+
* Para una búsqueda saturada: closed ⇔ ¬sat.
|
|
55
|
+
*/
|
|
56
|
+
export interface TableauResult {
|
|
57
|
+
sat: boolean;
|
|
58
|
+
model?: KripkeModel;
|
|
59
|
+
closed: boolean;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/profiles/modal-frame-axioms/types.ts"],"names":[],"mappings":"AAyBA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5F;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Modal Frame Axioms — Tipos
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Lógicas modales normales caracterizadas por axiomas de frame:
|
|
7
|
+
//
|
|
8
|
+
// T : □φ → φ reflexividad ∀w. R(w,w)
|
|
9
|
+
// B : φ → □◇φ simetría ∀w,v. R(w,v) → R(v,w)
|
|
10
|
+
// 4 : □φ → □□φ transitividad ∀w,v,u. R(w,v)∧R(v,u) → R(w,u)
|
|
11
|
+
// 5 : ◇φ → □◇φ euclidianidad ∀w,v,u. R(w,v)∧R(w,u) → R(v,u)
|
|
12
|
+
// D : □φ → ◇φ serialidad ∀w. ∃v. R(w,v)
|
|
13
|
+
//
|
|
14
|
+
// Sistemas estándar como composiciones:
|
|
15
|
+
//
|
|
16
|
+
// K = ∅ (sin axiomas, sólo K y N)
|
|
17
|
+
// T = {T} reflexivo
|
|
18
|
+
// D = {D} serial
|
|
19
|
+
// B = {T, B} reflexivo + simétrico (a veces KB = {B} sin T)
|
|
20
|
+
// K4 = {4} transitivo
|
|
21
|
+
// K5 = {5} euclidiano
|
|
22
|
+
// KB = {B} sólo simétrico
|
|
23
|
+
// S4 = {T, 4} reflexivo + transitivo
|
|
24
|
+
// S5 = {T, 4, 5} equivalencia (≡ T+B+4 ≡ T+5)
|
|
25
|
+
// KD45 = {D, 4, 5} serial + trans + eucl (modelo doxástico)
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/profiles/modal-frame-axioms/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,6BAA6B;AAC7B,+DAA+D;AAC/D,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,sDAAsD;AACtD,iEAAiE;AACjE,0EAA0E;AAC1E,0EAA0E;AAC1E,0DAA0D;AAC1D,EAAE;AACF,wCAAwC;AACxC,EAAE;AACF,iDAAiD;AACjD,iCAAiC;AACjC,8BAA8B;AAC9B,uEAAuE;AACvE,kCAAkC;AAClC,kCAAkC;AAClC,sCAAsC;AACtC,8CAA8C;AAC9C,oDAAoD;AACpD,iEAAiE"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { LinearFormula, LinearSequent, LinearProof, SequentRule, SubstructuralMode, } from './types';
|
|
2
|
+
export { proveLinear, proveAffine, proofToString, formulaKey } from './prover';
|
|
3
|
+
export type { ProveOptions, ProveResult } from './prover';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/substructural/index.ts"],"names":[],"mappings":"AAcA,YAAY,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/E,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Substructural Logics — Public entrypoint
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Logicas substructurales (Linear y Affine) con calculo de
|
|
7
|
+
// secuentes intuicionistico unilateral. Conectivos multiplicativos
|
|
8
|
+
// (⊗, ⊸, 1), aditivos (&, ⊕) y el exponencial bang (!).
|
|
9
|
+
//
|
|
10
|
+
// import {
|
|
11
|
+
// LinearFormula,
|
|
12
|
+
// proveLinear,
|
|
13
|
+
// proveAffine,
|
|
14
|
+
// } from 'src/profiles/substructural';
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.formulaKey = exports.proofToString = exports.proveAffine = exports.proveLinear = void 0;
|
|
17
|
+
var prover_1 = require("./prover");
|
|
18
|
+
Object.defineProperty(exports, "proveLinear", { enumerable: true, get: function () { return prover_1.proveLinear; } });
|
|
19
|
+
Object.defineProperty(exports, "proveAffine", { enumerable: true, get: function () { return prover_1.proveAffine; } });
|
|
20
|
+
Object.defineProperty(exports, "proofToString", { enumerable: true, get: function () { return prover_1.proofToString; } });
|
|
21
|
+
Object.defineProperty(exports, "formulaKey", { enumerable: true, get: function () { return prover_1.formulaKey; } });
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiles/substructural/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,2CAA2C;AAC3C,+DAA+D;AAC/D,EAAE;AACF,2DAA2D;AAC3D,mEAAmE;AACnE,wDAAwD;AACxD,EAAE;AACF,aAAa;AACb,qBAAqB;AACrB,mBAAmB;AACnB,mBAAmB;AACnB,yCAAyC;;;AAUzC,mCAA+E;AAAtE,qGAAA,WAAW,OAAA;AAAE,qGAAA,WAAW,OAAA;AAAE,uGAAA,aAAa,OAAA;AAAE,oGAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { LinearFormula, LinearProof, LinearSequent } from './types';
|
|
2
|
+
export declare function formulaKey(f: LinearFormula): string;
|
|
3
|
+
export interface ProveOptions {
|
|
4
|
+
budget?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface ProveResult {
|
|
7
|
+
provable: boolean;
|
|
8
|
+
proof?: LinearProof;
|
|
9
|
+
}
|
|
10
|
+
export declare function proveLinear(seqInput: LinearSequent, options?: ProveOptions): LinearProof | null;
|
|
11
|
+
export declare function proveAffine(seqInput: LinearSequent, options?: ProveOptions): LinearProof | null;
|
|
12
|
+
export declare function proofToString(p: LinearProof, indent?: number): string;
|
|
13
|
+
//# sourceMappingURL=prover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prover.d.ts","sourceRoot":"","sources":["../../../src/profiles/substructural/prover.ts"],"names":[],"mappings":"AA0CA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAkC,MAAM,SAAS,CAAC;AAIpG,wBAAgB,UAAU,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAmBnD;AA6aD,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAqBD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,IAAI,CAG/F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,IAAI,CAG/F;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,SAAI,GAAG,MAAM,CAOhE"}
|