@stevenvo780/st-lang 4.4.0 → 4.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +78 -37
- package/dist/coinduction/index.d.ts +136 -0
- package/dist/coinduction/index.d.ts.map +1 -0
- package/dist/coinduction/index.js +318 -0
- package/dist/coinduction/index.js.map +1 -0
- package/dist/combinators-ski/abstract.d.ts +5 -0
- package/dist/combinators-ski/abstract.d.ts.map +1 -0
- package/dist/combinators-ski/abstract.js +88 -0
- package/dist/combinators-ski/abstract.js.map +1 -0
- package/dist/combinators-ski/index.d.ts +6 -0
- package/dist/combinators-ski/index.d.ts.map +1 -0
- package/dist/combinators-ski/index.js +30 -0
- package/dist/combinators-ski/index.js.map +1 -0
- package/dist/combinators-ski/reduce.d.ts +10 -0
- package/dist/combinators-ski/reduce.d.ts.map +1 -0
- package/dist/combinators-ski/reduce.js +118 -0
- package/dist/combinators-ski/reduce.js.map +1 -0
- package/dist/combinators-ski/types.d.ts +23 -0
- package/dist/combinators-ski/types.d.ts.map +1 -0
- package/dist/combinators-ski/types.js +102 -0
- package/dist/combinators-ski/types.js.map +1 -0
- package/dist/constructive-reals/index.d.ts +132 -0
- package/dist/constructive-reals/index.d.ts.map +1 -0
- package/dist/constructive-reals/index.js +723 -0
- package/dist/constructive-reals/index.js.map +1 -0
- package/dist/game-semantics/convert.d.ts +4 -0
- package/dist/game-semantics/convert.d.ts.map +1 -0
- package/dist/game-semantics/convert.js +28 -0
- package/dist/game-semantics/convert.js.map +1 -0
- package/dist/game-semantics/index.d.ts +6 -0
- package/dist/game-semantics/index.d.ts.map +1 -0
- package/dist/game-semantics/index.js +28 -0
- package/dist/game-semantics/index.js.map +1 -0
- package/dist/game-semantics/strategy.d.ts +34 -0
- package/dist/game-semantics/strategy.d.ts.map +1 -0
- package/dist/game-semantics/strategy.js +336 -0
- package/dist/game-semantics/strategy.js.map +1 -0
- package/dist/game-semantics/types.d.ts +64 -0
- package/dist/game-semantics/types.d.ts.map +1 -0
- package/dist/game-semantics/types.js +78 -0
- package/dist/game-semantics/types.js.map +1 -0
- package/dist/higher-order-unify/index.d.ts +5 -0
- package/dist/higher-order-unify/index.d.ts.map +1 -0
- package/dist/higher-order-unify/index.js +27 -0
- package/dist/higher-order-unify/index.js.map +1 -0
- package/dist/higher-order-unify/normalize.d.ts +14 -0
- package/dist/higher-order-unify/normalize.d.ts.map +1 -0
- package/dist/higher-order-unify/normalize.js +191 -0
- package/dist/higher-order-unify/normalize.js.map +1 -0
- package/dist/higher-order-unify/pattern.d.ts +4 -0
- package/dist/higher-order-unify/pattern.d.ts.map +1 -0
- package/dist/higher-order-unify/pattern.js +70 -0
- package/dist/higher-order-unify/pattern.js.map +1 -0
- package/dist/higher-order-unify/types.d.ts +19 -0
- package/dist/higher-order-unify/types.d.ts.map +1 -0
- package/dist/higher-order-unify/types.js +14 -0
- package/dist/higher-order-unify/types.js.map +1 -0
- package/dist/higher-order-unify/unify.d.ts +5 -0
- package/dist/higher-order-unify/unify.d.ts.map +1 -0
- package/dist/higher-order-unify/unify.js +306 -0
- package/dist/higher-order-unify/unify.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -1
- package/dist/index.js.map +1 -1
- package/dist/nbe/index.d.ts +3 -0
- package/dist/nbe/index.d.ts.map +1 -0
- package/dist/nbe/index.js +25 -0
- package/dist/nbe/index.js.map +1 -0
- package/dist/nbe/nbe.d.ts +7 -0
- package/dist/nbe/nbe.d.ts.map +1 -0
- package/dist/nbe/nbe.js +118 -0
- package/dist/nbe/nbe.js.map +1 -0
- package/dist/nbe/types.d.ts +54 -0
- package/dist/nbe/types.d.ts.map +1 -0
- package/dist/nbe/types.js +117 -0
- package/dist/nbe/types.js.map +1 -0
- package/dist/profile-bridge/index.d.ts +64 -0
- package/dist/profile-bridge/index.d.ts.map +1 -0
- package/dist/profile-bridge/index.js +328 -0
- package/dist/profile-bridge/index.js.map +1 -0
- package/dist/proof-nets/construct.d.ts +3 -0
- package/dist/proof-nets/construct.d.ts.map +1 -0
- package/dist/proof-nets/construct.js +85 -0
- package/dist/proof-nets/construct.js.map +1 -0
- package/dist/proof-nets/correctness.d.ts +3 -0
- package/dist/proof-nets/correctness.d.ts.map +1 -0
- package/dist/proof-nets/correctness.js +213 -0
- package/dist/proof-nets/correctness.js.map +1 -0
- package/dist/proof-nets/cut-elim.d.ts +9 -0
- package/dist/proof-nets/cut-elim.d.ts.map +1 -0
- package/dist/proof-nets/cut-elim.js +149 -0
- package/dist/proof-nets/cut-elim.js.map +1 -0
- package/dist/proof-nets/index.d.ts +6 -0
- package/dist/proof-nets/index.d.ts.map +1 -0
- package/dist/proof-nets/index.js +33 -0
- package/dist/proof-nets/index.js.map +1 -0
- package/dist/proof-nets/types.d.ts +36 -0
- package/dist/proof-nets/types.d.ts.map +1 -0
- package/dist/proof-nets/types.js +89 -0
- package/dist/proof-nets/types.js.map +1 -0
- package/dist/tableau-framework/TableauProver.d.ts +10 -0
- package/dist/tableau-framework/TableauProver.d.ts.map +1 -0
- package/dist/tableau-framework/TableauProver.js +118 -0
- package/dist/tableau-framework/TableauProver.js.map +1 -0
- package/dist/tableau-framework/index.d.ts +5 -0
- package/dist/tableau-framework/index.d.ts.map +1 -0
- package/dist/tableau-framework/index.js +11 -0
- package/dist/tableau-framework/index.js.map +1 -0
- package/dist/tableau-framework/propositional.d.ts +11 -0
- package/dist/tableau-framework/propositional.d.ts.map +1 -0
- package/dist/tableau-framework/propositional.js +143 -0
- package/dist/tableau-framework/propositional.js.map +1 -0
- package/dist/tableau-framework/types.d.ts +32 -0
- package/dist/tableau-framework/types.d.ts.map +1 -0
- package/dist/tableau-framework/types.js +6 -0
- package/dist/tableau-framework/types.js.map +1 -0
- package/dist/tests/coinduction/coinduction.test.d.ts +2 -0
- package/dist/tests/coinduction/coinduction.test.d.ts.map +1 -0
- package/dist/tests/coinduction/coinduction.test.js +217 -0
- package/dist/tests/coinduction/coinduction.test.js.map +1 -0
- package/dist/tests/combinators-ski/combinators-ski.test.d.ts +2 -0
- package/dist/tests/combinators-ski/combinators-ski.test.d.ts.map +1 -0
- package/dist/tests/combinators-ski/combinators-ski.test.js +211 -0
- package/dist/tests/combinators-ski/combinators-ski.test.js.map +1 -0
- package/dist/tests/constructive-reals/constructive-reals.test.d.ts +2 -0
- package/dist/tests/constructive-reals/constructive-reals.test.d.ts.map +1 -0
- package/dist/tests/constructive-reals/constructive-reals.test.js +357 -0
- package/dist/tests/constructive-reals/constructive-reals.test.js.map +1 -0
- package/dist/tests/game-semantics/game-semantics.test.d.ts +2 -0
- package/dist/tests/game-semantics/game-semantics.test.d.ts.map +1 -0
- package/dist/tests/game-semantics/game-semantics.test.js +143 -0
- package/dist/tests/game-semantics/game-semantics.test.js.map +1 -0
- package/dist/tests/higher-order-unify/ho-unify.test.d.ts +2 -0
- package/dist/tests/higher-order-unify/ho-unify.test.d.ts.map +1 -0
- package/dist/tests/higher-order-unify/ho-unify.test.js +264 -0
- package/dist/tests/higher-order-unify/ho-unify.test.js.map +1 -0
- package/dist/tests/integration/cross-modules.test.d.ts +8 -0
- package/dist/tests/integration/cross-modules.test.d.ts.map +1 -0
- package/dist/tests/integration/cross-modules.test.js +668 -0
- package/dist/tests/integration/cross-modules.test.js.map +1 -0
- package/dist/tests/nbe/nbe.test.d.ts +2 -0
- package/dist/tests/nbe/nbe.test.d.ts.map +1 -0
- package/dist/tests/nbe/nbe.test.js +121 -0
- package/dist/tests/nbe/nbe.test.js.map +1 -0
- package/dist/tests/profile-bridge/translations.test.d.ts +2 -0
- package/dist/tests/profile-bridge/translations.test.d.ts.map +1 -0
- package/dist/tests/profile-bridge/translations.test.js +266 -0
- package/dist/tests/profile-bridge/translations.test.js.map +1 -0
- package/dist/tests/proof-nets/proof-nets.test.d.ts +2 -0
- package/dist/tests/proof-nets/proof-nets.test.d.ts.map +1 -0
- package/dist/tests/proof-nets/proof-nets.test.js +263 -0
- package/dist/tests/proof-nets/proof-nets.test.js.map +1 -0
- package/dist/tests/tableau-framework/tableau.test.d.ts +2 -0
- package/dist/tests/tableau-framework/tableau.test.d.ts.map +1 -0
- package/dist/tests/tableau-framework/tableau.test.js +196 -0
- package/dist/tests/tableau-framework/tableau.test.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constructive-reals/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/game-semantics/convert.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAQnE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,aAAa,CAarD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Conversión IPCFormula ↔ IntuitFormula
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Reutilizamos el prover NJ existente (`profiles/intuitionistic-nj`)
|
|
7
|
+
// como oráculo de validez para certificar "existe estrategia
|
|
8
|
+
// ganadora". Por el teorema de Lorenzen-Felscher: P tiene
|
|
9
|
+
// estrategia ganadora en el juego dialógico sobre φ sii φ es
|
|
10
|
+
// demostrable en NJ (equivalentemente, válida en IPC).
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.toIntuit = toIntuit;
|
|
13
|
+
const intuitionistic_nj_1 = require("../profiles/intuitionistic-nj");
|
|
14
|
+
function toIntuit(f) {
|
|
15
|
+
switch (f.kind) {
|
|
16
|
+
case 'atom':
|
|
17
|
+
return (0, intuitionistic_nj_1.atom)(f.name);
|
|
18
|
+
case 'bottom':
|
|
19
|
+
return (0, intuitionistic_nj_1.bottom)();
|
|
20
|
+
case 'and':
|
|
21
|
+
return (0, intuitionistic_nj_1.and)(toIntuit(f.left), toIntuit(f.right));
|
|
22
|
+
case 'or':
|
|
23
|
+
return (0, intuitionistic_nj_1.or)(toIntuit(f.left), toIntuit(f.right));
|
|
24
|
+
case 'implies':
|
|
25
|
+
return (0, intuitionistic_nj_1.implies)(toIntuit(f.left), toIntuit(f.right));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=convert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/game-semantics/convert.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,wCAAwC;AACxC,+DAA+D;AAC/D,EAAE;AACF,qEAAqE;AACrE,6DAA6D;AAC7D,0DAA0D;AAC1D,6DAA6D;AAC7D,uDAAuD;;AAYvD,4BAaC;AAtBD,qEAMuC;AAGvC,SAAgB,QAAQ,CAAC,CAAa;IACpC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,IAAA,wBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACxB,KAAK,QAAQ;YACX,OAAO,IAAA,0BAAQ,GAAE,CAAC;QACpB,KAAK,KAAK;YACR,OAAO,IAAA,uBAAK,EAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACpD,KAAK,IAAI;YACP,OAAO,IAAA,sBAAI,EAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,KAAK,SAAS;YACZ,OAAO,IAAA,2BAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type { IPCFormula, Player, Move, GameState } from './types';
|
|
2
|
+
export { ipcAtom, ipcBottom, ipcAnd, ipcOr, ipcImplies, ipcNot, ipcKey, ipcEquals, ipcToString, } from './types';
|
|
3
|
+
export { winningStrategy, play, traceToString } from './strategy';
|
|
4
|
+
export type { WinningStrategyResult, PlayResult } from './strategy';
|
|
5
|
+
export { toIntuit } from './convert';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/game-semantics/index.ts"],"names":[],"mappings":"AASA,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,UAAU,EACV,MAAM,EACN,MAAM,EACN,SAAS,EACT,WAAW,GACZ,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Game semantics IPC — Punto de entrada público
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Juegos dialógicos (Lorenzen-Felscher) para Intuitionistic
|
|
7
|
+
// Propositional Calculus. Una fórmula φ es válida en IPC sii el
|
|
8
|
+
// Proponente tiene estrategia ganadora en el juego dialógico
|
|
9
|
+
// sobre φ.
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.toIntuit = exports.traceToString = exports.play = exports.winningStrategy = exports.ipcToString = exports.ipcEquals = exports.ipcKey = exports.ipcNot = exports.ipcImplies = exports.ipcOr = exports.ipcAnd = exports.ipcBottom = exports.ipcAtom = void 0;
|
|
12
|
+
var types_1 = require("./types");
|
|
13
|
+
Object.defineProperty(exports, "ipcAtom", { enumerable: true, get: function () { return types_1.ipcAtom; } });
|
|
14
|
+
Object.defineProperty(exports, "ipcBottom", { enumerable: true, get: function () { return types_1.ipcBottom; } });
|
|
15
|
+
Object.defineProperty(exports, "ipcAnd", { enumerable: true, get: function () { return types_1.ipcAnd; } });
|
|
16
|
+
Object.defineProperty(exports, "ipcOr", { enumerable: true, get: function () { return types_1.ipcOr; } });
|
|
17
|
+
Object.defineProperty(exports, "ipcImplies", { enumerable: true, get: function () { return types_1.ipcImplies; } });
|
|
18
|
+
Object.defineProperty(exports, "ipcNot", { enumerable: true, get: function () { return types_1.ipcNot; } });
|
|
19
|
+
Object.defineProperty(exports, "ipcKey", { enumerable: true, get: function () { return types_1.ipcKey; } });
|
|
20
|
+
Object.defineProperty(exports, "ipcEquals", { enumerable: true, get: function () { return types_1.ipcEquals; } });
|
|
21
|
+
Object.defineProperty(exports, "ipcToString", { enumerable: true, get: function () { return types_1.ipcToString; } });
|
|
22
|
+
var strategy_1 = require("./strategy");
|
|
23
|
+
Object.defineProperty(exports, "winningStrategy", { enumerable: true, get: function () { return strategy_1.winningStrategy; } });
|
|
24
|
+
Object.defineProperty(exports, "play", { enumerable: true, get: function () { return strategy_1.play; } });
|
|
25
|
+
Object.defineProperty(exports, "traceToString", { enumerable: true, get: function () { return strategy_1.traceToString; } });
|
|
26
|
+
var convert_1 = require("./convert");
|
|
27
|
+
Object.defineProperty(exports, "toIntuit", { enumerable: true, get: function () { return convert_1.toIntuit; } });
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/game-semantics/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,+DAA+D;AAC/D,EAAE;AACF,4DAA4D;AAC5D,gEAAgE;AAChE,6DAA6D;AAC7D,WAAW;;;AAGX,iCAUiB;AATf,gGAAA,OAAO,OAAA;AACP,kGAAA,SAAS,OAAA;AACT,+FAAA,MAAM,OAAA;AACN,8FAAA,KAAK,OAAA;AACL,mGAAA,UAAU,OAAA;AACV,+FAAA,MAAM,OAAA;AACN,+FAAA,MAAM,OAAA;AACN,kGAAA,SAAS,OAAA;AACT,oGAAA,WAAW,OAAA;AAGb,uCAAkE;AAAzD,2GAAA,eAAe,OAAA;AAAE,gGAAA,IAAI,OAAA;AAAE,yGAAA,aAAa,OAAA;AAG7C,qCAAqC;AAA5B,mGAAA,QAAQ,OAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { GameState, IPCFormula, Move, Player } from './types';
|
|
2
|
+
export interface WinningStrategyResult {
|
|
3
|
+
exists: boolean;
|
|
4
|
+
/** Función estrategia: dado un estado, devuelve la próxima movida del jugador en turno. */
|
|
5
|
+
strategy?: (state: GameState) => Move;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Decide si el Proponente tiene estrategia ganadora sobre `phi`
|
|
9
|
+
* (equivalente a validez en IPC). Si la tiene, retorna además
|
|
10
|
+
* una estrategia computable.
|
|
11
|
+
*/
|
|
12
|
+
export declare function winningStrategy(phi: IPCFormula): WinningStrategyResult;
|
|
13
|
+
export interface PlayResult {
|
|
14
|
+
winner: Player;
|
|
15
|
+
trace: GameState[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Simula una partida con `phi` como tesis del Proponente y una
|
|
19
|
+
* secuencia fija de movidas del Oponente. El Proponente juega
|
|
20
|
+
* según la estrategia (si existe); si no, el Proponente pierde
|
|
21
|
+
* apenas la fórmula falla a ser válida.
|
|
22
|
+
*
|
|
23
|
+
* Diseño:
|
|
24
|
+
* - El juego avanza por *rounds*: O ataca/elige, luego P
|
|
25
|
+
* defiende/elige.
|
|
26
|
+
* - El estado evoluciona reescribiendo `current` (la fórmula
|
|
27
|
+
* bajo defensa actual) y `context` (las concesiones O).
|
|
28
|
+
* - La partida termina cuando se llega a un átomo en `current`
|
|
29
|
+
* o a `⊥`: P gana si el átomo está en `context` (regla
|
|
30
|
+
* atómica); P pierde si llega a `⊥` sin contexto contradictorio.
|
|
31
|
+
*/
|
|
32
|
+
export declare function play(phi: IPCFormula, opponentMoves: Move[]): PlayResult;
|
|
33
|
+
export declare function traceToString(trace: GameState[]): string;
|
|
34
|
+
//# sourceMappingURL=strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/game-semantics/strategy.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAkC,MAAM,SAAS,CAAC;AAkC9F,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACvC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,qBAAqB,CA6CtE;AAID,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,UAAU,CAkEvE;AA4ID,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAOxD"}
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// Game semantics IPC — Búsqueda de estrategia ganadora
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Implementación basada en juegos dialógicos al estilo Felscher
|
|
7
|
+
// (1985), versión intuicionista. La validez en IPC equivale a la
|
|
8
|
+
// existencia de una estrategia ganadora del Proponente; esto es
|
|
9
|
+
// teorema clásico (Lorenzen-Felscher).
|
|
10
|
+
//
|
|
11
|
+
// Para la *decisión* (¿existe estrategia ganadora?) usamos como
|
|
12
|
+
// oráculo el prover NJ del módulo `profiles/intuitionistic-nj` —
|
|
13
|
+
// está probado-en-tests y es completo para IPC proposicional.
|
|
14
|
+
//
|
|
15
|
+
// Para la *estrategia explícita* hacemos minimax sobre el árbol
|
|
16
|
+
// de juego: P intenta forzar conclusión atómica disponible en su
|
|
17
|
+
// contexto; O ataca cada conector accesible. La estrategia
|
|
18
|
+
// resultante es una función del estado a la próxima movida.
|
|
19
|
+
//
|
|
20
|
+
// Esto no pretende ser un solver de tableau completo: cuando el
|
|
21
|
+
// oráculo dice "no hay estrategia", devolvemos `{ exists: false }`
|
|
22
|
+
// sin función. Cuando dice "sí hay", retornamos una estrategia
|
|
23
|
+
// computable basada en heurísticas dialógicas estándar:
|
|
24
|
+
//
|
|
25
|
+
// - Si P debe defender `φ ∧ ψ`, responde al ataque del lado
|
|
26
|
+
// elegido por O.
|
|
27
|
+
// - Si P debe defender `φ ∨ ψ`, elige el disyunto demostrable.
|
|
28
|
+
// - Si P debe defender `φ → ψ` (tras ataque O con φ), defiende
|
|
29
|
+
// ψ con φ añadida al contexto.
|
|
30
|
+
// - Si P debe defender un átomo, sólo gana si el átomo está en
|
|
31
|
+
// contexto (regla atómica intuicionista).
|
|
32
|
+
// - Si P debe defender `⊥`, pierde salvo que pueda re-atacar
|
|
33
|
+
// una aserción O en contexto cuya cabeza sea ⊥-derivable.
|
|
34
|
+
//
|
|
35
|
+
// La movida producida por la estrategia es válida (los tests lo
|
|
36
|
+
// chequean a través de `play`).
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.winningStrategy = winningStrategy;
|
|
39
|
+
exports.play = play;
|
|
40
|
+
exports.traceToString = traceToString;
|
|
41
|
+
const intuitionistic_nj_1 = require("../profiles/intuitionistic-nj");
|
|
42
|
+
const convert_1 = require("./convert");
|
|
43
|
+
const types_1 = require("./types");
|
|
44
|
+
// ---------- decisor de validez (oráculo) ----------
|
|
45
|
+
/**
|
|
46
|
+
* `phi` es válida en IPC sii NJ la prueba desde contexto vacío.
|
|
47
|
+
* Memoizado por clave estructural para que la estrategia (que la
|
|
48
|
+
* consulta muchas veces) sea barata.
|
|
49
|
+
*/
|
|
50
|
+
const validityCache = new Map();
|
|
51
|
+
function isIPCValidCached(phi) {
|
|
52
|
+
const k = (0, types_1.ipcKey)(phi);
|
|
53
|
+
const hit = validityCache.get(k);
|
|
54
|
+
if (hit !== undefined)
|
|
55
|
+
return hit;
|
|
56
|
+
const proof = (0, intuitionistic_nj_1.proveIntuitionistically)([], (0, convert_1.toIntuit)(phi));
|
|
57
|
+
const ok = proof !== null;
|
|
58
|
+
validityCache.set(k, ok);
|
|
59
|
+
return ok;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* `phi` se sigue de `ctx` en IPC sii `(ctx_1 → ... → ctx_n → phi)`
|
|
63
|
+
* es válida. Usamos el mismo oráculo.
|
|
64
|
+
*/
|
|
65
|
+
function ctxEntails(ctx, phi) {
|
|
66
|
+
let cur = phi;
|
|
67
|
+
for (let i = ctx.length - 1; i >= 0; i--) {
|
|
68
|
+
cur = { kind: 'implies', left: ctx[i], right: cur };
|
|
69
|
+
}
|
|
70
|
+
return isIPCValidCached(cur);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Decide si el Proponente tiene estrategia ganadora sobre `phi`
|
|
74
|
+
* (equivalente a validez en IPC). Si la tiene, retorna además
|
|
75
|
+
* una estrategia computable.
|
|
76
|
+
*/
|
|
77
|
+
function winningStrategy(phi) {
|
|
78
|
+
if (!isIPCValidCached(phi))
|
|
79
|
+
return { exists: false };
|
|
80
|
+
// La estrategia heurística decide la próxima movida según la
|
|
81
|
+
// forma de `state.current` y el `context` de aserciones O.
|
|
82
|
+
const strategy = (state) => {
|
|
83
|
+
const { current, context } = state;
|
|
84
|
+
switch (current.kind) {
|
|
85
|
+
case 'and': {
|
|
86
|
+
// Defensa de ∧ por P: elige el lado que sigue siendo
|
|
87
|
+
// válido bajo el contexto (en IPC, ambos lados deben
|
|
88
|
+
// serlo, pero respetamos la forma del juego).
|
|
89
|
+
if (ctxEntails(context, current.left)) {
|
|
90
|
+
return { kind: 'choose-and', side: 'left' };
|
|
91
|
+
}
|
|
92
|
+
return { kind: 'choose-and', side: 'right' };
|
|
93
|
+
}
|
|
94
|
+
case 'or': {
|
|
95
|
+
// Defensa de ∨ por P: elegir el disyunto demostrable.
|
|
96
|
+
if (ctxEntails(context, current.left)) {
|
|
97
|
+
return { kind: 'choose-or', side: 'left' };
|
|
98
|
+
}
|
|
99
|
+
return { kind: 'choose-or', side: 'right' };
|
|
100
|
+
}
|
|
101
|
+
case 'implies': {
|
|
102
|
+
// Defensa de → por P: P espera que O ataque (atacar →
|
|
103
|
+
// es la única jugada disponible al iniciar la defensa).
|
|
104
|
+
return { kind: 'attack-implies' };
|
|
105
|
+
}
|
|
106
|
+
case 'atom': {
|
|
107
|
+
// Defensa atómica: en IPC P puede afirmar un átomo sólo
|
|
108
|
+
// si O lo concedió. Si no, no hay movida válida (esto
|
|
109
|
+
// sólo ocurre fuera de estado ganador y no se invoca en
|
|
110
|
+
// partidas bien-formadas; devolvemos un sentinel).
|
|
111
|
+
return { kind: 'defend-bottom' };
|
|
112
|
+
}
|
|
113
|
+
case 'bottom': {
|
|
114
|
+
// P no puede defender ⊥ directamente; el sentinel
|
|
115
|
+
// marca el caso para que `play` lo decida.
|
|
116
|
+
return { kind: 'defend-bottom' };
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
return { exists: true, strategy };
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Simula una partida con `phi` como tesis del Proponente y una
|
|
124
|
+
* secuencia fija de movidas del Oponente. El Proponente juega
|
|
125
|
+
* según la estrategia (si existe); si no, el Proponente pierde
|
|
126
|
+
* apenas la fórmula falla a ser válida.
|
|
127
|
+
*
|
|
128
|
+
* Diseño:
|
|
129
|
+
* - El juego avanza por *rounds*: O ataca/elige, luego P
|
|
130
|
+
* defiende/elige.
|
|
131
|
+
* - El estado evoluciona reescribiendo `current` (la fórmula
|
|
132
|
+
* bajo defensa actual) y `context` (las concesiones O).
|
|
133
|
+
* - La partida termina cuando se llega a un átomo en `current`
|
|
134
|
+
* o a `⊥`: P gana si el átomo está en `context` (regla
|
|
135
|
+
* atómica); P pierde si llega a `⊥` sin contexto contradictorio.
|
|
136
|
+
*/
|
|
137
|
+
function play(phi, opponentMoves) {
|
|
138
|
+
const trace = [];
|
|
139
|
+
let state = {
|
|
140
|
+
current: phi,
|
|
141
|
+
context: [],
|
|
142
|
+
history: [{ player: 'proponent', move: 'assert', formula: phi }],
|
|
143
|
+
};
|
|
144
|
+
trace.push(snapshot(state));
|
|
145
|
+
const valid = isIPCValidCached(phi);
|
|
146
|
+
const result = winningStrategy(phi);
|
|
147
|
+
let oppIdx = 0;
|
|
148
|
+
// Bucle de juego con cota dura para evitar loops por movidas mal
|
|
149
|
+
// formadas. 64 turnos cubren todos los tests pedagógicos.
|
|
150
|
+
for (let turn = 0; turn < 64; turn++) {
|
|
151
|
+
const cur = state.current;
|
|
152
|
+
// Caso terminal: átomo o bottom.
|
|
153
|
+
if (cur.kind === 'atom') {
|
|
154
|
+
// P gana si el átomo está literalmente en su contexto (regla
|
|
155
|
+
// atómica dialógica clásica) o si el contexto lo *implica*
|
|
156
|
+
// intuicionistamente — esto modela la cadena de re-ataques
|
|
157
|
+
// que en un juego con `E-rule` agotaríamos paso a paso.
|
|
158
|
+
const direct = state.context.some((c) => (0, types_1.ipcEquals)(c, cur));
|
|
159
|
+
const derived = !direct && ctxEntails(state.context, cur);
|
|
160
|
+
const winner = direct || derived ? 'proponent' : 'opponent';
|
|
161
|
+
return { winner, trace };
|
|
162
|
+
}
|
|
163
|
+
if (cur.kind === 'bottom') {
|
|
164
|
+
// P debe defender ⊥. Sólo gana si su contexto contiene una
|
|
165
|
+
// contradicción atómica (intuicionistamente). Mantenemos
|
|
166
|
+
// simple: P pierde — el caller orquesta el ataque sobre →
|
|
167
|
+
// antes de llegar a ⊥ aislado.
|
|
168
|
+
return { winner: 'opponent', trace };
|
|
169
|
+
}
|
|
170
|
+
// Si la fórmula no es válida, P no tiene estrategia: el
|
|
171
|
+
// Oponente gana incondicionalmente.
|
|
172
|
+
if (!valid) {
|
|
173
|
+
return { winner: 'opponent', trace };
|
|
174
|
+
}
|
|
175
|
+
// Turno O: consumir movida pre-determinada o sintetizar una
|
|
176
|
+
// si la queue de O se acabó (default = primer ataque legal).
|
|
177
|
+
const oMove = oppIdx < opponentMoves.length ? opponentMoves[oppIdx] : defaultOpponentMove(cur);
|
|
178
|
+
if (!oMove) {
|
|
179
|
+
// O no tiene ataque legal contra el estado actual: P gana.
|
|
180
|
+
return { winner: 'proponent', trace };
|
|
181
|
+
}
|
|
182
|
+
oppIdx++;
|
|
183
|
+
state = applyOpponentMove(state, oMove);
|
|
184
|
+
trace.push(snapshot(state));
|
|
185
|
+
// Tras la movida O, P responde con la estrategia.
|
|
186
|
+
if (!result.strategy) {
|
|
187
|
+
return { winner: 'opponent', trace };
|
|
188
|
+
}
|
|
189
|
+
const pMove = result.strategy(state);
|
|
190
|
+
state = applyProponentMove(state, pMove);
|
|
191
|
+
trace.push(snapshot(state));
|
|
192
|
+
}
|
|
193
|
+
// Cota agotada: empate técnico contado como derrota P.
|
|
194
|
+
return { winner: 'opponent', trace };
|
|
195
|
+
}
|
|
196
|
+
// ---------- Helpers de aplicación de movidas ----------
|
|
197
|
+
function snapshot(s) {
|
|
198
|
+
return {
|
|
199
|
+
current: s.current,
|
|
200
|
+
context: [...s.context],
|
|
201
|
+
history: s.history.map((h) => ({ ...h })),
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
function defaultOpponentMove(cur) {
|
|
205
|
+
switch (cur.kind) {
|
|
206
|
+
case 'and':
|
|
207
|
+
return { kind: 'choose-and', side: 'left' };
|
|
208
|
+
case 'implies':
|
|
209
|
+
return { kind: 'attack-implies' };
|
|
210
|
+
case 'or':
|
|
211
|
+
// O no ataca ∨ directamente en este modelo simplificado:
|
|
212
|
+
// P defiende eligiendo lado. Devolver undefined para que
|
|
213
|
+
// la estrategia P decida.
|
|
214
|
+
return undefined;
|
|
215
|
+
case 'atom':
|
|
216
|
+
case 'bottom':
|
|
217
|
+
return undefined;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
function applyOpponentMove(state, move) {
|
|
221
|
+
const { current, context, history } = state;
|
|
222
|
+
switch (move.kind) {
|
|
223
|
+
case 'choose-and': {
|
|
224
|
+
if (current.kind !== 'and')
|
|
225
|
+
return state;
|
|
226
|
+
const chosen = move.side === 'left' ? current.left : current.right;
|
|
227
|
+
return {
|
|
228
|
+
current: chosen,
|
|
229
|
+
context: [...context],
|
|
230
|
+
history: [
|
|
231
|
+
...history,
|
|
232
|
+
{
|
|
233
|
+
player: 'opponent',
|
|
234
|
+
move: `attack-and-${move.side}`,
|
|
235
|
+
formula: chosen,
|
|
236
|
+
},
|
|
237
|
+
],
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
case 'attack-implies': {
|
|
241
|
+
if (current.kind !== 'implies')
|
|
242
|
+
return state;
|
|
243
|
+
// O concede el antecedente y exige el consecuente.
|
|
244
|
+
return {
|
|
245
|
+
current: current.right,
|
|
246
|
+
context: [...context, current.left],
|
|
247
|
+
history: [
|
|
248
|
+
...history,
|
|
249
|
+
{
|
|
250
|
+
player: 'opponent',
|
|
251
|
+
move: 'attack-implies',
|
|
252
|
+
formula: current.left,
|
|
253
|
+
},
|
|
254
|
+
],
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
// O no ejecuta choose-or ni defend-bottom; si llega aquí, ignorar.
|
|
258
|
+
case 'choose-or':
|
|
259
|
+
case 'defend-bottom':
|
|
260
|
+
return state;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function applyProponentMove(state, move) {
|
|
264
|
+
const { current, context, history } = state;
|
|
265
|
+
switch (move.kind) {
|
|
266
|
+
case 'choose-or': {
|
|
267
|
+
if (current.kind !== 'or')
|
|
268
|
+
return state;
|
|
269
|
+
const chosen = move.side === 'left' ? current.left : current.right;
|
|
270
|
+
return {
|
|
271
|
+
current: chosen,
|
|
272
|
+
context: [...context],
|
|
273
|
+
history: [
|
|
274
|
+
...history,
|
|
275
|
+
{
|
|
276
|
+
player: 'proponent',
|
|
277
|
+
move: `defend-or-${move.side}`,
|
|
278
|
+
formula: chosen,
|
|
279
|
+
},
|
|
280
|
+
],
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
case 'choose-and': {
|
|
284
|
+
// P responde al ataque ∧ con el lado pedido. Ya quedó
|
|
285
|
+
// aplicado por la movida O; aquí sólo lo registramos.
|
|
286
|
+
return {
|
|
287
|
+
...state,
|
|
288
|
+
history: [
|
|
289
|
+
...history,
|
|
290
|
+
{
|
|
291
|
+
player: 'proponent',
|
|
292
|
+
move: `defend-and-${move.side}`,
|
|
293
|
+
formula: current,
|
|
294
|
+
},
|
|
295
|
+
],
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
case 'attack-implies': {
|
|
299
|
+
// P, al recibir una implicación como tesis, transita al
|
|
300
|
+
// consecuente y guarda el antecedente. Esta movida modela
|
|
301
|
+
// a P "defendiendo" su →: él anuncia que está listo para
|
|
302
|
+
// probar el consecuente bajo el antecedente concedido.
|
|
303
|
+
if (current.kind !== 'implies') {
|
|
304
|
+
return {
|
|
305
|
+
...state,
|
|
306
|
+
history: [...history, { player: 'proponent', move: 'attack-implies', formula: current }],
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
return {
|
|
310
|
+
current: current.right,
|
|
311
|
+
context: [...context, current.left],
|
|
312
|
+
history: [
|
|
313
|
+
...history,
|
|
314
|
+
{
|
|
315
|
+
player: 'proponent',
|
|
316
|
+
move: 'defend-implies',
|
|
317
|
+
formula: current.right,
|
|
318
|
+
},
|
|
319
|
+
],
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
case 'defend-bottom': {
|
|
323
|
+
return {
|
|
324
|
+
...state,
|
|
325
|
+
history: [...history, { player: 'proponent', move: 'defend-bottom', formula: current }],
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
// ---------- pretty-print de trace (útil para tests pedagógicos) ----------
|
|
331
|
+
function traceToString(trace) {
|
|
332
|
+
return trace
|
|
333
|
+
.map((s, i) => `[${i}] cur=${(0, types_1.ipcToString)(s.current)} ctx={${s.context.map(types_1.ipcToString).join(', ')}}`)
|
|
334
|
+
.join('\n');
|
|
335
|
+
}
|
|
336
|
+
//# sourceMappingURL=strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../src/game-semantics/strategy.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,uDAAuD;AACvD,+DAA+D;AAC/D,EAAE;AACF,gEAAgE;AAChE,iEAAiE;AACjE,gEAAgE;AAChE,uCAAuC;AACvC,EAAE;AACF,gEAAgE;AAChE,iEAAiE;AACjE,8DAA8D;AAC9D,EAAE;AACF,gEAAgE;AAChE,iEAAiE;AACjE,2DAA2D;AAC3D,4DAA4D;AAC5D,EAAE;AACF,gEAAgE;AAChE,mEAAmE;AACnE,+DAA+D;AAC/D,wDAAwD;AACxD,EAAE;AACF,8DAA8D;AAC9D,qBAAqB;AACrB,iEAAiE;AACjE,iEAAiE;AACjE,mCAAmC;AACnC,iEAAiE;AACjE,8CAA8C;AAC9C,+DAA+D;AAC/D,8DAA8D;AAC9D,EAAE;AACF,gEAAgE;AAChE,gCAAgC;;AAiDhC,0CA6CC;AAwBD,oBAkEC;AA4ID,sCAOC;AAzUD,qEAAwE;AACxE,uCAAqC;AACrC,mCAA8F;AAE9F,qDAAqD;AAErD;;;;GAIG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,EAAmB,CAAC;AACjD,SAAS,gBAAgB,CAAC,GAAe;IACvC,MAAM,CAAC,GAAG,IAAA,cAAM,EAAC,GAAG,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAClC,MAAM,KAAK,GAAG,IAAA,2CAAuB,EAAC,EAAE,EAAE,IAAA,kBAAQ,EAAC,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,GAAG,KAAK,KAAK,IAAI,CAAC;IAC1B,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAiB,EAAE,GAAe;IACpD,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACtD,CAAC;IACD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAUD;;;;GAIG;AACH,SAAgB,eAAe,CAAC,GAAe;IAC7C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAErD,6DAA6D;IAC7D,2DAA2D;IAC3D,MAAM,QAAQ,GAAG,CAAC,KAAgB,EAAQ,EAAE;QAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACnC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,qDAAqD;gBACrD,qDAAqD;gBACrD,8CAA8C;gBAC9C,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC9C,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC/C,CAAC;YACD,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,sDAAsD;gBACtD,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC7C,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YAC9C,CAAC;YACD,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,sDAAsD;gBACtD,wDAAwD;gBACxD,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;YACpC,CAAC;YACD,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,wDAAwD;gBACxD,sDAAsD;gBACtD,wDAAwD;gBACxD,mDAAmD;gBACnD,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;YACnC,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,kDAAkD;gBAClD,2CAA2C;gBAC3C,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACpC,CAAC;AASD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,IAAI,CAAC,GAAe,EAAE,aAAqB;IACzD,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,IAAI,KAAK,GAAc;QACrB,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;KACjE,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAE5B,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,iEAAiE;IACjE,0DAA0D;IAC1D,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;QAE1B,iCAAiC;QACjC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACxB,6DAA6D;YAC7D,2DAA2D;YAC3D,2DAA2D;YAC3D,wDAAwD;YACxD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,CAAC,MAAM,IAAI,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAW,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC;YACpE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,2DAA2D;YAC3D,yDAAyD;YACzD,0DAA0D;YAC1D,+BAA+B;YAC/B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;QAED,wDAAwD;QACxD,oCAAoC;QACpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;QAED,4DAA4D;QAC5D,6DAA6D;QAC7D,MAAM,KAAK,GACT,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,2DAA2D;YAC3D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;QACD,MAAM,EAAE,CAAC;QACT,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5B,kDAAkD;QAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACvC,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,uDAAuD;IACvD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC;AAED,yDAAyD;AAEzD,SAAS,QAAQ,CAAC,CAAY;IAC5B,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAe;IAC1C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,KAAK;YACR,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC9C,KAAK,SAAS;YACZ,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;QACpC,KAAK,IAAI;YACP,yDAAyD;YACzD,yDAAyD;YACzD,0BAA0B;YAC1B,OAAO,SAAS,CAAC;QACnB,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAgB,EAAE,IAAU;IACrD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC5C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;gBAAE,OAAO,KAAK,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACnE,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;gBACrB,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV;wBACE,MAAM,EAAE,UAAU;wBAClB,IAAI,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE;wBAC/B,OAAO,EAAE,MAAM;qBAChB;iBACF;aACF,CAAC;QACJ,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAC7C,mDAAmD;YACnD,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,KAAK;gBACtB,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV;wBACE,MAAM,EAAE,UAAU;wBAClB,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,OAAO,CAAC,IAAI;qBACtB;iBACF;aACF,CAAC;QACJ,CAAC;QACD,mEAAmE;QACnE,KAAK,WAAW,CAAC;QACjB,KAAK,eAAe;YAClB,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAgB,EAAE,IAAU;IACtD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAC5C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACnE,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;gBACrB,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV;wBACE,MAAM,EAAE,WAAW;wBACnB,IAAI,EAAE,aAAa,IAAI,CAAC,IAAI,EAAE;wBAC9B,OAAO,EAAE,MAAM;qBAChB;iBACF;aACF,CAAC;QACJ,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,sDAAsD;YACtD,sDAAsD;YACtD,OAAO;gBACL,GAAG,KAAK;gBACR,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV;wBACE,MAAM,EAAE,WAAW;wBACnB,IAAI,EAAE,cAAc,IAAI,CAAC,IAAI,EAAE;wBAC/B,OAAO,EAAE,OAAO;qBACjB;iBACF;aACF,CAAC;QACJ,CAAC;QACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,wDAAwD;YACxD,0DAA0D;YAC1D,yDAAyD;YACzD,uDAAuD;YACvD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO;oBACL,GAAG,KAAK;oBACR,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;iBACzF,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,KAAK;gBACtB,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV;wBACE,MAAM,EAAE,WAAW;wBACnB,IAAI,EAAE,gBAAgB;wBACtB,OAAO,EAAE,OAAO,CAAC,KAAK;qBACvB;iBACF;aACF,CAAC;QACJ,CAAC;QACD,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,OAAO;gBACL,GAAG,KAAK;gBACR,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;aACxF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,4EAA4E;AAE5E,SAAgB,aAAa,CAAC,KAAkB;IAC9C,OAAO,KAAK;SACT,GAAG,CACF,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,IAAI,CAAC,SAAS,IAAA,mBAAW,EAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxF;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export type IPCFormula = {
|
|
2
|
+
kind: 'atom';
|
|
3
|
+
name: string;
|
|
4
|
+
} | {
|
|
5
|
+
kind: 'and';
|
|
6
|
+
left: IPCFormula;
|
|
7
|
+
right: IPCFormula;
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'or';
|
|
10
|
+
left: IPCFormula;
|
|
11
|
+
right: IPCFormula;
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'implies';
|
|
14
|
+
left: IPCFormula;
|
|
15
|
+
right: IPCFormula;
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'bottom';
|
|
18
|
+
};
|
|
19
|
+
export type Player = 'proponent' | 'opponent';
|
|
20
|
+
/**
|
|
21
|
+
* Movida del juego dialógico:
|
|
22
|
+
* - `choose-and` → ataque a `∧`: O elige qué conjunto pedir.
|
|
23
|
+
* - `choose-or` → defensa de `∨`: P elige qué disyunto afirmar.
|
|
24
|
+
* - `attack-implies` → ataque a `→`: O asume el antecedente y
|
|
25
|
+
* pide el consecuente.
|
|
26
|
+
* - `defend-bottom` → "no se puede defender ⊥"; usada
|
|
27
|
+
* simbólicamente cuando P queda obligado a defender `⊥`.
|
|
28
|
+
*/
|
|
29
|
+
export type Move = {
|
|
30
|
+
kind: 'choose-and';
|
|
31
|
+
side: 'left' | 'right';
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'choose-or';
|
|
34
|
+
side: 'left' | 'right';
|
|
35
|
+
} | {
|
|
36
|
+
kind: 'attack-implies';
|
|
37
|
+
} | {
|
|
38
|
+
kind: 'defend-bottom';
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Estado del juego pedido por el spec. `current` es la fórmula
|
|
42
|
+
* en juego ahora mismo; `context` son las aserciones del Oponente
|
|
43
|
+
* disponibles para que P las use; `history` traza las movidas.
|
|
44
|
+
*/
|
|
45
|
+
export interface GameState {
|
|
46
|
+
current: IPCFormula;
|
|
47
|
+
context: IPCFormula[];
|
|
48
|
+
history: Array<{
|
|
49
|
+
player: Player;
|
|
50
|
+
move: string;
|
|
51
|
+
formula?: IPCFormula;
|
|
52
|
+
}>;
|
|
53
|
+
}
|
|
54
|
+
export declare const ipcAtom: (name: string) => IPCFormula;
|
|
55
|
+
export declare const ipcBottom: () => IPCFormula;
|
|
56
|
+
export declare const ipcAnd: (left: IPCFormula, right: IPCFormula) => IPCFormula;
|
|
57
|
+
export declare const ipcOr: (left: IPCFormula, right: IPCFormula) => IPCFormula;
|
|
58
|
+
export declare const ipcImplies: (left: IPCFormula, right: IPCFormula) => IPCFormula;
|
|
59
|
+
/** Azúcar: `¬φ` = `φ → ⊥`. Útil para tests pedagógicos. */
|
|
60
|
+
export declare const ipcNot: (arg: IPCFormula) => IPCFormula;
|
|
61
|
+
export declare function ipcKey(f: IPCFormula): string;
|
|
62
|
+
export declare function ipcEquals(a: IPCFormula, b: IPCFormula): boolean;
|
|
63
|
+
export declare function ipcToString(f: IPCFormula): string;
|
|
64
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/game-semantics/types.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvB,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,MAAM,IAAI,GACZ;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAC1B;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CAAC;AAE9B;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;CACxE;AAID,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,KAAG,UAAsC,CAAC;AAC9E,eAAO,MAAM,SAAS,QAAO,UAAkC,CAAC;AAChE,eAAO,MAAM,MAAM,GAAI,MAAM,UAAU,EAAE,OAAO,UAAU,KAAG,UAI3D,CAAC;AACH,eAAO,MAAM,KAAK,GAAI,MAAM,UAAU,EAAE,OAAO,UAAU,KAAG,UAI1D,CAAC;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,UAAU,EAAE,OAAO,UAAU,KAAG,UAI/D,CAAC;AACH,2DAA2D;AAC3D,eAAO,MAAM,MAAM,GAAI,KAAK,UAAU,KAAG,UAA0C,CAAC;AAIpF,wBAAgB,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAa5C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAE/D;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAajD"}
|