@proposit/proposit-core 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/lib/core/argument-engine.d.ts +46 -4
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +84 -18
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/evaluation/argument-evaluation.d.ts +17 -0
- package/dist/lib/core/evaluation/argument-evaluation.d.ts.map +1 -1
- package/dist/lib/core/evaluation/argument-evaluation.js +5 -1
- package/dist/lib/core/evaluation/argument-evaluation.js.map +1 -1
- package/dist/lib/core/evaluation/satisfiability.d.ts +21 -11
- package/dist/lib/core/evaluation/satisfiability.d.ts.map +1 -1
- package/dist/lib/core/evaluation/satisfiability.js +164 -14
- package/dist/lib/core/evaluation/satisfiability.js.map +1 -1
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +43 -7
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
- package/dist/lib/types/evaluation.d.ts +18 -3
- package/dist/lib/types/evaluation.d.ts.map +1 -1
- package/dist/lib/utils/derivation-validation.d.ts +8 -5
- package/dist/lib/utils/derivation-validation.d.ts.map +1 -1
- package/dist/lib/utils/derivation-validation.js +22 -13
- package/dist/lib/utils/derivation-validation.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,14 +4,17 @@ import { DERIVATION_STRUCTURE_INVALID } from "../types/validation.js";
|
|
|
4
4
|
* Validate that a derivation premise's expression tree conforms to the
|
|
5
5
|
* structural rules in the v0.11.0 spec:
|
|
6
6
|
*
|
|
7
|
-
* - Root must be either a single variable expression for
|
|
8
|
-
* claim
|
|
7
|
+
* - Root must be either a single variable expression for a variable bound
|
|
8
|
+
* to the derived claim (naked form), or an `implies`/`iff` operator with
|
|
9
9
|
* arity 2.
|
|
10
10
|
* - When the root is `implies`/`iff`:
|
|
11
11
|
* - position 0 (antecedent slot) is any valid expression tree.
|
|
12
|
-
* - position 1 (consequent slot) is exactly
|
|
13
|
-
*
|
|
14
|
-
* variable, no formula wrapper.
|
|
12
|
+
* - position 1 (consequent slot) is exactly a variable expression for
|
|
13
|
+
* a variable bound to the derived claim. No operator subtree, no
|
|
14
|
+
* variable bound elsewhere, no formula wrapper.
|
|
15
|
+
*
|
|
16
|
+
* A claim may bind more than one variable, and each of them stands for that
|
|
17
|
+
* claim — so any of them satisfies the consequent slot.
|
|
15
18
|
*
|
|
16
19
|
* Returns a `TInvariantValidationResult` with one violation per detected
|
|
17
20
|
* rule break, all using `DERIVATION_STRUCTURE_INVALID` (the message
|
|
@@ -22,9 +25,14 @@ import { DERIVATION_STRUCTURE_INVALID } from "../types/validation.js";
|
|
|
22
25
|
*/
|
|
23
26
|
export function validateDerivationStructure(premise, expressions, variables) {
|
|
24
27
|
const violations = [];
|
|
25
|
-
// 1. Locate the claim-bound
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
// 1. Locate the claim-bound variables for derivedClaimId. A claim may bind
|
|
29
|
+
// more than one, and each of them stands for the derived claim — so the
|
|
30
|
+
// consequent slot naming any of them is well-formed. Matching only the
|
|
31
|
+
// first would call a correct premise malformed on nothing but id order.
|
|
32
|
+
const consequentVariableIds = new Set(variables
|
|
33
|
+
.filter((v) => isClaimBound(v) && v.claimId === premise.derivedClaimId)
|
|
34
|
+
.map((v) => v.id));
|
|
35
|
+
if (consequentVariableIds.size === 0) {
|
|
28
36
|
violations.push({
|
|
29
37
|
entityType: "premise",
|
|
30
38
|
entityId: premise.id,
|
|
@@ -55,14 +63,15 @@ export function validateDerivationStructure(premise, expressions, variables) {
|
|
|
55
63
|
}
|
|
56
64
|
const root = rootExpressions[0];
|
|
57
65
|
// 3. Validate root shape.
|
|
58
|
-
// Naked form: root is a variable expression for
|
|
66
|
+
// Naked form: root is a variable expression for a variable bound to the
|
|
67
|
+
// derived claim.
|
|
59
68
|
if (root.type === "variable") {
|
|
60
|
-
if (root.variableId
|
|
69
|
+
if (!consequentVariableIds.has(root.variableId)) {
|
|
61
70
|
violations.push({
|
|
62
71
|
entityType: "premise",
|
|
63
72
|
entityId: premise.id,
|
|
64
73
|
code: DERIVATION_STRUCTURE_INVALID,
|
|
65
|
-
message: `Naked-form root variable ${root.variableId}
|
|
74
|
+
message: `Naked-form root variable ${root.variableId} is not bound to derivedClaimId ${premise.derivedClaimId} (bound variables: ${[...consequentVariableIds].join(", ")})`,
|
|
66
75
|
});
|
|
67
76
|
}
|
|
68
77
|
return { ok: violations.length === 0, violations };
|
|
@@ -84,12 +93,12 @@ export function validateDerivationStructure(premise, expressions, variables) {
|
|
|
84
93
|
}
|
|
85
94
|
const consequent = children[1];
|
|
86
95
|
if (consequent.type !== "variable" ||
|
|
87
|
-
consequent.variableId
|
|
96
|
+
!consequentVariableIds.has(consequent.variableId)) {
|
|
88
97
|
violations.push({
|
|
89
98
|
entityType: "premise",
|
|
90
99
|
entityId: premise.id,
|
|
91
100
|
code: DERIVATION_STRUCTURE_INVALID,
|
|
92
|
-
message: "Consequent slot (position 1) must be
|
|
101
|
+
message: "Consequent slot (position 1) must be a variable expression for a variable bound to derivedClaimId",
|
|
93
102
|
});
|
|
94
103
|
}
|
|
95
104
|
return { ok: violations.length === 0, violations };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivation-validation.js","sourceRoot":"","sources":["../../../src/lib/utils/derivation-validation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAE3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AAErE
|
|
1
|
+
{"version":3,"file":"derivation-validation.js","sourceRoot":"","sources":["../../../src/lib/utils/derivation-validation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAE3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AAErE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,2BAA2B,CACvC,OAA+B,EAC/B,WAA2C,EAC3C,SAAuC;IAEvC,MAAM,UAAU,GAA6C,EAAE,CAAA;IAE/D,2EAA2E;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,wEAAwE;IACxE,MAAM,qBAAqB,GAAG,IAAI,GAAG,CACjC,SAAS;SACJ,MAAM,CACH,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,cAAc,CACjE;SACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACxB,CAAA;IACD,IAAI,qBAAqB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACnC,UAAU,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,OAAO,CAAC,EAAE;YACpB,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,8CAA8C,OAAO,CAAC,cAAc,mBAAmB;SACnG,CAAC,CAAA;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;IACpC,CAAC;IAED,oEAAoE;IACpE,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAC3D,CAAA;IACD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,UAAU,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,OAAO,CAAC,EAAE;YACpB,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,2CAA2C;SACvD,CAAC,CAAA;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;IACpC,CAAC;IACD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE,OAAO,CAAC,EAAE;YACpB,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,kDAAkD;SAC9D,CAAC,CAAA;QACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;IACpC,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;IAE/B,0BAA0B;IAE1B,wEAAwE;IACxE,iBAAiB;IACjB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,UAAU,CAAC,IAAI,CAAC;gBACZ,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,OAAO,CAAC,EAAE;gBACpB,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,4BAA4B,IAAI,CAAC,UAAU,mCAAmC,OAAO,CAAC,cAAc,sBAAsB,CAAC,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAC9K,CAAC,CAAA;QACN,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACtD,CAAC;IAED,uEAAuE;IACvE,IACI,IAAI,CAAC,IAAI,KAAK,UAAU;QACxB,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,EAC1D,CAAC;QACC,MAAM,QAAQ,GAAG,WAAW;aACvB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC;aACrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;QAE5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC;gBACZ,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,OAAO,CAAC,EAAE;gBACpB,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,mBAAmB,IAAI,CAAC,QAAQ,2BAA2B,QAAQ,CAAC,MAAM,GAAG;aACzF,CAAC,CAAA;YACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;QACpC,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC9B,IACI,UAAU,CAAC,IAAI,KAAK,UAAU;YAC9B,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EACnD,CAAC;YACC,UAAU,CAAC,IAAI,CAAC;gBACZ,UAAU,EAAE,SAAS;gBACrB,QAAQ,EAAE,OAAO,CAAC,EAAE;gBACpB,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EACH,mGAAmG;aAC1G,CAAC,CAAA;QACN,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACtD,CAAC;IAED,yEAAyE;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IACrE,UAAU,CAAC,IAAI,CAAC;QACZ,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,OAAO,CAAC,EAAE;QACpB,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,sFAAsF,QAAQ,GAAG;KAC7G,CAAC,CAAA;IACF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;AACpC,CAAC"}
|