@stevenvo780/st-lang 4.14.1 → 4.15.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 (197) hide show
  1. package/dist/format/stnb/__tests__/executor.test.d.ts +2 -0
  2. package/dist/format/stnb/__tests__/executor.test.d.ts.map +1 -0
  3. package/dist/format/stnb/__tests__/executor.test.js +140 -0
  4. package/dist/format/stnb/__tests__/executor.test.js.map +1 -0
  5. package/dist/format/stnb/__tests__/parser.test.d.ts +2 -0
  6. package/dist/format/stnb/__tests__/parser.test.d.ts.map +1 -0
  7. package/dist/format/stnb/__tests__/parser.test.js +119 -0
  8. package/dist/format/stnb/__tests__/parser.test.js.map +1 -0
  9. package/dist/format/stnb/__tests__/renderer.test.d.ts +2 -0
  10. package/dist/format/stnb/__tests__/renderer.test.d.ts.map +1 -0
  11. package/dist/format/stnb/__tests__/renderer.test.js +109 -0
  12. package/dist/format/stnb/__tests__/renderer.test.js.map +1 -0
  13. package/dist/format/stnb/__tests__/roundtrip.test.d.ts +2 -0
  14. package/dist/format/stnb/__tests__/roundtrip.test.d.ts.map +1 -0
  15. package/dist/format/stnb/__tests__/roundtrip.test.js +91 -0
  16. package/dist/format/stnb/__tests__/roundtrip.test.js.map +1 -0
  17. package/dist/format/stnb/__tests__/serializer.test.d.ts +2 -0
  18. package/dist/format/stnb/__tests__/serializer.test.d.ts.map +1 -0
  19. package/dist/format/stnb/__tests__/serializer.test.js +60 -0
  20. package/dist/format/stnb/__tests__/serializer.test.js.map +1 -0
  21. package/dist/format/stnb/executor.d.ts +29 -0
  22. package/dist/format/stnb/executor.d.ts.map +1 -0
  23. package/dist/format/stnb/executor.js +139 -0
  24. package/dist/format/stnb/executor.js.map +1 -0
  25. package/dist/format/stnb/index.d.ts +19 -0
  26. package/dist/format/stnb/index.d.ts.map +1 -0
  27. package/dist/format/stnb/index.js +28 -0
  28. package/dist/format/stnb/index.js.map +1 -0
  29. package/dist/format/stnb/renderer-html.d.ts +11 -0
  30. package/dist/format/stnb/renderer-html.d.ts.map +1 -0
  31. package/dist/format/stnb/renderer-html.js +180 -0
  32. package/dist/format/stnb/renderer-html.js.map +1 -0
  33. package/dist/format/stnb/renderer-markdown.d.ts +13 -0
  34. package/dist/format/stnb/renderer-markdown.d.ts.map +1 -0
  35. package/dist/format/stnb/renderer-markdown.js +92 -0
  36. package/dist/format/stnb/renderer-markdown.js.map +1 -0
  37. package/dist/format/stnb/serializer.d.ts +14 -0
  38. package/dist/format/stnb/serializer.d.ts.map +1 -0
  39. package/dist/format/stnb/serializer.js +21 -0
  40. package/dist/format/stnb/serializer.js.map +1 -0
  41. package/dist/index.d.ts +6 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +8 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.d.ts +2 -0
  46. package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.d.ts.map +1 -0
  47. package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.js +141 -0
  48. package/dist/logic/profiles/dl-hybrid/__tests__/differential.test.js.map +1 -0
  49. package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.d.ts +2 -0
  50. package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.d.ts.map +1 -0
  51. package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.js +55 -0
  52. package/dist/logic/profiles/dl-hybrid/__tests__/examples.test.js.map +1 -0
  53. package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.d.ts +2 -0
  54. package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.d.ts.map +1 -0
  55. package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.js +149 -0
  56. package/dist/logic/profiles/dl-hybrid/__tests__/parser.test.js.map +1 -0
  57. package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.d.ts +2 -0
  58. package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.d.ts.map +1 -0
  59. package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.js +105 -0
  60. package/dist/logic/profiles/dl-hybrid/__tests__/tableau.test.js.map +1 -0
  61. package/dist/logic/profiles/dl-hybrid/ast.d.ts +160 -0
  62. package/dist/logic/profiles/dl-hybrid/ast.d.ts.map +1 -0
  63. package/dist/logic/profiles/dl-hybrid/ast.js +261 -0
  64. package/dist/logic/profiles/dl-hybrid/ast.js.map +1 -0
  65. package/dist/logic/profiles/dl-hybrid/differential.d.ts +61 -0
  66. package/dist/logic/profiles/dl-hybrid/differential.d.ts.map +1 -0
  67. package/dist/logic/profiles/dl-hybrid/differential.js +291 -0
  68. package/dist/logic/profiles/dl-hybrid/differential.js.map +1 -0
  69. package/dist/logic/profiles/dl-hybrid/index.d.ts +10 -0
  70. package/dist/logic/profiles/dl-hybrid/index.d.ts.map +1 -0
  71. package/dist/logic/profiles/dl-hybrid/index.js +90 -0
  72. package/dist/logic/profiles/dl-hybrid/index.js.map +1 -0
  73. package/dist/logic/profiles/dl-hybrid/parser.d.ts +8 -0
  74. package/dist/logic/profiles/dl-hybrid/parser.d.ts.map +1 -0
  75. package/dist/logic/profiles/dl-hybrid/parser.js +410 -0
  76. package/dist/logic/profiles/dl-hybrid/parser.js.map +1 -0
  77. package/dist/logic/profiles/dl-hybrid/profile.d.ts +23 -0
  78. package/dist/logic/profiles/dl-hybrid/profile.d.ts.map +1 -0
  79. package/dist/logic/profiles/dl-hybrid/profile.js +122 -0
  80. package/dist/logic/profiles/dl-hybrid/profile.js.map +1 -0
  81. package/dist/logic/profiles/dl-hybrid/semantics.d.ts +16 -0
  82. package/dist/logic/profiles/dl-hybrid/semantics.d.ts.map +1 -0
  83. package/dist/logic/profiles/dl-hybrid/semantics.js +181 -0
  84. package/dist/logic/profiles/dl-hybrid/semantics.js.map +1 -0
  85. package/dist/logic/profiles/dl-hybrid/tableau.d.ts +38 -0
  86. package/dist/logic/profiles/dl-hybrid/tableau.d.ts.map +1 -0
  87. package/dist/logic/profiles/dl-hybrid/tableau.js +289 -0
  88. package/dist/logic/profiles/dl-hybrid/tableau.js.map +1 -0
  89. package/dist/reasoning/dl-hybrid/__tests__/invariant.test.d.ts +2 -0
  90. package/dist/reasoning/dl-hybrid/__tests__/invariant.test.d.ts.map +1 -0
  91. package/dist/reasoning/dl-hybrid/__tests__/invariant.test.js +74 -0
  92. package/dist/reasoning/dl-hybrid/__tests__/invariant.test.js.map +1 -0
  93. package/dist/reasoning/dl-hybrid/index.d.ts +3 -0
  94. package/dist/reasoning/dl-hybrid/index.d.ts.map +1 -0
  95. package/dist/reasoning/dl-hybrid/index.js +16 -0
  96. package/dist/reasoning/dl-hybrid/index.js.map +1 -0
  97. package/dist/reasoning/dl-hybrid/invariant-search.d.ts +39 -0
  98. package/dist/reasoning/dl-hybrid/invariant-search.d.ts.map +1 -0
  99. package/dist/reasoning/dl-hybrid/invariant-search.js +188 -0
  100. package/dist/reasoning/dl-hybrid/invariant-search.js.map +1 -0
  101. package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.d.ts +2 -0
  102. package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.d.ts.map +1 -0
  103. package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.js +72 -0
  104. package/dist/reasoning/lemma-rag/__tests__/benchmarks.test.js.map +1 -0
  105. package/dist/reasoning/lemma-rag/__tests__/embedding.test.d.ts +2 -0
  106. package/dist/reasoning/lemma-rag/__tests__/embedding.test.d.ts.map +1 -0
  107. package/dist/reasoning/lemma-rag/__tests__/embedding.test.js +102 -0
  108. package/dist/reasoning/lemma-rag/__tests__/embedding.test.js.map +1 -0
  109. package/dist/reasoning/lemma-rag/__tests__/integration.test.d.ts +2 -0
  110. package/dist/reasoning/lemma-rag/__tests__/integration.test.d.ts.map +1 -0
  111. package/dist/reasoning/lemma-rag/__tests__/integration.test.js +40 -0
  112. package/dist/reasoning/lemma-rag/__tests__/integration.test.js.map +1 -0
  113. package/dist/reasoning/lemma-rag/__tests__/query.test.d.ts +2 -0
  114. package/dist/reasoning/lemma-rag/__tests__/query.test.d.ts.map +1 -0
  115. package/dist/reasoning/lemma-rag/__tests__/query.test.js +136 -0
  116. package/dist/reasoning/lemma-rag/__tests__/query.test.js.map +1 -0
  117. package/dist/reasoning/lemma-rag/__tests__/retrieval.test.d.ts +2 -0
  118. package/dist/reasoning/lemma-rag/__tests__/retrieval.test.d.ts.map +1 -0
  119. package/dist/reasoning/lemma-rag/__tests__/retrieval.test.js +147 -0
  120. package/dist/reasoning/lemma-rag/__tests__/retrieval.test.js.map +1 -0
  121. package/dist/reasoning/lemma-rag/benchmarks.d.ts +30 -0
  122. package/dist/reasoning/lemma-rag/benchmarks.d.ts.map +1 -0
  123. package/dist/reasoning/lemma-rag/benchmarks.js +177 -0
  124. package/dist/reasoning/lemma-rag/benchmarks.js.map +1 -0
  125. package/dist/reasoning/lemma-rag/embedding.d.ts +26 -0
  126. package/dist/reasoning/lemma-rag/embedding.d.ts.map +1 -0
  127. package/dist/reasoning/lemma-rag/embedding.js +243 -0
  128. package/dist/reasoning/lemma-rag/embedding.js.map +1 -0
  129. package/dist/reasoning/lemma-rag/index-store.d.ts +35 -0
  130. package/dist/reasoning/lemma-rag/index-store.d.ts.map +1 -0
  131. package/dist/reasoning/lemma-rag/index-store.js +105 -0
  132. package/dist/reasoning/lemma-rag/index-store.js.map +1 -0
  133. package/dist/reasoning/lemma-rag/index.d.ts +9 -0
  134. package/dist/reasoning/lemma-rag/index.d.ts.map +1 -0
  135. package/dist/reasoning/lemma-rag/index.js +34 -0
  136. package/dist/reasoning/lemma-rag/index.js.map +1 -0
  137. package/dist/reasoning/lemma-rag/query.d.ts +48 -0
  138. package/dist/reasoning/lemma-rag/query.d.ts.map +1 -0
  139. package/dist/reasoning/lemma-rag/query.js +92 -0
  140. package/dist/reasoning/lemma-rag/query.js.map +1 -0
  141. package/dist/reasoning/lemma-rag/retrieval.d.ts +33 -0
  142. package/dist/reasoning/lemma-rag/retrieval.d.ts.map +1 -0
  143. package/dist/reasoning/lemma-rag/retrieval.js +123 -0
  144. package/dist/reasoning/lemma-rag/retrieval.js.map +1 -0
  145. package/dist/reasoning/lemma-rag/types.d.ts +52 -0
  146. package/dist/reasoning/lemma-rag/types.d.ts.map +1 -0
  147. package/dist/reasoning/lemma-rag/types.js +13 -0
  148. package/dist/reasoning/lemma-rag/types.js.map +1 -0
  149. package/dist/reasoning/proof-mining/__tests__/extractor.test.d.ts +2 -0
  150. package/dist/reasoning/proof-mining/__tests__/extractor.test.d.ts.map +1 -0
  151. package/dist/reasoning/proof-mining/__tests__/extractor.test.js +263 -0
  152. package/dist/reasoning/proof-mining/__tests__/extractor.test.js.map +1 -0
  153. package/dist/reasoning/proof-mining/__tests__/generalizer.test.d.ts +2 -0
  154. package/dist/reasoning/proof-mining/__tests__/generalizer.test.d.ts.map +1 -0
  155. package/dist/reasoning/proof-mining/__tests__/generalizer.test.js +123 -0
  156. package/dist/reasoning/proof-mining/__tests__/generalizer.test.js.map +1 -0
  157. package/dist/reasoning/proof-mining/__tests__/integration.test.d.ts +2 -0
  158. package/dist/reasoning/proof-mining/__tests__/integration.test.d.ts.map +1 -0
  159. package/dist/reasoning/proof-mining/__tests__/integration.test.js +128 -0
  160. package/dist/reasoning/proof-mining/__tests__/integration.test.js.map +1 -0
  161. package/dist/reasoning/proof-mining/__tests__/persistence.test.d.ts +2 -0
  162. package/dist/reasoning/proof-mining/__tests__/persistence.test.d.ts.map +1 -0
  163. package/dist/reasoning/proof-mining/__tests__/persistence.test.js +119 -0
  164. package/dist/reasoning/proof-mining/__tests__/persistence.test.js.map +1 -0
  165. package/dist/reasoning/proof-mining/__tests__/ranker.test.d.ts +2 -0
  166. package/dist/reasoning/proof-mining/__tests__/ranker.test.d.ts.map +1 -0
  167. package/dist/reasoning/proof-mining/__tests__/ranker.test.js +93 -0
  168. package/dist/reasoning/proof-mining/__tests__/ranker.test.js.map +1 -0
  169. package/dist/reasoning/proof-mining/extractor.d.ts +73 -0
  170. package/dist/reasoning/proof-mining/extractor.d.ts.map +1 -0
  171. package/dist/reasoning/proof-mining/extractor.js +170 -0
  172. package/dist/reasoning/proof-mining/extractor.js.map +1 -0
  173. package/dist/reasoning/proof-mining/generalizer.d.ts +46 -0
  174. package/dist/reasoning/proof-mining/generalizer.d.ts.map +1 -0
  175. package/dist/reasoning/proof-mining/generalizer.js +245 -0
  176. package/dist/reasoning/proof-mining/generalizer.js.map +1 -0
  177. package/dist/reasoning/proof-mining/index.d.ts +62 -0
  178. package/dist/reasoning/proof-mining/index.d.ts.map +1 -0
  179. package/dist/reasoning/proof-mining/index.js +235 -0
  180. package/dist/reasoning/proof-mining/index.js.map +1 -0
  181. package/dist/reasoning/proof-mining/persistence.d.ts +35 -0
  182. package/dist/reasoning/proof-mining/persistence.d.ts.map +1 -0
  183. package/dist/reasoning/proof-mining/persistence.js +126 -0
  184. package/dist/reasoning/proof-mining/persistence.js.map +1 -0
  185. package/dist/reasoning/proof-mining/ranker.d.ts +29 -0
  186. package/dist/reasoning/proof-mining/ranker.d.ts.map +1 -0
  187. package/dist/reasoning/proof-mining/ranker.js +71 -0
  188. package/dist/reasoning/proof-mining/ranker.js.map +1 -0
  189. package/dist/reasoning/proof-mining/statistics.d.ts +11 -0
  190. package/dist/reasoning/proof-mining/statistics.d.ts.map +1 -0
  191. package/dist/reasoning/proof-mining/statistics.js +44 -0
  192. package/dist/reasoning/proof-mining/statistics.js.map +1 -0
  193. package/dist/reasoning/proof-mining/types.d.ts +117 -0
  194. package/dist/reasoning/proof-mining/types.d.ts.map +1 -0
  195. package/dist/reasoning/proof-mining/types.js +24 -0
  196. package/dist/reasoning/proof-mining/types.js.map +1 -0
  197. package/package.json +31 -1
package/dist/index.js CHANGED
@@ -43,7 +43,7 @@ exports.TypeChecker = exports.typeCheck = exports.REPL = exports.ProtocolHandler
43
43
  exports.explainProof = exports.deriveWithCitations = exports.detectAvailableSMT = exports.SubprocessSMTBackend = exports.MockSMTBackend = exports.toSMTLIB = exports.generateLessonPath = exports.checkAnswer = exports.generateExercise = exports.SnapshotStore = exports.captureSnapshot = exports.generateKeyPair = exports.verifyProof = exports.signProof = exports.hashProof = exports.canonicalize = exports.TptpTokenizerError = exports.TptpParserError = exports.tptpFormulaToFol = exports.tptpToFolProverFormat = exports.emitTptpFormula = exports.emitTptp = exports.parseTptpFormula = exports.parseTptp = exports.toCNF = exports.skolemize = exports.unify = exports.proveFOL = exports.dotExport = exports.defends = exports.isConflictFree = exports.isAdmissible = exports.computeExtensions = exports.exportProofToCoq = exports.exportToCoq = exports.removeUnusedSubproofs = exports.compactModusPonensChain = exports.minifyProof = exports.minimizeCountermodel = exports.streamEval = exports.tryReuseProof = exports.TheoremCache = exports.hashFormula = exports.DerivationCache = exports.shutdownPool = exports.evalParallel = exports.solveCDCLv2 = exports.BaseASTVisitor = exports.visitProgram = exports.visit = void 0;
44
44
  exports.lcBetaStep = exports.lcMakeFreshSupply = exports.lcAlphaRename = exports.lcSubstitute = exports.lcFreeVars = exports.lcTermToString = exports.lcAlphaEq = exports.lcApN = exports.lcAp = exports.lcLam = exports.lcVar = exports.mlttTermToString = exports.mlttOccursFree = exports.mlttFreeVars = exports.mlttSubstitute = exports.mlttAlphaBetaEq = exports.mlttAlphaEq = exports.mlttIsNormal = exports.mlttReduceStep = exports.mlttNormalize = exports.mlttIsInferError = exports.mlttCheckType = exports.mlttInferType = exports.mArrow = exports.mSucc = exports.mZero = exports.mNat = exports.mRefl = exports.mId = exports.mSnd = exports.mFst = exports.mPair = exports.mSigma = exports.mApp = exports.mLam = exports.mPi = exports.mUniverse = exports.mVar = exports.chEqType = exports.chTermToString = exports.chTypeToString = exports.ProofConversionError = exports.proofIsConsistent = exports.proofToTerm = exports.termToProof = exports.isNormal = exports.normalize = exports.reduceBeta = exports.isInferError = exports.inferType = void 0;
45
45
  exports.isBisimilar = exports.fibonacci = exports.naturals = exports.streamZipWith = exports.streamMap = exports.streamIterate = exports.streamRepeat = exports.streamTake = exports.lsFreeVars = exports.lsTermToString = exports.listsSignature = exports.booleansSignature = exports.naturalNumbersSignature = exports.verifyConjectures = exports.pruneConsequences = exports.synthesizeEqualities = exports.lsEnumerateTerms = exports.ipcBottom = exports.ipcNot = exports.ipcImplies = exports.ipcOr = exports.ipcAnd = exports.ipcAtom = exports.play = exports.winningStrategy = exports.createPropositionalProver = exports.TableauProver = exports.TRANSLATIONS = exports.translateFormula = exports.findTranslationPath = exports.ctlToLTL = exports.ltlToCTL = exports.godelTranslation = exports.glivenkoTranslation = exports.lcChurchMul = exports.lcChurchAdd = exports.lcChurchSucc = exports.lcEvalChurch = exports.lcDecodeChurch = exports.lcChurchNumeral = exports.lcOmegaSmall = exports.lcOmega = exports.lcY = exports.lcS = exports.lcK = exports.lcI = exports.lcIsWHNF = exports.lcIsNormalForm = exports.lcNormalize = exports.lcEtaStep = void 0;
46
- exports.Semantics = exports.Reasoning = exports.Solvers = exports.TypeTheory = exports.ProofSystems = exports.Logic = exports.CSPHoare = exports.hmSchemeToString = exports.hmTypeToString = exports.HMTypeEnv = exports.hmInstantiate = exports.hmGeneralize = exports.hmResetFreshSupply = exports.hmFreshTypeVar = exports.hmComposeSubsts = exports.hmApplySubst = exports.hmIsUnifyError = exports.hmUnify = exports.hmNormalizeScheme = exports.hmInitialEnv = exports.hmIsInferError = exports.hmInferScheme = exports.hmInfer = exports.hmAlgorithmW = exports.applyHOSubst = exports.hoUnifyPattern = exports.isHigherOrderPattern = exports.hoIsPattern = void 0;
46
+ exports.TacticDSL = exports.LemmaRAG = exports.DLHybridReasoning = exports.DLHybrid = exports.STNotebook = exports.ProofMining = exports.Semantics = exports.Reasoning = exports.Solvers = exports.TypeTheory = exports.ProofSystems = exports.Logic = exports.CSPHoare = exports.hmSchemeToString = exports.hmTypeToString = exports.HMTypeEnv = exports.hmInstantiate = exports.hmGeneralize = exports.hmResetFreshSupply = exports.hmFreshTypeVar = exports.hmComposeSubsts = exports.hmApplySubst = exports.hmIsUnifyError = exports.hmUnify = exports.hmNormalizeScheme = exports.hmInitialEnv = exports.hmIsInferError = exports.hmInferScheme = exports.hmInfer = exports.hmAlgorithmW = exports.applyHOSubst = exports.hoUnifyPattern = exports.isHigherOrderPattern = exports.hoIsPattern = void 0;
47
47
  // API programática (uso recomendado para integración)
48
48
  var api_1 = require("./api");
49
49
  Object.defineProperty(exports, "evaluate", { enumerable: true, get: function () { return api_1.evaluate; } });
@@ -373,4 +373,11 @@ exports.TypeTheory = __importStar(require("./namespaces/type-theory"));
373
373
  exports.Solvers = __importStar(require("./namespaces/solvers"));
374
374
  exports.Reasoning = __importStar(require("./namespaces/reasoning"));
375
375
  exports.Semantics = __importStar(require("./namespaces/semantics"));
376
+ // === Ciclo 3 V4.15 features ===
377
+ exports.ProofMining = __importStar(require("./reasoning/proof-mining"));
378
+ exports.STNotebook = __importStar(require("./format/stnb"));
379
+ exports.DLHybrid = __importStar(require("./logic/profiles/dl-hybrid"));
380
+ exports.DLHybridReasoning = __importStar(require("./reasoning/dl-hybrid"));
381
+ exports.LemmaRAG = __importStar(require("./reasoning/lemma-rag"));
382
+ exports.TacticDSL = __importStar(require("./reasoning/tactic-dsl"));
376
383
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=differential.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"differential.test.d.ts","sourceRoot":"","sources":["../../../../../src/logic/profiles/dl-hybrid/__tests__/differential.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST dL-Hybrid — Tests para resolución de ODEs y derivada de Lie
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const differential_1 = require("../differential");
8
+ const parser_1 = require("../parser");
9
+ const ast_1 = require("../ast");
10
+ function ode(src) {
11
+ const p = (0, parser_1.parseProgram)(src);
12
+ if (p.kind !== 'ode')
13
+ throw new Error('Esperaba ODE');
14
+ return p.system;
15
+ }
16
+ (0, vitest_1.describe)('dl-hybrid differential — clasificación', () => {
17
+ (0, vitest_1.it)("detecta x' = 1 como constante", () => {
18
+ const sys = ode("{x' = 1}");
19
+ const k = (0, differential_1.classifyOde)(sys);
20
+ (0, vitest_1.expect)(k.kind).toBe('constant');
21
+ if (k.kind === 'constant') {
22
+ (0, vitest_1.expect)(k.rates.get('x')).toBe(1);
23
+ }
24
+ });
25
+ (0, vitest_1.it)("detecta x' = 2 * x como lineal con a=2 b=0", () => {
26
+ const sys = ode("{x' = 2 * x}");
27
+ const k = (0, differential_1.classifyOde)(sys);
28
+ (0, vitest_1.expect)(k.kind).toBe('linear');
29
+ if (k.kind === 'linear') {
30
+ const c = k.coeffs.get('x');
31
+ (0, vitest_1.expect)(c?.a).toBe(2);
32
+ (0, vitest_1.expect)(c?.b).toBe(0);
33
+ }
34
+ });
35
+ (0, vitest_1.it)("detecta x' = 3 * x + 5 como lineal con a=3 b=5", () => {
36
+ const sys = ode("{x' = 3 * x + 5}");
37
+ const k = (0, differential_1.classifyOde)(sys);
38
+ (0, vitest_1.expect)(k.kind).toBe('linear');
39
+ if (k.kind === 'linear') {
40
+ const c = k.coeffs.get('x');
41
+ (0, vitest_1.expect)(c?.a).toBe(3);
42
+ (0, vitest_1.expect)(c?.b).toBe(5);
43
+ }
44
+ });
45
+ (0, vitest_1.it)("rechaza x' = x * y como acoplada (unsupported)", () => {
46
+ const sys = ode("{x' = x * y}");
47
+ const k = (0, differential_1.classifyOde)(sys);
48
+ (0, vitest_1.expect)(k.kind).toBe('unsupported');
49
+ });
50
+ });
51
+ (0, vitest_1.describe)('dl-hybrid differential — flow analítico', () => {
52
+ (0, vitest_1.it)("x' = 2 desde x0=1, t=3 → x=7", () => {
53
+ const sys = ode("{x' = 2}");
54
+ const s0 = new Map([['x', 1]]);
55
+ const sT = (0, differential_1.flow)(sys, s0, 3);
56
+ (0, vitest_1.expect)(sT.get('x')).toBeCloseTo(7, 9);
57
+ });
58
+ (0, vitest_1.it)("x' = -1 desde x0=10, t=4 → x=6", () => {
59
+ const sys = ode("{x' = -1}");
60
+ const s0 = new Map([['x', 10]]);
61
+ const sT = (0, differential_1.flow)(sys, s0, 4);
62
+ (0, vitest_1.expect)(sT.get('x')).toBeCloseTo(6, 9);
63
+ });
64
+ (0, vitest_1.it)("x' = x desde x0=1, t=1 → x≈e", () => {
65
+ const sys = ode("{x' = x}");
66
+ const s0 = new Map([['x', 1]]);
67
+ const sT = (0, differential_1.flow)(sys, s0, 1);
68
+ (0, vitest_1.expect)(sT.get('x')).toBeCloseTo(Math.E, 6);
69
+ });
70
+ (0, vitest_1.it)("x' = 2*x desde x0=1, t=ln(2)/2 → x=2", () => {
71
+ // x(t) = x₀ · e^{2t} = 1 · e^{ln 2} = 2
72
+ const sys = ode("{x' = 2 * x}");
73
+ const s0 = new Map([['x', 1]]);
74
+ const t = Math.log(2) / 2;
75
+ const sT = (0, differential_1.flow)(sys, s0, t);
76
+ (0, vitest_1.expect)(sT.get('x')).toBeCloseTo(2, 6);
77
+ });
78
+ });
79
+ (0, vitest_1.describe)('dl-hybrid differential — derivada de Lie', () => {
80
+ (0, vitest_1.it)("L_f(x) para x' = 1 da 1 (la propia f)", () => {
81
+ const sys = ode("{x' = 1}");
82
+ const lie = (0, differential_1.lieDerivative)((0, ast_1.variable)('x'), sys);
83
+ // Debe simplificarse a const 1.
84
+ (0, vitest_1.expect)(lie.kind).toBe('const');
85
+ if (lie.kind === 'const')
86
+ (0, vitest_1.expect)(lie.value).toBe(1);
87
+ });
88
+ (0, vitest_1.it)("L_f(x) para x' = 2x da 2x", () => {
89
+ const sys = ode("{x' = 2 * x}");
90
+ const lie = (0, differential_1.lieDerivative)((0, ast_1.variable)('x'), sys);
91
+ // Evaluamos en x=3 → 2*3 = 6
92
+ const v = (0, differential_1.evalSym)(lie, new Map([['x', 3]]));
93
+ (0, vitest_1.expect)(v).toBeCloseTo(6, 9);
94
+ });
95
+ (0, vitest_1.it)("L_f(x²) para x' = 1 da 2x", () => {
96
+ const sys = ode("{x' = 1}");
97
+ // candidate p = x²
98
+ const p = (0, parser_1.parseTerm)('x^2');
99
+ const lie = (0, differential_1.lieDerivative)(p, sys);
100
+ // En x=5 da 2*5 = 10
101
+ const v = (0, differential_1.evalSym)(lie, new Map([['x', 5]]));
102
+ (0, vitest_1.expect)(v).toBeCloseTo(10, 9);
103
+ });
104
+ (0, vitest_1.it)("L_f(x² + y²) para x' = -y, y' = x (rotación) da 0 (invariante exacto)", () => {
105
+ const sys = {
106
+ equations: [
107
+ { varName: 'x', rhs: { kind: 'neg', arg: (0, ast_1.variable)('y') } },
108
+ { varName: 'y', rhs: (0, ast_1.variable)('x') },
109
+ ],
110
+ };
111
+ // L_f(x²+y²) = 2x*(-y) + 2y*x = 0
112
+ const p = (0, ast_1.plus)({ kind: 'pow', base: (0, ast_1.variable)('x'), exp: 2 }, {
113
+ kind: 'pow',
114
+ base: (0, ast_1.variable)('y'),
115
+ exp: 2,
116
+ });
117
+ const lie = (0, differential_1.lieDerivative)(p, sys);
118
+ const v = (0, differential_1.evalSym)(lie, new Map([['x', 1], ['y', 2]]));
119
+ (0, vitest_1.expect)(v).toBeCloseTo(0, 6);
120
+ });
121
+ });
122
+ (0, vitest_1.describe)('dl-hybrid differential — auxiliares', () => {
123
+ (0, vitest_1.it)('termIsConstant detecta enteros y resultados simplificados', () => {
124
+ (0, vitest_1.expect)((0, differential_1.termIsConstant)((0, ast_1.num)(5))).toBe(5);
125
+ (0, vitest_1.expect)((0, differential_1.termIsConstant)((0, ast_1.plus)((0, ast_1.num)(2), (0, ast_1.num)(3)))).toBe(5);
126
+ (0, vitest_1.expect)((0, differential_1.termIsConstant)((0, ast_1.variable)('x'))).toBeNull();
127
+ });
128
+ (0, vitest_1.it)('termIsLinearIn extrae a, b correctamente para 2*x + 3', () => {
129
+ const lin = (0, differential_1.termIsLinearIn)((0, ast_1.plus)((0, ast_1.times)((0, ast_1.num)(2), (0, ast_1.variable)('x')), (0, ast_1.num)(3)), 'x');
130
+ (0, vitest_1.expect)(lin).toEqual({ a: 2, b: 3 });
131
+ });
132
+ (0, vitest_1.it)('termIsLinearIn devuelve null si hay otras variables', () => {
133
+ (0, vitest_1.expect)((0, differential_1.termIsLinearIn)((0, ast_1.plus)((0, ast_1.variable)('x'), (0, ast_1.variable)('y')), 'x')).toBeNull();
134
+ });
135
+ (0, vitest_1.it)('termToExpr no falla sobre términos parseados', () => {
136
+ const t = (0, parser_1.parseTerm)('x + 2 * y');
137
+ const e = (0, differential_1.termToExpr)(t);
138
+ (0, vitest_1.expect)(e.kind).toBe('add');
139
+ });
140
+ });
141
+ //# sourceMappingURL=differential.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"differential.test.js","sourceRoot":"","sources":["../../../../../src/logic/profiles/dl-hybrid/__tests__/differential.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=examples.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"examples.test.d.ts","sourceRoot":"","sources":["../../../../../src/logic/profiles/dl-hybrid/__tests__/examples.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST dL-Hybrid — Tests sobre los ejemplos canónicos del directorio
4
+ // ============================================================
5
+ // Versiones programáticas de thermostat.dl, water-tank.dl y traffic-light.dl
6
+ // que verifican que el motor valida (o refuta correctamente) las
7
+ // propiedades documentadas en cada archivo.
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const vitest_1 = require("vitest");
10
+ const parser_1 = require("../parser");
11
+ const tableau_1 = require("../tableau");
12
+ const profile_1 = require("../profile");
13
+ (0, vitest_1.describe)('dl-hybrid examples — thermostat', () => {
14
+ // [ ?(t >= 18); {t' = -1 & t > 17} ] t >= 17
15
+ // El dominio t > 17 fuerza que la evolución se detenga antes de que
16
+ // t baje de 17 (estricto), así la post-condición t ≥ 17 se cumple en
17
+ // todos los puntos del rango.
18
+ (0, vitest_1.it)('temperatura no cae bajo 17 si arranca >= 18 con t apagado y dominio t > 17', () => {
19
+ const res = (0, tableau_1.checkValid)((0, parser_1.parseFormula)("[ ?(t >= 18); {t' = -1 & t > 17} ] t >= 17"));
20
+ (0, vitest_1.expect)(res.status).toBe('valid');
21
+ });
22
+ });
23
+ (0, vitest_1.describe)('dl-hybrid examples — water-tank', () => {
24
+ // Versión simplificada: si el sensor dispara la apertura, el tanque
25
+ // no se desborda mientras el dominio guarda x < 10.
26
+ (0, vitest_1.it)('tanque no desborda con válvula abierta y dominio x < 10', () => {
27
+ const res = (0, tableau_1.checkValid)((0, parser_1.parseFormula)("[ ?(x <= 1); v := 1; {x' = 2 & x < 10} ] x <= 10"));
28
+ (0, vitest_1.expect)(res.status).toBe('valid');
29
+ });
30
+ });
31
+ (0, vitest_1.describe)('dl-hybrid examples — traffic-light', () => {
32
+ // Invariante de mutua exclusión: cada transición preserva g + y + r = 1.
33
+ // Probamos desde estados específicos para evitar la malla con todos
34
+ // los valores cubriendo cero/uno (la malla por defecto incluiría
35
+ // muchos estados sin sentido para este ejemplo).
36
+ (0, vitest_1.it)('transición verde → amarillo preserva g + y + r = 1', () => {
37
+ // pre: g = 1 & y = 0 & r = 0
38
+ // tras g := 0; y := 1 queda (0,1,0) → suma 1.
39
+ const res = (0, tableau_1.checkValid)((0, parser_1.parseFormula)('g = 1 & y = 0 & r = 0 -> [ g := 0; y := 1 ] g + y + r = 1'));
40
+ (0, vitest_1.expect)(res.status).toBe('valid');
41
+ });
42
+ (0, vitest_1.it)('transición amarillo → rojo preserva g + y + r = 1', () => {
43
+ const res = (0, tableau_1.checkValid)((0, parser_1.parseFormula)('g = 0 & y = 1 & r = 0 -> [ y := 0; r := 1 ] g + y + r = 1'));
44
+ (0, vitest_1.expect)(res.status).toBe('valid');
45
+ });
46
+ });
47
+ (0, vitest_1.describe)('dl-hybrid profile — adapter smoke', () => {
48
+ (0, vitest_1.it)('explainSystem describe el sistema correctamente', () => {
49
+ const p = new profile_1.DLHybridProfile();
50
+ const desc = p.explainSystem();
51
+ (0, vitest_1.expect)(desc).toContain('dL');
52
+ (0, vitest_1.expect)(desc).toContain('híbridos');
53
+ });
54
+ });
55
+ //# sourceMappingURL=examples.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"examples.test.js","sourceRoot":"","sources":["../../../../../src/logic/profiles/dl-hybrid/__tests__/examples.test.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,mEAAmE;AACnE,+DAA+D;AAC/D,6EAA6E;AAC7E,iEAAiE;AACjE,4CAA4C;;AAE5C,mCAA8C;AAC9C,sCAAyC;AACzC,wCAAwC;AACxC,wCAA6C;AAE7C,IAAA,iBAAQ,EAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,6CAA6C;IAC7C,oEAAoE;IACpE,qEAAqE;IACrE,8BAA8B;IAC9B,IAAA,WAAE,EAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,GAAG,GAAG,IAAA,oBAAU,EAAC,IAAA,qBAAY,EAAC,4CAA4C,CAAC,CAAC,CAAC;QACnF,IAAA,eAAM,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,oEAAoE;IACpE,oDAAoD;IACpD,IAAA,WAAE,EAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,GAAG,GAAG,IAAA,oBAAU,EAAC,IAAA,qBAAY,EAAC,kDAAkD,CAAC,CAAC,CAAC;QACzF,IAAA,eAAM,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,yEAAyE;IACzE,oEAAoE;IACpE,iEAAiE;IACjE,iDAAiD;IACjD,IAAA,WAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,6BAA6B;QAC7B,8CAA8C;QAC9C,MAAM,GAAG,GAAG,IAAA,oBAAU,EACpB,IAAA,qBAAY,EAAC,2DAA2D,CAAC,CAC1E,CAAC;QACF,IAAA,eAAM,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,GAAG,GAAG,IAAA,oBAAU,EACpB,IAAA,qBAAY,EAAC,2DAA2D,CAAC,CAC1E,CAAC;QACF,IAAA,eAAM,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,IAAA,WAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,GAAG,IAAI,yBAAe,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/B,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.test.d.ts","sourceRoot":"","sources":["../../../../../src/logic/profiles/dl-hybrid/__tests__/parser.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST dL-Hybrid — Parser tests
4
+ // ============================================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const parser_1 = require("../parser");
8
+ const ast_1 = require("../ast");
9
+ (0, vitest_1.describe)('dl-hybrid parser — términos', () => {
10
+ (0, vitest_1.it)('parsea números enteros y reales', () => {
11
+ (0, vitest_1.expect)((0, parser_1.parseTerm)('42')).toEqual({ kind: 'num', value: 42 });
12
+ (0, vitest_1.expect)((0, parser_1.parseTerm)('3.14')).toEqual({ kind: 'num', value: 3.14 });
13
+ });
14
+ (0, vitest_1.it)('parsea variables', () => {
15
+ (0, vitest_1.expect)((0, parser_1.parseTerm)('x')).toEqual({ kind: 'var', name: 'x' });
16
+ });
17
+ (0, vitest_1.it)('parsea aritmética con precedencia correcta', () => {
18
+ // x + 2 * y debe parsear como x + (2 * y)
19
+ const t = (0, parser_1.parseTerm)('x + 2 * y');
20
+ (0, vitest_1.expect)(t).toEqual({
21
+ kind: 'plus',
22
+ left: { kind: 'var', name: 'x' },
23
+ right: {
24
+ kind: 'times',
25
+ left: { kind: 'num', value: 2 },
26
+ right: { kind: 'var', name: 'y' },
27
+ },
28
+ });
29
+ });
30
+ (0, vitest_1.it)('parsea potencias con exponente entero', () => {
31
+ (0, vitest_1.expect)((0, parser_1.parseTerm)('x^2')).toEqual({
32
+ kind: 'pow',
33
+ base: { kind: 'var', name: 'x' },
34
+ exp: 2,
35
+ });
36
+ });
37
+ (0, vitest_1.it)('soporta negación unaria', () => {
38
+ (0, vitest_1.expect)((0, parser_1.parseTerm)('-x')).toEqual({ kind: 'neg', arg: { kind: 'var', name: 'x' } });
39
+ });
40
+ });
41
+ (0, vitest_1.describe)('dl-hybrid parser — fórmulas', () => {
42
+ (0, vitest_1.it)('parsea comparaciones básicas', () => {
43
+ const f = (0, parser_1.parseFormula)('x > 0');
44
+ (0, vitest_1.expect)(f).toEqual({
45
+ kind: 'comp',
46
+ op: '>',
47
+ left: { kind: 'var', name: 'x' },
48
+ right: { kind: 'num', value: 0 },
49
+ });
50
+ });
51
+ (0, vitest_1.it)('parsea cada operador relacional', () => {
52
+ (0, vitest_1.expect)((0, parser_1.parseFormula)('x = 1').kind).toBe('comp');
53
+ (0, vitest_1.expect)((0, parser_1.parseFormula)('x != 1').kind).toBe('comp');
54
+ (0, vitest_1.expect)((0, parser_1.parseFormula)('x <= 1').kind).toBe('comp');
55
+ (0, vitest_1.expect)((0, parser_1.parseFormula)('x >= 1').kind).toBe('comp');
56
+ });
57
+ (0, vitest_1.it)('parsea conjunción y disyunción con precedencia', () => {
58
+ // x > 0 & y > 0 | z > 0 → (x>0 & y>0) | z>0
59
+ const f = (0, parser_1.parseFormula)('x > 0 & y > 0 | z > 0');
60
+ (0, vitest_1.expect)(f.kind).toBe('or');
61
+ });
62
+ (0, vitest_1.it)('parsea implicación con asociatividad derecha', () => {
63
+ const f = (0, parser_1.parseFormula)('x = 0 -> y = 1 -> z = 2');
64
+ (0, vitest_1.expect)(f.kind).toBe('implies');
65
+ });
66
+ (0, vitest_1.it)('parsea booleanos true/false', () => {
67
+ (0, vitest_1.expect)((0, parser_1.parseFormula)('true')).toEqual({ kind: 'true' });
68
+ (0, vitest_1.expect)((0, parser_1.parseFormula)('false')).toEqual({ kind: 'false' });
69
+ });
70
+ (0, vitest_1.it)('parsea negación', () => {
71
+ (0, vitest_1.expect)((0, parser_1.parseFormula)('!(x = 0)').kind).toBe('not');
72
+ });
73
+ (0, vitest_1.it)('parsea modalidad [α]φ con asignación', () => {
74
+ const f = (0, parser_1.parseFormula)('[ x := 0 ] x = 0');
75
+ (0, vitest_1.expect)(f.kind).toBe('box');
76
+ if (f.kind === 'box') {
77
+ (0, vitest_1.expect)(f.program.kind).toBe('assign');
78
+ (0, vitest_1.expect)(f.post.kind).toBe('comp');
79
+ }
80
+ });
81
+ (0, vitest_1.it)('parsea modalidad ⟨α⟩φ con asignación', () => {
82
+ const f = (0, parser_1.parseFormula)('<x := 1> x > 0');
83
+ (0, vitest_1.expect)(f.kind).toBe('diamond');
84
+ });
85
+ });
86
+ (0, vitest_1.describe)('dl-hybrid parser — programas híbridos', () => {
87
+ (0, vitest_1.it)('parsea asignación simple', () => {
88
+ const p = (0, parser_1.parseProgram)('x := x + 1');
89
+ (0, vitest_1.expect)(p.kind).toBe('assign');
90
+ });
91
+ (0, vitest_1.it)('parsea asignación no determinista', () => {
92
+ const p = (0, parser_1.parseProgram)('x := *');
93
+ (0, vitest_1.expect)(p.kind).toBe('nondet');
94
+ });
95
+ (0, vitest_1.it)('parsea test bloqueante', () => {
96
+ const p = (0, parser_1.parseProgram)('?(x > 0)');
97
+ (0, vitest_1.expect)(p.kind).toBe('test');
98
+ });
99
+ (0, vitest_1.it)('parsea secuencia', () => {
100
+ const p = (0, parser_1.parseProgram)('x := 0; x := x + 1');
101
+ (0, vitest_1.expect)(p.kind).toBe('seq');
102
+ });
103
+ (0, vitest_1.it)('parsea choice con ++', () => {
104
+ const p = (0, parser_1.parseProgram)('x := 0 ++ x := 1');
105
+ (0, vitest_1.expect)(p.kind).toBe('choice');
106
+ });
107
+ (0, vitest_1.it)('parsea loop con *', () => {
108
+ const p = (0, parser_1.parseProgram)('(x := x + 1)*');
109
+ (0, vitest_1.expect)(p.kind).toBe('loop');
110
+ });
111
+ (0, vitest_1.it)('parsea ODE con dominio', () => {
112
+ const p = (0, parser_1.parseProgram)("{x' = 1 & x < 10}");
113
+ (0, vitest_1.expect)(p.kind).toBe('ode');
114
+ if (p.kind === 'ode') {
115
+ (0, vitest_1.expect)(p.system.equations).toHaveLength(1);
116
+ (0, vitest_1.expect)(p.system.equations[0]?.varName).toBe('x');
117
+ (0, vitest_1.expect)(p.system.domain).toBeDefined();
118
+ }
119
+ });
120
+ (0, vitest_1.it)('parsea ODE multi-variable', () => {
121
+ const p = (0, parser_1.parseProgram)("{x' = 1, y' = 2}");
122
+ (0, vitest_1.expect)(p.kind).toBe('ode');
123
+ if (p.kind === 'ode') {
124
+ (0, vitest_1.expect)(p.system.equations).toHaveLength(2);
125
+ }
126
+ });
127
+ (0, vitest_1.it)('round-trip: programToString invertible para casos simples', () => {
128
+ const p = (0, parser_1.parseProgram)('x := x + 1');
129
+ const s = (0, ast_1.programToString)(p);
130
+ const p2 = (0, parser_1.parseProgram)(s);
131
+ (0, vitest_1.expect)(p2.kind).toBe(p.kind);
132
+ });
133
+ (0, vitest_1.it)('round-trip: formulaToString preserva estructura', () => {
134
+ const f = (0, parser_1.parseFormula)('x > 0');
135
+ (0, vitest_1.expect)((0, ast_1.formulaToString)(f)).toBe('x > 0');
136
+ });
137
+ (0, vitest_1.it)('round-trip: termToString recoge variables', () => {
138
+ const t = (0, parser_1.parseTerm)('x + 1');
139
+ (0, vitest_1.expect)((0, ast_1.termToString)(t)).toContain('x');
140
+ (0, vitest_1.expect)((0, ast_1.termToString)(t)).toContain('1');
141
+ });
142
+ (0, vitest_1.it)('rechaza tokens sobrantes', () => {
143
+ (0, vitest_1.expect)(() => (0, parser_1.parseFormula)('x = 0 xxx')).toThrow();
144
+ });
145
+ (0, vitest_1.it)('rechaza paréntesis no balanceados', () => {
146
+ (0, vitest_1.expect)(() => (0, parser_1.parseFormula)('(x = 0')).toThrow();
147
+ });
148
+ });
149
+ //# sourceMappingURL=parser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../../../../src/logic/profiles/dl-hybrid/__tests__/parser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tableau.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableau.test.d.ts","sourceRoot":"","sources":["../../../../../src/logic/profiles/dl-hybrid/__tests__/tableau.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // ST dL-Hybrid — Decision procedure tests
4
+ // ============================================================
5
+ // Casos canónicos del paper de Platzer adaptados al subset.
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const vitest_1 = require("vitest");
8
+ const parser_1 = require("../parser");
9
+ const tableau_1 = require("../tableau");
10
+ const valid = (src, opts) => (0, tableau_1.checkValid)((0, parser_1.parseFormula)(src), opts).status === 'valid';
11
+ const sat = (src, opts) => (0, tableau_1.checkSatisfiable)((0, parser_1.parseFormula)(src), opts).status === 'satisfiable';
12
+ (0, vitest_1.describe)('dl-hybrid tableau — asignaciones discretas', () => {
13
+ (0, vitest_1.it)('[ x := 0 ] x = 0 es válida', () => {
14
+ (0, vitest_1.expect)(valid('[ x := 0 ] x = 0')).toBe(true);
15
+ });
16
+ (0, vitest_1.it)('[ x := 0 ] x > 0 NO es válida', () => {
17
+ (0, vitest_1.expect)(valid('[ x := 0 ] x > 0')).toBe(false);
18
+ });
19
+ (0, vitest_1.it)('precondición → postcondición tras asignación: x >= 0 -> [x := x + 1] x > 0', () => {
20
+ (0, vitest_1.expect)(valid('x >= 0 -> [ x := x + 1 ] x > 0')).toBe(true);
21
+ });
22
+ (0, vitest_1.it)('contraejemplo: x = -1 → [x := x + 1] x > 0 falla', () => {
23
+ // En estado x=-1, tras x:=x+1 queda x=0, no > 0.
24
+ const f = (0, parser_1.parseFormula)('[ x := x + 1 ] x > 0');
25
+ const s = new Map([['x', -1]]);
26
+ (0, vitest_1.expect)((0, tableau_1.evalInState)(f, s)).toBe(false);
27
+ });
28
+ (0, vitest_1.it)('asignación encadenada: [x := 1; x := x + 1] x = 2', () => {
29
+ (0, vitest_1.expect)(valid('[ x := 1; x := x + 1 ] x = 2')).toBe(true);
30
+ });
31
+ });
32
+ (0, vitest_1.describe)('dl-hybrid tableau — choice y test', () => {
33
+ (0, vitest_1.it)('[x := 0 ++ x := 1] x >= 0 es válida', () => {
34
+ (0, vitest_1.expect)(valid('[ x := 0 ++ x := 1 ] x >= 0')).toBe(true);
35
+ });
36
+ (0, vitest_1.it)('[x := 0 ++ x := -1] x >= 0 NO es válida (rama -1 viola)', () => {
37
+ (0, vitest_1.expect)(valid('[ x := 0 ++ x := -1 ] x >= 0')).toBe(false);
38
+ });
39
+ (0, vitest_1.it)('test bloqueante: [?(x > 0); x := 1] x > 0 es válida (vacuous si bloquea)', () => {
40
+ (0, vitest_1.expect)(valid('[ ?(x > 0); x := 1 ] x > 0')).toBe(true);
41
+ });
42
+ (0, vitest_1.it)('test que pasa con precondición: x > 0 -> [?(x > 0)] x > 0', () => {
43
+ (0, vitest_1.expect)(valid('x > 0 -> [ ?(x > 0) ] x > 0')).toBe(true);
44
+ });
45
+ });
46
+ (0, vitest_1.describe)('dl-hybrid tableau — diamond (existencial)', () => {
47
+ (0, vitest_1.it)('<x := 5> x > 0 es válida — existe outcome con x > 0', () => {
48
+ (0, vitest_1.expect)(valid('<x := 5> x > 0')).toBe(true);
49
+ });
50
+ (0, vitest_1.it)('<x := 0> x > 0 NO es válida — único outcome es x=0', () => {
51
+ (0, vitest_1.expect)(valid('<x := 0> x > 0')).toBe(false);
52
+ });
53
+ (0, vitest_1.it)('diamond y choice: <x := 0 ++ x := 1> x > 0 vale (rama 1)', () => {
54
+ (0, vitest_1.expect)(valid('<x := 0 ++ x := 1> x > 0')).toBe(true);
55
+ });
56
+ });
57
+ (0, vitest_1.describe)('dl-hybrid tableau — loops bounded', () => {
58
+ (0, vitest_1.it)('[(x := x + 1)*] true siempre vale', () => {
59
+ (0, vitest_1.expect)(valid('[(x := x + 1)*] true')).toBe(true);
60
+ });
61
+ (0, vitest_1.it)('[x := 0; (x := x + 1)*] x >= 0 es válida (todos los unfolds preservan x >= 0)', () => {
62
+ (0, vitest_1.expect)(valid('[ x := 0; (x := x + 1)* ] x >= 0')).toBe(true);
63
+ });
64
+ (0, vitest_1.it)('[(x := x - 1)*] x >= 0 NO es válida (un unfold rompe la cota)', () => {
65
+ (0, vitest_1.expect)(valid('[ x := 0; (x := x - 1)* ] x >= 0', { loopUnfold: 2 })).toBe(false);
66
+ });
67
+ });
68
+ (0, vitest_1.describe)('dl-hybrid tableau — ODEs continuas', () => {
69
+ (0, vitest_1.it)("[{x' = 1 & x < 5}] x <= 5 es válida con dominio", () => {
70
+ (0, vitest_1.expect)(valid("[{x' = 1 & x < 5}] x <= 5")).toBe(true);
71
+ });
72
+ (0, vitest_1.it)("[{x' = 0}] x = x0 — flujo trivial preserva valor (cualquier x)", () => {
73
+ // x' = 0 → x permanece constante.
74
+ // Como x se interpreta como el valor en el estado, [{x'=0}] (x = x0) sólo
75
+ // tiene sentido con x0 ligado al estado. Probamos invariante simple:
76
+ // x >= 0 -> [{x' = 0}] x >= 0
77
+ (0, vitest_1.expect)(valid("x >= 0 -> [{x' = 0}] x >= 0")).toBe(true);
78
+ });
79
+ (0, vitest_1.it)("evolución sin dominio: <{x' = 1}> x > 0 vale cuando x >= 0 (acepta t>0)", () => {
80
+ (0, vitest_1.expect)(valid("x >= 0 -> <{x' = 1}> x >= 0")).toBe(true);
81
+ });
82
+ });
83
+ (0, vitest_1.describe)('dl-hybrid tableau — satisfiability', () => {
84
+ (0, vitest_1.it)('x > 0 es satisfacible (testigo: x=1)', () => {
85
+ (0, vitest_1.expect)(sat('x > 0')).toBe(true);
86
+ });
87
+ (0, vitest_1.it)('false NO es satisfacible', () => {
88
+ (0, vitest_1.expect)(sat('false')).toBe(false);
89
+ });
90
+ (0, vitest_1.it)('x > 0 & x < 0 es insatisfacible en la malla', () => {
91
+ (0, vitest_1.expect)(sat('x > 0 & x < 0')).toBe(false);
92
+ });
93
+ });
94
+ (0, vitest_1.describe)('dl-hybrid tableau — booleano puro', () => {
95
+ (0, vitest_1.it)('true es válida', () => {
96
+ (0, vitest_1.expect)(valid('true')).toBe(true);
97
+ });
98
+ (0, vitest_1.it)('false NO es válida', () => {
99
+ (0, vitest_1.expect)(valid('false')).toBe(false);
100
+ });
101
+ (0, vitest_1.it)('tautología clásica: x = 0 | !(x = 0)', () => {
102
+ (0, vitest_1.expect)(valid('x = 0 | !(x = 0)')).toBe(true);
103
+ });
104
+ });
105
+ //# sourceMappingURL=tableau.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tableau.test.js","sourceRoot":"","sources":["../../../../../src/logic/profiles/dl-hybrid/__tests__/tableau.test.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,0CAA0C;AAC1C,+DAA+D;AAC/D,4DAA4D;;AAE5D,mCAA8C;AAC9C,sCAAyC;AACzC,wCAAuE;AAGvE,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,IAAuC,EAAW,EAAE,CAC9E,IAAA,oBAAU,EAAC,IAAA,qBAAY,EAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC;AAEzD,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,IAA6C,EAAW,EAAE,CAClF,IAAA,0BAAgB,EAAC,IAAA,qBAAY,EAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC;AAErE,IAAA,iBAAQ,EAAC,4CAA4C,EAAE,GAAG,EAAE;IAC1D,IAAA,WAAE,EAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,IAAA,eAAM,EAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,IAAA,eAAM,EAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,IAAA,eAAM,EAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,iDAAiD;QACjD,MAAM,CAAC,GAAG,IAAA,qBAAY,EAAC,sBAAsB,CAAC,CAAC;QAC/C,MAAM,CAAC,GAAU,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,IAAA,qBAAW,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,IAAA,eAAM,EAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,IAAA,WAAE,EAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,IAAA,eAAM,EAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,IAAA,eAAM,EAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,IAAA,eAAM,EAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,IAAA,eAAM,EAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,IAAA,WAAE,EAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,IAAA,eAAM,EAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,IAAA,eAAM,EAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,IAAA,eAAM,EAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,IAAA,eAAM,EAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,IAAA,eAAM,EAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,IAAA,eAAM,EAAC,KAAK,CAAC,kCAAkC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,IAAA,WAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,IAAA,eAAM,EAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,kCAAkC;QAClC,0EAA0E;QAC1E,qEAAqE;QACrE,8BAA8B;QAC9B,IAAA,eAAM,EAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,IAAA,eAAM,EAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,IAAA,eAAM,EAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,IAAA,WAAE,EAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,IAAA,eAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oBAAoB,EAAE,GAAG,EAAE;QAC5B,IAAA,eAAM,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,IAAA,eAAM,EAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}