@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.
Files changed (158) hide show
  1. package/README.md +78 -37
  2. package/dist/coinduction/index.d.ts +136 -0
  3. package/dist/coinduction/index.d.ts.map +1 -0
  4. package/dist/coinduction/index.js +318 -0
  5. package/dist/coinduction/index.js.map +1 -0
  6. package/dist/combinators-ski/abstract.d.ts +5 -0
  7. package/dist/combinators-ski/abstract.d.ts.map +1 -0
  8. package/dist/combinators-ski/abstract.js +88 -0
  9. package/dist/combinators-ski/abstract.js.map +1 -0
  10. package/dist/combinators-ski/index.d.ts +6 -0
  11. package/dist/combinators-ski/index.d.ts.map +1 -0
  12. package/dist/combinators-ski/index.js +30 -0
  13. package/dist/combinators-ski/index.js.map +1 -0
  14. package/dist/combinators-ski/reduce.d.ts +10 -0
  15. package/dist/combinators-ski/reduce.d.ts.map +1 -0
  16. package/dist/combinators-ski/reduce.js +118 -0
  17. package/dist/combinators-ski/reduce.js.map +1 -0
  18. package/dist/combinators-ski/types.d.ts +23 -0
  19. package/dist/combinators-ski/types.d.ts.map +1 -0
  20. package/dist/combinators-ski/types.js +102 -0
  21. package/dist/combinators-ski/types.js.map +1 -0
  22. package/dist/constructive-reals/index.d.ts +132 -0
  23. package/dist/constructive-reals/index.d.ts.map +1 -0
  24. package/dist/constructive-reals/index.js +723 -0
  25. package/dist/constructive-reals/index.js.map +1 -0
  26. package/dist/game-semantics/convert.d.ts +4 -0
  27. package/dist/game-semantics/convert.d.ts.map +1 -0
  28. package/dist/game-semantics/convert.js +28 -0
  29. package/dist/game-semantics/convert.js.map +1 -0
  30. package/dist/game-semantics/index.d.ts +6 -0
  31. package/dist/game-semantics/index.d.ts.map +1 -0
  32. package/dist/game-semantics/index.js +28 -0
  33. package/dist/game-semantics/index.js.map +1 -0
  34. package/dist/game-semantics/strategy.d.ts +34 -0
  35. package/dist/game-semantics/strategy.d.ts.map +1 -0
  36. package/dist/game-semantics/strategy.js +336 -0
  37. package/dist/game-semantics/strategy.js.map +1 -0
  38. package/dist/game-semantics/types.d.ts +64 -0
  39. package/dist/game-semantics/types.d.ts.map +1 -0
  40. package/dist/game-semantics/types.js +78 -0
  41. package/dist/game-semantics/types.js.map +1 -0
  42. package/dist/higher-order-unify/index.d.ts +5 -0
  43. package/dist/higher-order-unify/index.d.ts.map +1 -0
  44. package/dist/higher-order-unify/index.js +27 -0
  45. package/dist/higher-order-unify/index.js.map +1 -0
  46. package/dist/higher-order-unify/normalize.d.ts +14 -0
  47. package/dist/higher-order-unify/normalize.d.ts.map +1 -0
  48. package/dist/higher-order-unify/normalize.js +191 -0
  49. package/dist/higher-order-unify/normalize.js.map +1 -0
  50. package/dist/higher-order-unify/pattern.d.ts +4 -0
  51. package/dist/higher-order-unify/pattern.d.ts.map +1 -0
  52. package/dist/higher-order-unify/pattern.js +70 -0
  53. package/dist/higher-order-unify/pattern.js.map +1 -0
  54. package/dist/higher-order-unify/types.d.ts +19 -0
  55. package/dist/higher-order-unify/types.d.ts.map +1 -0
  56. package/dist/higher-order-unify/types.js +14 -0
  57. package/dist/higher-order-unify/types.js.map +1 -0
  58. package/dist/higher-order-unify/unify.d.ts +5 -0
  59. package/dist/higher-order-unify/unify.d.ts.map +1 -0
  60. package/dist/higher-order-unify/unify.js +306 -0
  61. package/dist/higher-order-unify/unify.js.map +1 -0
  62. package/dist/index.d.ts +10 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +40 -1
  65. package/dist/index.js.map +1 -1
  66. package/dist/nbe/index.d.ts +3 -0
  67. package/dist/nbe/index.d.ts.map +1 -0
  68. package/dist/nbe/index.js +25 -0
  69. package/dist/nbe/index.js.map +1 -0
  70. package/dist/nbe/nbe.d.ts +7 -0
  71. package/dist/nbe/nbe.d.ts.map +1 -0
  72. package/dist/nbe/nbe.js +118 -0
  73. package/dist/nbe/nbe.js.map +1 -0
  74. package/dist/nbe/types.d.ts +54 -0
  75. package/dist/nbe/types.d.ts.map +1 -0
  76. package/dist/nbe/types.js +117 -0
  77. package/dist/nbe/types.js.map +1 -0
  78. package/dist/profile-bridge/index.d.ts +64 -0
  79. package/dist/profile-bridge/index.d.ts.map +1 -0
  80. package/dist/profile-bridge/index.js +328 -0
  81. package/dist/profile-bridge/index.js.map +1 -0
  82. package/dist/proof-nets/construct.d.ts +3 -0
  83. package/dist/proof-nets/construct.d.ts.map +1 -0
  84. package/dist/proof-nets/construct.js +85 -0
  85. package/dist/proof-nets/construct.js.map +1 -0
  86. package/dist/proof-nets/correctness.d.ts +3 -0
  87. package/dist/proof-nets/correctness.d.ts.map +1 -0
  88. package/dist/proof-nets/correctness.js +213 -0
  89. package/dist/proof-nets/correctness.js.map +1 -0
  90. package/dist/proof-nets/cut-elim.d.ts +9 -0
  91. package/dist/proof-nets/cut-elim.d.ts.map +1 -0
  92. package/dist/proof-nets/cut-elim.js +149 -0
  93. package/dist/proof-nets/cut-elim.js.map +1 -0
  94. package/dist/proof-nets/index.d.ts +6 -0
  95. package/dist/proof-nets/index.d.ts.map +1 -0
  96. package/dist/proof-nets/index.js +33 -0
  97. package/dist/proof-nets/index.js.map +1 -0
  98. package/dist/proof-nets/types.d.ts +36 -0
  99. package/dist/proof-nets/types.d.ts.map +1 -0
  100. package/dist/proof-nets/types.js +89 -0
  101. package/dist/proof-nets/types.js.map +1 -0
  102. package/dist/tableau-framework/TableauProver.d.ts +10 -0
  103. package/dist/tableau-framework/TableauProver.d.ts.map +1 -0
  104. package/dist/tableau-framework/TableauProver.js +118 -0
  105. package/dist/tableau-framework/TableauProver.js.map +1 -0
  106. package/dist/tableau-framework/index.d.ts +5 -0
  107. package/dist/tableau-framework/index.d.ts.map +1 -0
  108. package/dist/tableau-framework/index.js +11 -0
  109. package/dist/tableau-framework/index.js.map +1 -0
  110. package/dist/tableau-framework/propositional.d.ts +11 -0
  111. package/dist/tableau-framework/propositional.d.ts.map +1 -0
  112. package/dist/tableau-framework/propositional.js +143 -0
  113. package/dist/tableau-framework/propositional.js.map +1 -0
  114. package/dist/tableau-framework/types.d.ts +32 -0
  115. package/dist/tableau-framework/types.d.ts.map +1 -0
  116. package/dist/tableau-framework/types.js +6 -0
  117. package/dist/tableau-framework/types.js.map +1 -0
  118. package/dist/tests/coinduction/coinduction.test.d.ts +2 -0
  119. package/dist/tests/coinduction/coinduction.test.d.ts.map +1 -0
  120. package/dist/tests/coinduction/coinduction.test.js +217 -0
  121. package/dist/tests/coinduction/coinduction.test.js.map +1 -0
  122. package/dist/tests/combinators-ski/combinators-ski.test.d.ts +2 -0
  123. package/dist/tests/combinators-ski/combinators-ski.test.d.ts.map +1 -0
  124. package/dist/tests/combinators-ski/combinators-ski.test.js +211 -0
  125. package/dist/tests/combinators-ski/combinators-ski.test.js.map +1 -0
  126. package/dist/tests/constructive-reals/constructive-reals.test.d.ts +2 -0
  127. package/dist/tests/constructive-reals/constructive-reals.test.d.ts.map +1 -0
  128. package/dist/tests/constructive-reals/constructive-reals.test.js +357 -0
  129. package/dist/tests/constructive-reals/constructive-reals.test.js.map +1 -0
  130. package/dist/tests/game-semantics/game-semantics.test.d.ts +2 -0
  131. package/dist/tests/game-semantics/game-semantics.test.d.ts.map +1 -0
  132. package/dist/tests/game-semantics/game-semantics.test.js +143 -0
  133. package/dist/tests/game-semantics/game-semantics.test.js.map +1 -0
  134. package/dist/tests/higher-order-unify/ho-unify.test.d.ts +2 -0
  135. package/dist/tests/higher-order-unify/ho-unify.test.d.ts.map +1 -0
  136. package/dist/tests/higher-order-unify/ho-unify.test.js +264 -0
  137. package/dist/tests/higher-order-unify/ho-unify.test.js.map +1 -0
  138. package/dist/tests/integration/cross-modules.test.d.ts +8 -0
  139. package/dist/tests/integration/cross-modules.test.d.ts.map +1 -0
  140. package/dist/tests/integration/cross-modules.test.js +668 -0
  141. package/dist/tests/integration/cross-modules.test.js.map +1 -0
  142. package/dist/tests/nbe/nbe.test.d.ts +2 -0
  143. package/dist/tests/nbe/nbe.test.d.ts.map +1 -0
  144. package/dist/tests/nbe/nbe.test.js +121 -0
  145. package/dist/tests/nbe/nbe.test.js.map +1 -0
  146. package/dist/tests/profile-bridge/translations.test.d.ts +2 -0
  147. package/dist/tests/profile-bridge/translations.test.d.ts.map +1 -0
  148. package/dist/tests/profile-bridge/translations.test.js +266 -0
  149. package/dist/tests/profile-bridge/translations.test.js.map +1 -0
  150. package/dist/tests/proof-nets/proof-nets.test.d.ts +2 -0
  151. package/dist/tests/proof-nets/proof-nets.test.d.ts.map +1 -0
  152. package/dist/tests/proof-nets/proof-nets.test.js +263 -0
  153. package/dist/tests/proof-nets/proof-nets.test.js.map +1 -0
  154. package/dist/tests/tableau-framework/tableau.test.d.ts +2 -0
  155. package/dist/tests/tableau-framework/tableau.test.d.ts.map +1 -0
  156. package/dist/tests/tableau-framework/tableau.test.js +196 -0
  157. package/dist/tests/tableau-framework/tableau.test.js.map +1 -0
  158. 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,4 @@
1
+ import type { IntuitFormula } from '../profiles/intuitionistic-nj';
2
+ import { IPCFormula } from './types';
3
+ export declare function toIntuit(f: IPCFormula): IntuitFormula;
4
+ //# sourceMappingURL=convert.d.ts.map
@@ -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":"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"}
@@ -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"}