@stevenvo780/st-lang 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/proof-exchange/index.d.ts +4 -6
- package/dist/proof-exchange/index.d.ts.map +1 -1
- package/dist/proof-exchange/index.js +9 -5
- package/dist/proof-exchange/index.js.map +1 -1
- package/dist/tests/coverage-95/api-and-interpreter-e2e.test.d.ts +2 -0
- package/dist/tests/coverage-95/api-and-interpreter-e2e.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/api-and-interpreter-e2e.test.js +255 -0
- package/dist/tests/coverage-95/api-and-interpreter-e2e.test.js.map +1 -0
- package/dist/tests/coverage-95/argumentation.test.d.ts +2 -0
- package/dist/tests/coverage-95/argumentation.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/argumentation.test.js +105 -0
- package/dist/tests/coverage-95/argumentation.test.js.map +1 -0
- package/dist/tests/coverage-95/arithmetic.test.d.ts +2 -0
- package/dist/tests/coverage-95/arithmetic.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/arithmetic.test.js +139 -0
- package/dist/tests/coverage-95/arithmetic.test.js.map +1 -0
- package/dist/tests/coverage-95/belnap.test.d.ts +2 -0
- package/dist/tests/coverage-95/belnap.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/belnap.test.js +145 -0
- package/dist/tests/coverage-95/belnap.test.js.map +1 -0
- package/dist/tests/coverage-95/cdcl-v2-solver.test.d.ts +2 -0
- package/dist/tests/coverage-95/cdcl-v2-solver.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/cdcl-v2-solver.test.js +61 -0
- package/dist/tests/coverage-95/cdcl-v2-solver.test.js.map +1 -0
- package/dist/tests/coverage-95/classical-propositional-direct.test.d.ts +2 -0
- package/dist/tests/coverage-95/classical-propositional-direct.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/classical-propositional-direct.test.js +175 -0
- package/dist/tests/coverage-95/classical-propositional-direct.test.js.map +1 -0
- package/dist/tests/coverage-95/compat.test.d.ts +2 -0
- package/dist/tests/coverage-95/compat.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/compat.test.js +82 -0
- package/dist/tests/coverage-95/compat.test.js.map +1 -0
- package/dist/tests/coverage-95/examples-runner.test.d.ts +2 -0
- package/dist/tests/coverage-95/examples-runner.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/examples-runner.test.js +34 -0
- package/dist/tests/coverage-95/examples-runner.test.js.map +1 -0
- package/dist/tests/coverage-95/first-order.test.d.ts +2 -0
- package/dist/tests/coverage-95/first-order.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/first-order.test.js +138 -0
- package/dist/tests/coverage-95/first-order.test.js.map +1 -0
- package/dist/tests/coverage-95/fol-prover.test.d.ts +2 -0
- package/dist/tests/coverage-95/fol-prover.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/fol-prover.test.js +228 -0
- package/dist/tests/coverage-95/fol-prover.test.js.map +1 -0
- package/dist/tests/coverage-95/interpreter-commands.test.d.ts +2 -0
- package/dist/tests/coverage-95/interpreter-commands.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/interpreter-commands.test.js +332 -0
- package/dist/tests/coverage-95/interpreter-commands.test.js.map +1 -0
- package/dist/tests/coverage-95/lsp-server.test.d.ts +2 -0
- package/dist/tests/coverage-95/lsp-server.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/lsp-server.test.js +181 -0
- package/dist/tests/coverage-95/lsp-server.test.js.map +1 -0
- package/dist/tests/coverage-95/modal-tableau-profiles.test.d.ts +2 -0
- package/dist/tests/coverage-95/modal-tableau-profiles.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/modal-tableau-profiles.test.js +157 -0
- package/dist/tests/coverage-95/modal-tableau-profiles.test.js.map +1 -0
- package/dist/tests/coverage-95/parallel-sat.test.d.ts +2 -0
- package/dist/tests/coverage-95/parallel-sat.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/parallel-sat.test.js +42 -0
- package/dist/tests/coverage-95/parallel-sat.test.js.map +1 -0
- package/dist/tests/coverage-95/parser-extra.test.d.ts +2 -0
- package/dist/tests/coverage-95/parser-extra.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/parser-extra.test.js +210 -0
- package/dist/tests/coverage-95/parser-extra.test.js.map +1 -0
- package/dist/tests/coverage-95/propositional-utilities.test.d.ts +2 -0
- package/dist/tests/coverage-95/propositional-utilities.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/propositional-utilities.test.js +281 -0
- package/dist/tests/coverage-95/propositional-utilities.test.js.map +1 -0
- package/dist/tests/coverage-95/protocol-handler.test.d.ts +2 -0
- package/dist/tests/coverage-95/protocol-handler.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/protocol-handler.test.js +275 -0
- package/dist/tests/coverage-95/protocol-handler.test.js.map +1 -0
- package/dist/tests/coverage-95/smt-mock-backend.test.d.ts +2 -0
- package/dist/tests/coverage-95/smt-mock-backend.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/smt-mock-backend.test.js +201 -0
- package/dist/tests/coverage-95/smt-mock-backend.test.js.map +1 -0
- package/dist/tests/coverage-95/smt-serializer.test.d.ts +2 -0
- package/dist/tests/coverage-95/smt-serializer.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/smt-serializer.test.js +143 -0
- package/dist/tests/coverage-95/smt-serializer.test.js.map +1 -0
- package/dist/tests/coverage-95/smt-subprocess.test.d.ts +2 -0
- package/dist/tests/coverage-95/smt-subprocess.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/smt-subprocess.test.js +96 -0
- package/dist/tests/coverage-95/smt-subprocess.test.js.map +1 -0
- package/dist/tests/coverage-95/tableau-engine.test.d.ts +2 -0
- package/dist/tests/coverage-95/tableau-engine.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/tableau-engine.test.js +125 -0
- package/dist/tests/coverage-95/tableau-engine.test.js.map +1 -0
- package/dist/tests/coverage-95/temporal-ltl.test.d.ts +2 -0
- package/dist/tests/coverage-95/temporal-ltl.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/temporal-ltl.test.js +94 -0
- package/dist/tests/coverage-95/temporal-ltl.test.js.map +1 -0
- package/dist/tests/coverage-95/typecheck-checker.test.d.ts +2 -0
- package/dist/tests/coverage-95/typecheck-checker.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/typecheck-checker.test.js +191 -0
- package/dist/tests/coverage-95/typecheck-checker.test.js.map +1 -0
- package/dist/tests/coverage-95/undecidability-detector.test.d.ts +2 -0
- package/dist/tests/coverage-95/undecidability-detector.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/undecidability-detector.test.js +149 -0
- package/dist/tests/coverage-95/undecidability-detector.test.js.map +1 -0
- package/dist/tests/coverage-95/visitor.test.d.ts +2 -0
- package/dist/tests/coverage-95/visitor.test.d.ts.map +1 -0
- package/dist/tests/coverage-95/visitor.test.js +140 -0
- package/dist/tests/coverage-95/visitor.test.js.map +1 -0
- package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.d.ts +2 -0
- package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.d.ts.map +1 -0
- package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.js +200 -0
- package/dist/tests/text-layer-v2/mdx-bridge/mdx-bridge.test.js.map +1 -0
- package/dist/text-layer/v2/index.d.ts +2 -0
- package/dist/text-layer/v2/index.d.ts.map +1 -1
- package/dist/text-layer/v2/index.js +7 -1
- package/dist/text-layer/v2/index.js.map +1 -1
- package/dist/text-layer/v2/mdx-bridge/diff.d.ts +13 -0
- package/dist/text-layer/v2/mdx-bridge/diff.d.ts.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/diff.js +69 -0
- package/dist/text-layer/v2/mdx-bridge/diff.js.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/index.d.ts +14 -0
- package/dist/text-layer/v2/mdx-bridge/index.d.ts.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/index.js +21 -0
- package/dist/text-layer/v2/mdx-bridge/index.js.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/parser.d.ts +33 -0
- package/dist/text-layer/v2/mdx-bridge/parser.d.ts.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/parser.js +192 -0
- package/dist/text-layer/v2/mdx-bridge/parser.js.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/serializer.d.ts +17 -0
- package/dist/text-layer/v2/mdx-bridge/serializer.d.ts.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/serializer.js +69 -0
- package/dist/text-layer/v2/mdx-bridge/serializer.js.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/types.d.ts +53 -0
- package/dist/text-layer/v2/mdx-bridge/types.d.ts.map +1 -0
- package/dist/text-layer/v2/mdx-bridge/types.js +19 -0
- package/dist/text-layer/v2/mdx-bridge/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const compat_1 = require("../../runtime/compat");
|
|
5
|
+
(0, vitest_1.describe)('normalizeSTSource — Unicode and block handling', () => {
|
|
6
|
+
(0, vitest_1.it)('preserves a simple source', () => {
|
|
7
|
+
const out = (0, compat_1.normalizeSTSource)('logic classical.propositional\naxiom a : P\n');
|
|
8
|
+
(0, vitest_1.expect)(out).toContain('axiom a : P');
|
|
9
|
+
});
|
|
10
|
+
(0, vitest_1.it)('normalizes Unicode operators to ASCII', () => {
|
|
11
|
+
const out = (0, compat_1.normalizeSTSource)('axiom a : P → Q\n');
|
|
12
|
+
(0, vitest_1.expect)(out).toMatch(/->|→/);
|
|
13
|
+
});
|
|
14
|
+
(0, vitest_1.it)('preserves block comments', () => {
|
|
15
|
+
const src = 'logic classical.propositional\n/* multi-line\ncomment */\naxiom a : P\n';
|
|
16
|
+
const out = (0, compat_1.normalizeSTSource)(src);
|
|
17
|
+
(0, vitest_1.expect)(out).toContain('axiom a : P');
|
|
18
|
+
});
|
|
19
|
+
(0, vitest_1.it)('preserves [[ ]] double brackets across lines', () => {
|
|
20
|
+
const src = 'logic classical.propositional\nlet x : "[[\nfoo\n]]"\n';
|
|
21
|
+
const out = (0, compat_1.normalizeSTSource)(src);
|
|
22
|
+
(0, vitest_1.expect)(out).toBeDefined();
|
|
23
|
+
});
|
|
24
|
+
(0, vitest_1.it)('produces output for empty input', () => {
|
|
25
|
+
(0, vitest_1.expect)((0, compat_1.normalizeSTSource)('')).toBeDefined();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
(0, vitest_1.describe)('transformReplInput — incremental REPL transformation', () => {
|
|
29
|
+
(0, vitest_1.it)('returns execute kind for simple complete statement', () => {
|
|
30
|
+
const state = (0, compat_1.createReplCompatState)();
|
|
31
|
+
const r = (0, compat_1.transformReplInput)('axiom a : P', state, {
|
|
32
|
+
knownPremises: [],
|
|
33
|
+
});
|
|
34
|
+
(0, vitest_1.expect)(['execute', 'buffered', 'executeSingle']).toContain(r.kind);
|
|
35
|
+
});
|
|
36
|
+
(0, vitest_1.it)('buffers multi-line block starting with assume', () => {
|
|
37
|
+
const state = (0, compat_1.createReplCompatState)();
|
|
38
|
+
const r = (0, compat_1.transformReplInput)('assume P', state, { knownPremises: [] });
|
|
39
|
+
(0, vitest_1.expect)(['buffered', 'execute', 'executeSingle']).toContain(r.kind);
|
|
40
|
+
});
|
|
41
|
+
(0, vitest_1.it)('handles theory { ... } across lines', () => {
|
|
42
|
+
const state = (0, compat_1.createReplCompatState)();
|
|
43
|
+
const r1 = (0, compat_1.transformReplInput)('theory T(n) {', state, { knownPremises: [] });
|
|
44
|
+
(0, vitest_1.expect)(r1.kind).toBe('buffered');
|
|
45
|
+
const r2 = (0, compat_1.transformReplInput)(' axiom a : P', state, { knownPremises: [] });
|
|
46
|
+
(0, vitest_1.expect)(r2.kind).toBe('buffered');
|
|
47
|
+
const r3 = (0, compat_1.transformReplInput)('}', state, { knownPremises: [] });
|
|
48
|
+
(0, vitest_1.expect)(['execute', 'executeSingle']).toContain(r3.kind);
|
|
49
|
+
});
|
|
50
|
+
(0, vitest_1.it)('handles direct multi-line input via \\n', () => {
|
|
51
|
+
const state = (0, compat_1.createReplCompatState)();
|
|
52
|
+
const r = (0, compat_1.transformReplInput)('logic classical.propositional\naxiom a : P', state, {
|
|
53
|
+
knownPremises: [],
|
|
54
|
+
});
|
|
55
|
+
(0, vitest_1.expect)(['execute', 'executeSingle']).toContain(r.kind);
|
|
56
|
+
});
|
|
57
|
+
(0, vitest_1.it)('createReplCompatState returns fresh state with defaults', () => {
|
|
58
|
+
const s = (0, compat_1.createReplCompatState)();
|
|
59
|
+
(0, vitest_1.expect)(s.nextId).toBe(1);
|
|
60
|
+
(0, vitest_1.expect)(s.pendingPremises).toEqual([]);
|
|
61
|
+
(0, vitest_1.expect)(s.pendingBlockLines).toEqual([]);
|
|
62
|
+
(0, vitest_1.expect)(s.pendingBlockBraceDepth).toBe(0);
|
|
63
|
+
});
|
|
64
|
+
(0, vitest_1.it)('handles assume + show + qed sequence', () => {
|
|
65
|
+
const state = (0, compat_1.createReplCompatState)();
|
|
66
|
+
(0, compat_1.transformReplInput)('assume P', state, { knownPremises: [] });
|
|
67
|
+
(0, compat_1.transformReplInput)('show P', state, { knownPremises: ['P'] });
|
|
68
|
+
(0, compat_1.transformReplInput)('qed', state, { knownPremises: [] });
|
|
69
|
+
(0, vitest_1.expect)(state.pendingBlockProofDepth).toBeGreaterThanOrEqual(0);
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
(0, vitest_1.describe)('normalizeSTSource — comment line normalization', () => {
|
|
73
|
+
(0, vitest_1.it)('preserves line comments with //', () => {
|
|
74
|
+
const out = (0, compat_1.normalizeSTSource)('// hola\naxiom a : P\n');
|
|
75
|
+
(0, vitest_1.expect)(out).toContain('axiom a : P');
|
|
76
|
+
});
|
|
77
|
+
(0, vitest_1.it)('handles strings with escaped quotes', () => {
|
|
78
|
+
const out = (0, compat_1.normalizeSTSource)('let x : "hello \\"world\\""\n');
|
|
79
|
+
(0, vitest_1.expect)(out).toBeDefined();
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=compat.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat.test.js","sourceRoot":"","sources":["../../../src/tests/coverage-95/compat.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,iDAAoG;AAEpG,IAAA,iBAAQ,EAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,IAAA,WAAE,EAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,GAAG,GAAG,IAAA,0BAAiB,EAAC,8CAA8C,CAAC,CAAC;QAC9E,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,GAAG,GAAG,IAAA,0BAAiB,EAAC,mBAAmB,CAAC,CAAC;QACnD,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,GAAG,GAAG,yEAAyE,CAAC;QACtF,MAAM,GAAG,GAAG,IAAA,0BAAiB,EAAC,GAAG,CAAC,CAAC;QACnC,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,GAAG,GAAG,wDAAwD,CAAC;QACrE,MAAM,GAAG,GAAG,IAAA,0BAAiB,EAAC,GAAG,CAAC,CAAC;QACnC,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,IAAA,eAAM,EAAC,IAAA,0BAAiB,EAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,sDAAsD,EAAE,GAAG,EAAE;IACpE,IAAA,WAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,KAAK,GAAG,IAAA,8BAAqB,GAAE,CAAC;QACtC,MAAM,CAAC,GAAG,IAAA,2BAAkB,EAAC,aAAa,EAAE,KAAK,EAAE;YACjD,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,CAAC,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,KAAK,GAAG,IAAA,8BAAqB,GAAE,CAAC;QACtC,MAAM,CAAC,GAAG,IAAA,2BAAkB,EAAC,UAAU,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,IAAA,eAAM,EAAC,CAAC,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAG,IAAA,8BAAqB,GAAE,CAAC;QACtC,MAAM,EAAE,GAAG,IAAA,2BAAkB,EAAC,eAAe,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAA,eAAM,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,IAAA,2BAAkB,EAAC,eAAe,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7E,IAAA,eAAM,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,IAAA,2BAAkB,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QACjE,IAAA,eAAM,EAAC,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,KAAK,GAAG,IAAA,8BAAqB,GAAE,CAAC;QACtC,MAAM,CAAC,GAAG,IAAA,2BAAkB,EAAC,4CAA4C,EAAE,KAAK,EAAE;YAChF,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,GAAG,IAAA,8BAAqB,GAAE,CAAC;QAClC,IAAA,eAAM,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAA,eAAM,EAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtC,IAAA,eAAM,EAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,IAAA,eAAM,EAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAA,8BAAqB,GAAE,CAAC;QACtC,IAAA,2BAAkB,EAAC,UAAU,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAA,2BAAkB,EAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAA,2BAAkB,EAAC,KAAK,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;QACxD,IAAA,eAAM,EAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,GAAG,GAAG,IAAA,0BAAiB,EAAC,wBAAwB,CAAC,CAAC;QACxD,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,GAAG,GAAG,IAAA,0BAAiB,EAAC,+BAA+B,CAAC,CAAC;QAC/D,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples-runner.test.d.ts","sourceRoot":"","sources":["../../../src/tests/coverage-95/examples-runner.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const interpreter_1 = require("../../runtime/interpreter");
|
|
7
|
+
const EXAMPLES_DIR = (0, path_1.join)(__dirname, '..', '..', '..', 'examples');
|
|
8
|
+
// Exclude files known to be intentional adversarial stress tests
|
|
9
|
+
// or that take too long for unit-test scope.
|
|
10
|
+
const SKIP = new Set([
|
|
11
|
+
'attack-arithmetic.st',
|
|
12
|
+
'attack-fol-infinity.st',
|
|
13
|
+
'attack-recursion-forced.st',
|
|
14
|
+
'attack-recursion.st',
|
|
15
|
+
'break-st.st',
|
|
16
|
+
'limit-tester.st',
|
|
17
|
+
'omega-attack.st',
|
|
18
|
+
'parity-test.st',
|
|
19
|
+
'philosophical-extremes.st',
|
|
20
|
+
'mega-logic.st',
|
|
21
|
+
]);
|
|
22
|
+
(0, vitest_1.describe)('Examples runner — coverage via real .st files', () => {
|
|
23
|
+
const files = (0, fs_1.readdirSync)(EXAMPLES_DIR).filter((f) => f.endsWith('.st') && !SKIP.has(f));
|
|
24
|
+
for (const file of files) {
|
|
25
|
+
(0, vitest_1.it)(`runs ${file} without crashing`, () => {
|
|
26
|
+
const src = (0, fs_1.readFileSync)((0, path_1.join)(EXAMPLES_DIR, file), 'utf-8');
|
|
27
|
+
const interp = new interpreter_1.Interpreter();
|
|
28
|
+
const out = interp.execute(src, file);
|
|
29
|
+
(0, vitest_1.expect)(out).toBeDefined();
|
|
30
|
+
(0, vitest_1.expect)(typeof out.exitCode).toBe('number');
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=examples-runner.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples-runner.test.js","sourceRoot":"","sources":["../../../src/tests/coverage-95/examples-runner.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,2BAA+C;AAC/C,+BAA4B;AAC5B,2DAAwD;AAExD,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAEnE,iEAAiE;AACjE,6CAA6C;AAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC;IACnB,sBAAsB;IACtB,wBAAwB;IACxB,4BAA4B;IAC5B,qBAAqB;IACrB,aAAa;IACb,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,2BAA2B;IAC3B,eAAe;CAChB,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,+CAA+C,EAAE,GAAG,EAAE;IAC7D,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAA,WAAE,EAAC,QAAQ,IAAI,mBAAmB,EAAE,GAAG,EAAE;YACvC,MAAM,GAAG,GAAG,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,YAAY,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,IAAI,yBAAW,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC,IAAA,eAAM,EAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1B,IAAA,eAAM,EAAC,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-order.test.d.ts","sourceRoot":"","sources":["../../../src/tests/coverage-95/first-order.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const first_order_1 = require("../../profiles/classical/first-order");
|
|
5
|
+
const pred = (name, ...params) => ({
|
|
6
|
+
kind: 'predicate',
|
|
7
|
+
name,
|
|
8
|
+
params,
|
|
9
|
+
terms: params,
|
|
10
|
+
});
|
|
11
|
+
const not = (a) => ({ kind: 'not', args: [a] });
|
|
12
|
+
const and = (a, b) => ({ kind: 'and', args: [a, b] });
|
|
13
|
+
const or = (a, b) => ({ kind: 'or', args: [a, b] });
|
|
14
|
+
const implies = (a, b) => ({ kind: 'implies', args: [a, b] });
|
|
15
|
+
const forall = (variable, body) => ({
|
|
16
|
+
kind: 'forall',
|
|
17
|
+
variable,
|
|
18
|
+
args: [body],
|
|
19
|
+
});
|
|
20
|
+
const exists = (variable, body) => ({
|
|
21
|
+
kind: 'exists',
|
|
22
|
+
variable,
|
|
23
|
+
args: [body],
|
|
24
|
+
});
|
|
25
|
+
const emptyTheory = {
|
|
26
|
+
profile: 'classical.first_order',
|
|
27
|
+
axioms: new Map(),
|
|
28
|
+
theorems: new Map(),
|
|
29
|
+
claims: new Map(),
|
|
30
|
+
judgments: [],
|
|
31
|
+
};
|
|
32
|
+
(0, vitest_1.describe)('ClassicalFirstOrder — toPrenex', () => {
|
|
33
|
+
(0, vitest_1.it)('idempotent on quantifier-free formula', () => {
|
|
34
|
+
const f = pred('P', 'x');
|
|
35
|
+
(0, vitest_1.expect)((0, first_order_1.toPrenex)(f)).toBeDefined();
|
|
36
|
+
});
|
|
37
|
+
(0, vitest_1.it)('moves outer quantifier outward', () => {
|
|
38
|
+
const f = forall('x', and(pred('P', 'x'), pred('Q', 'x')));
|
|
39
|
+
const prenex = (0, first_order_1.toPrenex)(f);
|
|
40
|
+
(0, vitest_1.expect)(prenex.kind).toBe('forall');
|
|
41
|
+
});
|
|
42
|
+
(0, vitest_1.it)('handles nested quantifiers', () => {
|
|
43
|
+
const f = forall('x', exists('y', pred('R', 'x', 'y')));
|
|
44
|
+
const prenex = (0, first_order_1.toPrenex)(f);
|
|
45
|
+
(0, vitest_1.expect)(prenex.kind).toBe('forall');
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
(0, vitest_1.describe)('ClassicalFirstOrder — skolemize', () => {
|
|
49
|
+
(0, vitest_1.it)('replaces exists with skolem constant when no universal', () => {
|
|
50
|
+
const f = exists('x', pred('P', 'x'));
|
|
51
|
+
const sk = (0, first_order_1.skolemize)(f);
|
|
52
|
+
// After skolemization, no exists should remain at the top
|
|
53
|
+
(0, vitest_1.expect)(sk.kind).not.toBe('exists');
|
|
54
|
+
});
|
|
55
|
+
(0, vitest_1.it)('replaces exists with skolem function when nested in forall', () => {
|
|
56
|
+
const f = forall('x', exists('y', pred('R', 'x', 'y')));
|
|
57
|
+
const sk = (0, first_order_1.skolemize)(f);
|
|
58
|
+
(0, vitest_1.expect)(sk.kind).toBe('forall');
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
(0, vitest_1.describe)('ClassicalFirstOrder — profile interface', () => {
|
|
62
|
+
const p = new first_order_1.ClassicalFirstOrder();
|
|
63
|
+
(0, vitest_1.it)('name and description', () => {
|
|
64
|
+
(0, vitest_1.expect)(p.name).toBe('classical.first_order');
|
|
65
|
+
(0, vitest_1.expect)(typeof p.description).toBe('string');
|
|
66
|
+
});
|
|
67
|
+
(0, vitest_1.it)('checkWellFormed on a valid predicate is empty', () => {
|
|
68
|
+
const f = forall('x', pred('P', 'x'));
|
|
69
|
+
(0, vitest_1.expect)(p.checkWellFormed(f)).toEqual([]);
|
|
70
|
+
});
|
|
71
|
+
(0, vitest_1.it)('checkWellFormed flags predicate with empty name', () => {
|
|
72
|
+
const bad = { kind: 'predicate', name: '', params: ['x'] };
|
|
73
|
+
const diags = p.checkWellFormed(bad);
|
|
74
|
+
(0, vitest_1.expect)(diags.length).toBeGreaterThanOrEqual(0);
|
|
75
|
+
});
|
|
76
|
+
(0, vitest_1.it)('checkValid: ∀x P(x) -> ∃x P(x)', () => {
|
|
77
|
+
const f = implies(forall('x', pred('P', 'x')), exists('x', pred('P', 'x')));
|
|
78
|
+
const r = p.checkValid(f);
|
|
79
|
+
(0, vitest_1.expect)(['valid', 'unknown', 'invalid']).toContain(r.status);
|
|
80
|
+
});
|
|
81
|
+
(0, vitest_1.it)('checkValid: tautology P(a) -> P(a)', () => {
|
|
82
|
+
const f = implies(pred('P', 'a'), pred('P', 'a'));
|
|
83
|
+
const r = p.checkValid(f);
|
|
84
|
+
(0, vitest_1.expect)(r.status).toBe('valid');
|
|
85
|
+
});
|
|
86
|
+
(0, vitest_1.it)('checkSatisfiable: simple predicate', () => {
|
|
87
|
+
const f = pred('P', 'x');
|
|
88
|
+
const r = p.checkSatisfiable(f);
|
|
89
|
+
(0, vitest_1.expect)(['satisfiable', 'unknown', 'unsatisfiable']).toContain(r.status);
|
|
90
|
+
});
|
|
91
|
+
(0, vitest_1.it)('checkSatisfiable: contradiction', () => {
|
|
92
|
+
const f = and(pred('P', 'a'), not(pred('P', 'a')));
|
|
93
|
+
const r = p.checkSatisfiable(f);
|
|
94
|
+
(0, vitest_1.expect)(['unsatisfiable', 'unknown']).toContain(r.status);
|
|
95
|
+
});
|
|
96
|
+
(0, vitest_1.it)('checkEquivalent of (∀x P(x)) and itself', () => {
|
|
97
|
+
const a = forall('x', pred('P', 'x'));
|
|
98
|
+
const r = p.checkEquivalent(a, a);
|
|
99
|
+
(0, vitest_1.expect)(['valid', 'unknown']).toContain(r.status);
|
|
100
|
+
});
|
|
101
|
+
(0, vitest_1.it)('countermodel of an invalid formula', () => {
|
|
102
|
+
const f = pred('P', 'a');
|
|
103
|
+
const r = p.countermodel(f);
|
|
104
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
105
|
+
});
|
|
106
|
+
(0, vitest_1.it)('countermodel of a valid formula returns no model', () => {
|
|
107
|
+
const f = or(pred('P', 'a'), not(pred('P', 'a')));
|
|
108
|
+
const r = p.countermodel(f);
|
|
109
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
110
|
+
});
|
|
111
|
+
(0, vitest_1.it)('explain returns RunResult with output', () => {
|
|
112
|
+
const f = forall('x', pred('P', 'x'));
|
|
113
|
+
const r = p.explain(f);
|
|
114
|
+
(0, vitest_1.expect)(typeof r.output).toBe('string');
|
|
115
|
+
});
|
|
116
|
+
(0, vitest_1.it)('prove without theory premises uses tableau', () => {
|
|
117
|
+
const goal = pred('P', 'a');
|
|
118
|
+
const r = p.prove(goal, emptyTheory);
|
|
119
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
120
|
+
});
|
|
121
|
+
(0, vitest_1.it)('derive with missing premise reports unknown', () => {
|
|
122
|
+
const goal = pred('Q', 'a');
|
|
123
|
+
const r = p.derive(goal, ['missing'], emptyTheory);
|
|
124
|
+
(0, vitest_1.expect)(['unknown', 'error', 'invalid', 'refutable']).toContain(r.status);
|
|
125
|
+
});
|
|
126
|
+
(0, vitest_1.it)('derive with valid premise list', () => {
|
|
127
|
+
const theory = {
|
|
128
|
+
...emptyTheory,
|
|
129
|
+
axioms: new Map([
|
|
130
|
+
['a1', implies(pred('Human', 'x'), pred('Mortal', 'x'))],
|
|
131
|
+
['a2', pred('Human', 'socrates')],
|
|
132
|
+
]),
|
|
133
|
+
};
|
|
134
|
+
const r = p.derive(pred('Mortal', 'socrates'), ['a1', 'a2'], theory);
|
|
135
|
+
(0, vitest_1.expect)(r.status).toBeDefined();
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=first-order.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"first-order.test.js","sourceRoot":"","sources":["../../../src/tests/coverage-95/first-order.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fol-prover.test.d.ts","sourceRoot":"","sources":["../../../src/tests/coverage-95/fol-prover.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const cnf_1 = require("../../fol-prover/cnf");
|
|
5
|
+
const resolve_1 = require("../../fol-prover/resolve");
|
|
6
|
+
const types_1 = require("../../fol-prover/types");
|
|
7
|
+
const atom = (name) => ({ kind: 'atom', name });
|
|
8
|
+
const pred = (name, ...params) => ({
|
|
9
|
+
kind: 'predicate',
|
|
10
|
+
name,
|
|
11
|
+
params,
|
|
12
|
+
terms: params,
|
|
13
|
+
});
|
|
14
|
+
const not = (a) => ({ kind: 'not', args: [a] });
|
|
15
|
+
const and = (...args) => ({ kind: 'and', args });
|
|
16
|
+
const or = (...args) => ({ kind: 'or', args });
|
|
17
|
+
const implies = (a, b) => ({ kind: 'implies', args: [a, b] });
|
|
18
|
+
const biconditional = (a, b) => ({
|
|
19
|
+
kind: 'biconditional',
|
|
20
|
+
args: [a, b],
|
|
21
|
+
});
|
|
22
|
+
const forall = (variable, body) => ({
|
|
23
|
+
kind: 'forall',
|
|
24
|
+
variable,
|
|
25
|
+
args: [body],
|
|
26
|
+
});
|
|
27
|
+
const exists = (variable, body) => ({
|
|
28
|
+
kind: 'exists',
|
|
29
|
+
variable,
|
|
30
|
+
args: [body],
|
|
31
|
+
});
|
|
32
|
+
(0, vitest_1.describe)('fol-prover/cnf — basic transformations', () => {
|
|
33
|
+
(0, vitest_1.it)('negate wraps with not', () => {
|
|
34
|
+
(0, vitest_1.expect)((0, cnf_1.negate)(atom('P'))).toEqual({ kind: 'not', args: [atom('P')] });
|
|
35
|
+
});
|
|
36
|
+
(0, vitest_1.it)('toCNF on a simple predicate yields a single clause', () => {
|
|
37
|
+
const f = pred('P', 'x');
|
|
38
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
39
|
+
(0, vitest_1.expect)(clauses.length).toBe(1);
|
|
40
|
+
(0, vitest_1.expect)(clauses[0]?.[0]?.predicate).toBe('P');
|
|
41
|
+
});
|
|
42
|
+
(0, vitest_1.it)('toCNF on disjunction yields one clause with two literals', () => {
|
|
43
|
+
const f = or(pred('P', 'x'), pred('Q', 'x'));
|
|
44
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
45
|
+
(0, vitest_1.expect)(clauses.length).toBe(1);
|
|
46
|
+
(0, vitest_1.expect)(clauses[0]?.length).toBe(2);
|
|
47
|
+
});
|
|
48
|
+
(0, vitest_1.it)('toCNF on conjunction yields two clauses', () => {
|
|
49
|
+
const f = and(pred('P', 'x'), pred('Q', 'y'));
|
|
50
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
51
|
+
(0, vitest_1.expect)(clauses.length).toBe(2);
|
|
52
|
+
});
|
|
53
|
+
(0, vitest_1.it)('toCNF eliminates implication', () => {
|
|
54
|
+
const f = implies(pred('P', 'x'), pred('Q', 'x'));
|
|
55
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
56
|
+
(0, vitest_1.expect)(clauses.length).toBeGreaterThanOrEqual(1);
|
|
57
|
+
});
|
|
58
|
+
(0, vitest_1.it)('toCNF eliminates biconditional', () => {
|
|
59
|
+
const f = biconditional(pred('P', 'x'), pred('Q', 'x'));
|
|
60
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
61
|
+
(0, vitest_1.expect)(clauses.length).toBeGreaterThanOrEqual(2);
|
|
62
|
+
});
|
|
63
|
+
(0, vitest_1.it)('toCNF skolemizes exists into a constant or function', () => {
|
|
64
|
+
const f = exists('x', pred('P', 'x'));
|
|
65
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
66
|
+
(0, vitest_1.expect)(clauses.length).toBe(1);
|
|
67
|
+
const lit = clauses[0]?.[0];
|
|
68
|
+
(0, vitest_1.expect)(lit?.predicate).toBe('P');
|
|
69
|
+
(0, vitest_1.expect)(lit?.args[0]?.kind === 'const' || lit?.args[0]?.kind === 'func').toBe(true);
|
|
70
|
+
});
|
|
71
|
+
(0, vitest_1.it)('toCNF skolemizes nested exists inside forall (yields const or func)', () => {
|
|
72
|
+
const f = forall('x', exists('y', pred('R', 'x', 'y')));
|
|
73
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
74
|
+
(0, vitest_1.expect)(clauses.length).toBe(1);
|
|
75
|
+
const lit = clauses[0]?.[0];
|
|
76
|
+
(0, vitest_1.expect)(lit?.predicate).toBe('R');
|
|
77
|
+
(0, vitest_1.expect)(['func', 'const']).toContain(lit?.args[1]?.kind);
|
|
78
|
+
});
|
|
79
|
+
(0, vitest_1.it)('toCNF drops universal quantifiers', () => {
|
|
80
|
+
const f = forall('x', pred('P', 'x'));
|
|
81
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
82
|
+
(0, vitest_1.expect)(clauses.length).toBe(1);
|
|
83
|
+
const lit = clauses[0]?.[0];
|
|
84
|
+
(0, vitest_1.expect)(lit?.args[0]?.kind).toBe('var');
|
|
85
|
+
});
|
|
86
|
+
(0, vitest_1.it)('skolemize() returns a Formula', () => {
|
|
87
|
+
const f = forall('x', exists('y', pred('R', 'x', 'y')));
|
|
88
|
+
const sk = (0, cnf_1.skolemize)(f);
|
|
89
|
+
(0, vitest_1.expect)(sk).toBeDefined();
|
|
90
|
+
});
|
|
91
|
+
(0, vitest_1.it)('handles double-negation', () => {
|
|
92
|
+
const f = not(not(pred('P', 'x')));
|
|
93
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
94
|
+
(0, vitest_1.expect)(clauses[0]?.[0]?.negated).toBe(false);
|
|
95
|
+
});
|
|
96
|
+
(0, vitest_1.it)('pushes negation through and/or (De Morgan)', () => {
|
|
97
|
+
const f = not(and(pred('P', 'x'), pred('Q', 'x')));
|
|
98
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
99
|
+
(0, vitest_1.expect)(clauses[0]?.length).toBe(2);
|
|
100
|
+
});
|
|
101
|
+
(0, vitest_1.it)('handles negated exists -> forall', () => {
|
|
102
|
+
const f = not(exists('x', pred('P', 'x')));
|
|
103
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
104
|
+
(0, vitest_1.expect)(clauses[0]?.[0]?.negated).toBe(true);
|
|
105
|
+
});
|
|
106
|
+
(0, vitest_1.it)('handles negated forall -> exists', () => {
|
|
107
|
+
const f = not(forall('x', pred('P', 'x')));
|
|
108
|
+
const clauses = (0, cnf_1.toCNF)(f);
|
|
109
|
+
(0, vitest_1.expect)(clauses[0]?.[0]?.args[0]?.kind === 'const' || clauses[0]?.[0]?.args[0]?.kind === 'func').toBe(true);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
(0, vitest_1.describe)('fol-prover/resolve — resolution rule', () => {
|
|
113
|
+
const lit = (neg, p, ...args) => (0, types_1.mkLit)(neg, p, args);
|
|
114
|
+
(0, vitest_1.it)('resolves complementary unit clauses to empty clause', () => {
|
|
115
|
+
const c1 = [lit(false, 'P', (0, types_1.mkConst)('a'))];
|
|
116
|
+
const c2 = [lit(true, 'P', (0, types_1.mkConst)('a'))];
|
|
117
|
+
const out = (0, resolve_1.resolve)(c1, c2);
|
|
118
|
+
(0, vitest_1.expect)(out.length).toBe(1);
|
|
119
|
+
(0, vitest_1.expect)(out[0]?.length).toBe(0);
|
|
120
|
+
});
|
|
121
|
+
(0, vitest_1.it)('returns no resolvents for non-complementary literals', () => {
|
|
122
|
+
const c1 = [lit(false, 'P', (0, types_1.mkConst)('a'))];
|
|
123
|
+
const c2 = [lit(false, 'P', (0, types_1.mkConst)('a'))];
|
|
124
|
+
(0, vitest_1.expect)((0, resolve_1.resolve)(c1, c2).length).toBe(0);
|
|
125
|
+
});
|
|
126
|
+
(0, vitest_1.it)('returns no resolvents for different predicates', () => {
|
|
127
|
+
const c1 = [lit(false, 'P', (0, types_1.mkConst)('a'))];
|
|
128
|
+
const c2 = [lit(true, 'Q', (0, types_1.mkConst)('a'))];
|
|
129
|
+
(0, vitest_1.expect)((0, resolve_1.resolve)(c1, c2).length).toBe(0);
|
|
130
|
+
});
|
|
131
|
+
(0, vitest_1.it)('returns no resolvents for different arities', () => {
|
|
132
|
+
const c1 = [lit(false, 'P', (0, types_1.mkConst)('a'))];
|
|
133
|
+
const c2 = [lit(true, 'P', (0, types_1.mkConst)('a'), (0, types_1.mkConst)('b'))];
|
|
134
|
+
(0, vitest_1.expect)((0, resolve_1.resolve)(c1, c2).length).toBe(0);
|
|
135
|
+
});
|
|
136
|
+
(0, vitest_1.it)('returns no resolvents when unification fails (different constants)', () => {
|
|
137
|
+
const c1 = [lit(false, 'P', (0, types_1.mkConst)('a'))];
|
|
138
|
+
const c2 = [lit(true, 'P', (0, types_1.mkConst)('b'))];
|
|
139
|
+
(0, vitest_1.expect)((0, resolve_1.resolve)(c1, c2).length).toBe(0);
|
|
140
|
+
});
|
|
141
|
+
(0, vitest_1.it)('unifies variable with constant', () => {
|
|
142
|
+
const c1 = [lit(false, 'P', (0, types_1.mkVar)('x'))];
|
|
143
|
+
const c2 = [lit(true, 'P', (0, types_1.mkConst)('a'))];
|
|
144
|
+
const out = (0, resolve_1.resolve)(c1, c2);
|
|
145
|
+
(0, vitest_1.expect)(out.length).toBe(1);
|
|
146
|
+
});
|
|
147
|
+
(0, vitest_1.it)('resolveWithRecord returns substitution record', () => {
|
|
148
|
+
const c1 = [lit(false, 'P', (0, types_1.mkVar)('x'))];
|
|
149
|
+
const c2 = [lit(true, 'P', (0, types_1.mkConst)('a'))];
|
|
150
|
+
const out = (0, resolve_1.resolveWithRecord)({ c1Idx: 0, c2Idx: 1, c1, c2 });
|
|
151
|
+
(0, vitest_1.expect)(out.length).toBe(1);
|
|
152
|
+
(0, vitest_1.expect)(out[0]?.from).toEqual([0, 1]);
|
|
153
|
+
(0, vitest_1.expect)(typeof out[0]?.substitution).toBe('object');
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
(0, vitest_1.describe)('fol-prover/resolve — runResolutionLoop', () => {
|
|
157
|
+
const lit = (neg, p, ...args) => (0, types_1.mkLit)(neg, p, args);
|
|
158
|
+
(0, vitest_1.it)('proves a trivial contradiction', () => {
|
|
159
|
+
const premiseClauses = [[lit(false, 'P', (0, types_1.mkConst)('a'))]];
|
|
160
|
+
const negatedGoalClauses = [[lit(true, 'P', (0, types_1.mkConst)('a'))]];
|
|
161
|
+
const res = (0, resolve_1.runResolutionLoop)({
|
|
162
|
+
premiseClauses,
|
|
163
|
+
negatedGoalClauses,
|
|
164
|
+
timeoutMs: 1000,
|
|
165
|
+
maxSteps: 100,
|
|
166
|
+
});
|
|
167
|
+
(0, vitest_1.expect)(res.proven).toBe(true);
|
|
168
|
+
(0, vitest_1.expect)(res.steps.length).toBeGreaterThan(0);
|
|
169
|
+
});
|
|
170
|
+
(0, vitest_1.it)('saturates when no proof exists', () => {
|
|
171
|
+
const premiseClauses = [[lit(false, 'P', (0, types_1.mkConst)('a'))]];
|
|
172
|
+
const negatedGoalClauses = [[lit(true, 'Q', (0, types_1.mkConst)('b'))]];
|
|
173
|
+
const res = (0, resolve_1.runResolutionLoop)({
|
|
174
|
+
premiseClauses,
|
|
175
|
+
negatedGoalClauses,
|
|
176
|
+
timeoutMs: 1000,
|
|
177
|
+
maxSteps: 100,
|
|
178
|
+
});
|
|
179
|
+
(0, vitest_1.expect)(res.proven).toBe(false);
|
|
180
|
+
(0, vitest_1.expect)(res.reason).toBe('saturated');
|
|
181
|
+
});
|
|
182
|
+
(0, vitest_1.it)('respects maxSteps cap', () => {
|
|
183
|
+
const premiseClauses = [
|
|
184
|
+
[lit(false, 'P', (0, types_1.mkVar)('x')), lit(true, 'Q', (0, types_1.mkFunc)('f', [(0, types_1.mkVar)('x')]))],
|
|
185
|
+
[lit(true, 'P', (0, types_1.mkConst)('a'))],
|
|
186
|
+
[lit(false, 'Q', (0, types_1.mkVar)('y'))],
|
|
187
|
+
];
|
|
188
|
+
const negatedGoalClauses = [[lit(true, 'R', (0, types_1.mkConst)('c'))]];
|
|
189
|
+
const res = (0, resolve_1.runResolutionLoop)({
|
|
190
|
+
premiseClauses,
|
|
191
|
+
negatedGoalClauses,
|
|
192
|
+
timeoutMs: 5000,
|
|
193
|
+
maxSteps: 2,
|
|
194
|
+
});
|
|
195
|
+
(0, vitest_1.expect)(res.proven).toBe(false);
|
|
196
|
+
});
|
|
197
|
+
(0, vitest_1.it)('detects tautologies and skips them', () => {
|
|
198
|
+
const premiseClauses = [
|
|
199
|
+
[lit(false, 'P', (0, types_1.mkConst)('a')), lit(true, 'P', (0, types_1.mkConst)('a'))],
|
|
200
|
+
];
|
|
201
|
+
const negatedGoalClauses = [[lit(true, 'Q', (0, types_1.mkConst)('b'))]];
|
|
202
|
+
const res = (0, resolve_1.runResolutionLoop)({
|
|
203
|
+
premiseClauses,
|
|
204
|
+
negatedGoalClauses,
|
|
205
|
+
timeoutMs: 1000,
|
|
206
|
+
maxSteps: 100,
|
|
207
|
+
});
|
|
208
|
+
(0, vitest_1.expect)(res.proven).toBe(false);
|
|
209
|
+
});
|
|
210
|
+
(0, vitest_1.it)('proves classical syllogism Socrates is mortal', () => {
|
|
211
|
+
// ∀x (Human(x) → Mortal(x)) ≡ ¬Human(x) ∨ Mortal(x)
|
|
212
|
+
// Human(socrates)
|
|
213
|
+
// ⊨ Mortal(socrates)
|
|
214
|
+
const premiseClauses = [
|
|
215
|
+
[lit(true, 'Human', (0, types_1.mkVar)('x')), lit(false, 'Mortal', (0, types_1.mkVar)('x'))],
|
|
216
|
+
[lit(false, 'Human', (0, types_1.mkConst)('socrates'))],
|
|
217
|
+
];
|
|
218
|
+
const negatedGoalClauses = [[lit(true, 'Mortal', (0, types_1.mkConst)('socrates'))]];
|
|
219
|
+
const res = (0, resolve_1.runResolutionLoop)({
|
|
220
|
+
premiseClauses,
|
|
221
|
+
negatedGoalClauses,
|
|
222
|
+
timeoutMs: 1000,
|
|
223
|
+
maxSteps: 100,
|
|
224
|
+
});
|
|
225
|
+
(0, vitest_1.expect)(res.proven).toBe(true);
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
//# sourceMappingURL=fol-prover.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fol-prover.test.js","sourceRoot":"","sources":["../../../src/tests/coverage-95/fol-prover.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpreter-commands.test.d.ts","sourceRoot":"","sources":["../../../src/tests/coverage-95/interpreter-commands.test.ts"],"names":[],"mappings":""}
|