@polintpro/proposit-core 0.8.7 → 0.8.8
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/extensions/ieee/formatting.d.ts +2 -14
- package/dist/extensions/ieee/formatting.d.ts.map +1 -1
- package/dist/extensions/ieee/formatting.js +42 -1038
- package/dist/extensions/ieee/formatting.js.map +1 -1
- package/dist/extensions/ieee/index.d.ts +1 -0
- package/dist/extensions/ieee/index.d.ts.map +1 -1
- package/dist/extensions/ieee/index.js +1 -0
- package/dist/extensions/ieee/index.js.map +1 -1
- package/dist/extensions/ieee/segment-builder.d.ts +9 -0
- package/dist/extensions/ieee/segment-builder.d.ts.map +1 -0
- package/dist/extensions/ieee/segment-builder.js +98 -0
- package/dist/extensions/ieee/segment-builder.js.map +1 -0
- package/dist/extensions/ieee/segment-templates.d.ts +58 -0
- package/dist/extensions/ieee/segment-templates.d.ts.map +1 -0
- package/dist/extensions/ieee/segment-templates.js +1618 -0
- package/dist/extensions/ieee/segment-templates.js.map +1 -0
- package/dist/lib/core/argument-engine.d.ts +2 -19
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +46 -819
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/argument-validation.d.ts +74 -0
- package/dist/lib/core/argument-validation.d.ts.map +1 -0
- package/dist/lib/core/argument-validation.js +315 -0
- package/dist/lib/core/argument-validation.js.map +1 -0
- package/dist/lib/core/evaluation/argument-evaluation.d.ts +53 -0
- package/dist/lib/core/evaluation/argument-evaluation.d.ts.map +1 -0
- package/dist/lib/core/evaluation/argument-evaluation.js +535 -0
- package/dist/lib/core/evaluation/argument-evaluation.js.map +1 -0
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +2 -0
- package/dist/lib/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argument-validation.js","sourceRoot":"","sources":["../../../src/lib/core/argument-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type TCorePropositionalExpression, type TCorePropositionalVariable } from "../../schemata/index.js";
|
|
2
|
+
import type { TCoreArgumentEvaluationOptions, TCoreArgumentEvaluationResult, TCoreExpressionAssignment, TCoreValidityCheckOptions, TCoreValidityCheckResult, TCoreVariableAssignment, TCorePremiseEvaluationResult, TCoreValidationResult } from "../../types/evaluation.js";
|
|
3
|
+
/**
|
|
4
|
+
* Read-only interface providing the data an evaluation needs from an
|
|
5
|
+
* argument engine. This is intentionally narrow — evaluation should
|
|
6
|
+
* not mutate anything.
|
|
7
|
+
*/
|
|
8
|
+
export interface TArgumentEvaluationContext {
|
|
9
|
+
/** The argument's own ID. */
|
|
10
|
+
argumentId: string;
|
|
11
|
+
/** Returns the conclusion PremiseEngine, or undefined. */
|
|
12
|
+
getConclusionPremise(): TEvaluablePremise | undefined;
|
|
13
|
+
/** Returns supporting premises (inference premises minus conclusion). */
|
|
14
|
+
listSupportingPremises(): TEvaluablePremise[];
|
|
15
|
+
/** Returns all premises. */
|
|
16
|
+
listPremises(): TEvaluablePremise[];
|
|
17
|
+
/** The conclusion premise ID, if set. */
|
|
18
|
+
conclusionPremiseId: string | undefined;
|
|
19
|
+
/** Look up a variable by ID. */
|
|
20
|
+
getVariable(variableId: string): TCorePropositionalVariable | undefined;
|
|
21
|
+
/** Look up a premise by ID. */
|
|
22
|
+
getPremise(premiseId: string): TEvaluablePremise | undefined;
|
|
23
|
+
/** Pre-evaluation structural validation. */
|
|
24
|
+
validateEvaluability(): TCoreValidationResult;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Narrow view of a PremiseEngine needed for evaluation.
|
|
28
|
+
*/
|
|
29
|
+
export interface TEvaluablePremise {
|
|
30
|
+
getId(): string;
|
|
31
|
+
getExpressions(): TCorePropositionalExpression[];
|
|
32
|
+
getChildExpressions(parentId: string): TCorePropositionalExpression[];
|
|
33
|
+
getVariables(): TCorePropositionalVariable[];
|
|
34
|
+
evaluate(assignment: TCoreExpressionAssignment, options?: {
|
|
35
|
+
strictUnknownKeys?: boolean;
|
|
36
|
+
resolver?: (variableId: string) => boolean | null;
|
|
37
|
+
}): TCorePremiseEvaluationResult;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Run fixed-point constraint propagation over accepted/rejected operators.
|
|
41
|
+
* Fills unknown (null) variable values based on operator semantics.
|
|
42
|
+
* Never overwrites user-assigned values (true/false).
|
|
43
|
+
*/
|
|
44
|
+
export declare function propagateOperatorConstraints(ctx: TArgumentEvaluationContext, assignment: TCoreExpressionAssignment): TCoreVariableAssignment;
|
|
45
|
+
/**
|
|
46
|
+
* Evaluates an argument under a three-valued expression assignment.
|
|
47
|
+
*/
|
|
48
|
+
export declare function evaluateArgument(ctx: TArgumentEvaluationContext, assignment: TCoreExpressionAssignment, options?: TCoreArgumentEvaluationOptions): TCoreArgumentEvaluationResult;
|
|
49
|
+
/**
|
|
50
|
+
* Enumerates all 2^n variable assignments and checks for counterexamples.
|
|
51
|
+
*/
|
|
52
|
+
export declare function checkArgumentValidity(ctx: TArgumentEvaluationContext, options?: TCoreValidityCheckOptions): TCoreValidityCheckResult;
|
|
53
|
+
//# sourceMappingURL=argument-evaluation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argument-evaluation.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/evaluation/argument-evaluation.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAClC,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EACR,8BAA8B,EAC9B,6BAA6B,EAE7B,yBAAyB,EAEzB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACxB,MAAM,2BAA2B,CAAA;AAUlC;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACvC,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,0DAA0D;IAC1D,oBAAoB,IAAI,iBAAiB,GAAG,SAAS,CAAA;IACrD,yEAAyE;IACzE,sBAAsB,IAAI,iBAAiB,EAAE,CAAA;IAC7C,4BAA4B;IAC5B,YAAY,IAAI,iBAAiB,EAAE,CAAA;IACnC,yCAAyC;IACzC,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAA;IACvC,gCAAgC;IAChC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,0BAA0B,GAAG,SAAS,CAAA;IACvE,+BAA+B;IAC/B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAAA;IAC5D,4CAA4C;IAC5C,oBAAoB,IAAI,qBAAqB,CAAA;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,KAAK,IAAI,MAAM,CAAA;IACf,cAAc,IAAI,4BAA4B,EAAE,CAAA;IAChD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,4BAA4B,EAAE,CAAA;IACrE,YAAY,IAAI,0BAA0B,EAAE,CAAA;IAC5C,QAAQ,CACJ,UAAU,EAAE,yBAAyB,EACrC,OAAO,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,OAAO,CAAA;QAC3B,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAA;KACpD,GACF,4BAA4B,CAAA;CAClC;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CACxC,GAAG,EAAE,0BAA0B,EAC/B,UAAU,EAAE,yBAAyB,GACtC,uBAAuB,CAwSzB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,GAAG,EAAE,0BAA0B,EAC/B,UAAU,EAAE,yBAAyB,EACrC,OAAO,CAAC,EAAE,8BAA8B,GACzC,6BAA6B,CAoL/B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,GAAG,EAAE,0BAA0B,EAC/B,OAAO,CAAC,EAAE,yBAAyB,GACpC,wBAAwB,CAmJ1B"}
|
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
import { isClaimBound, isPremiseBound, } from "../../schemata/index.js";
|
|
2
|
+
import { kleeneAnd, kleeneNot, kleeneOr, kleeneImplies, kleeneIff, } from "./kleene.js";
|
|
3
|
+
import { makeErrorIssue, makeValidationResult } from "./validation.js";
|
|
4
|
+
/**
|
|
5
|
+
* Run fixed-point constraint propagation over accepted/rejected operators.
|
|
6
|
+
* Fills unknown (null) variable values based on operator semantics.
|
|
7
|
+
* Never overwrites user-assigned values (true/false).
|
|
8
|
+
*/
|
|
9
|
+
export function propagateOperatorConstraints(ctx, assignment) {
|
|
10
|
+
const vars = { ...assignment.variables };
|
|
11
|
+
const opAssignments = assignment.operatorAssignments;
|
|
12
|
+
// Collect all expressions across all premises, indexed by id
|
|
13
|
+
const exprById = new Map();
|
|
14
|
+
// Children lookup: parentId -> sorted children
|
|
15
|
+
const childrenOf = new Map();
|
|
16
|
+
for (const pm of ctx.listPremises()) {
|
|
17
|
+
for (const expr of pm.getExpressions()) {
|
|
18
|
+
exprById.set(expr.id, expr);
|
|
19
|
+
}
|
|
20
|
+
// Build children map using getChildExpressions for each operator/formula
|
|
21
|
+
for (const expr of pm.getExpressions()) {
|
|
22
|
+
if (expr.type === "operator" || expr.type === "formula") {
|
|
23
|
+
childrenOf.set(expr.id, pm.getChildExpressions(expr.id));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Resolve the current Kleene value of an expression subtree
|
|
29
|
+
* given the current variable assignments. Does not force-accept
|
|
30
|
+
* nested operators — evaluates them normally via Kleene logic.
|
|
31
|
+
*/
|
|
32
|
+
const resolveValue = (exprId) => {
|
|
33
|
+
const expr = exprById.get(exprId);
|
|
34
|
+
if (!expr)
|
|
35
|
+
return null;
|
|
36
|
+
if (expr.type === "variable") {
|
|
37
|
+
return (vars[expr
|
|
38
|
+
.variableId] ?? null);
|
|
39
|
+
}
|
|
40
|
+
if (expr.type === "formula") {
|
|
41
|
+
const children = childrenOf.get(expr.id) ?? [];
|
|
42
|
+
return children.length > 0 ? resolveValue(children[0].id) : null;
|
|
43
|
+
}
|
|
44
|
+
// operator
|
|
45
|
+
const op = expr.operator;
|
|
46
|
+
const children = childrenOf.get(expr.id) ?? [];
|
|
47
|
+
switch (op) {
|
|
48
|
+
case "not":
|
|
49
|
+
return kleeneNot(resolveValue(children[0].id));
|
|
50
|
+
case "and":
|
|
51
|
+
return children.reduce((acc, child) => kleeneAnd(acc, resolveValue(child.id)), true);
|
|
52
|
+
case "or":
|
|
53
|
+
return children.reduce((acc, child) => kleeneOr(acc, resolveValue(child.id)), false);
|
|
54
|
+
case "implies": {
|
|
55
|
+
return kleeneImplies(resolveValue(children[0].id), resolveValue(children[1].id));
|
|
56
|
+
}
|
|
57
|
+
case "iff": {
|
|
58
|
+
return kleeneIff(resolveValue(children[0].id), resolveValue(children[1].id));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Unwrap formula wrappers to find the leaf variable expression.
|
|
64
|
+
* Returns the variableId if the leaf is a variable, otherwise null.
|
|
65
|
+
*/
|
|
66
|
+
const resolveLeafVariableId = (expr) => {
|
|
67
|
+
if (expr.type === "variable") {
|
|
68
|
+
return expr.variableId;
|
|
69
|
+
}
|
|
70
|
+
if (expr.type === "formula") {
|
|
71
|
+
const children = childrenOf.get(expr.id) ?? [];
|
|
72
|
+
if (children.length > 0) {
|
|
73
|
+
return resolveLeafVariableId(children[0]);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
};
|
|
78
|
+
// Track which variable IDs were explicitly set by the user
|
|
79
|
+
// (true or false). These are never overwritten by propagation.
|
|
80
|
+
const userAssigned = new Set();
|
|
81
|
+
for (const [varId, val] of Object.entries(vars)) {
|
|
82
|
+
if (val !== null && val !== undefined)
|
|
83
|
+
userAssigned.add(varId);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Try to set a child expression's variable to a value.
|
|
87
|
+
* Never overwrites user-assigned values.
|
|
88
|
+
* False overrides propagated true (rejection wins).
|
|
89
|
+
* Returns true if a value changed.
|
|
90
|
+
*/
|
|
91
|
+
const trySetChild = (child, value) => {
|
|
92
|
+
const varId = resolveLeafVariableId(child);
|
|
93
|
+
if (varId == null || userAssigned.has(varId))
|
|
94
|
+
return false;
|
|
95
|
+
const current = vars[varId] ?? null;
|
|
96
|
+
if (current === null) {
|
|
97
|
+
vars[varId] = value;
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
// False overrides propagated true
|
|
101
|
+
if (value === false && current === true) {
|
|
102
|
+
vars[varId] = false;
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
};
|
|
107
|
+
// Two-phase propagation: rejections first (to establish false values),
|
|
108
|
+
// then acceptances (which only fill remaining unknowns).
|
|
109
|
+
// This prevents acceptance from deriving values through chains that
|
|
110
|
+
// are later invalidated by rejection.
|
|
111
|
+
for (const phase of ["rejected", "accepted"]) {
|
|
112
|
+
let changed = true;
|
|
113
|
+
while (changed) {
|
|
114
|
+
changed = false;
|
|
115
|
+
for (const [exprId, expr] of exprById) {
|
|
116
|
+
if (expr.type !== "operator")
|
|
117
|
+
continue;
|
|
118
|
+
const state = opAssignments[exprId];
|
|
119
|
+
if (state !== phase)
|
|
120
|
+
continue;
|
|
121
|
+
const op = expr
|
|
122
|
+
.operator;
|
|
123
|
+
const children = childrenOf.get(exprId) ?? [];
|
|
124
|
+
if (state === "accepted") {
|
|
125
|
+
switch (op) {
|
|
126
|
+
case "not": {
|
|
127
|
+
// ¬A accepted (= true) => child must be false
|
|
128
|
+
if (children.length > 0) {
|
|
129
|
+
if (trySetChild(children[0], false))
|
|
130
|
+
changed = true;
|
|
131
|
+
}
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
case "and": {
|
|
135
|
+
// A ∧ B accepted => all children must be true
|
|
136
|
+
for (const child of children) {
|
|
137
|
+
if (trySetChild(child, true))
|
|
138
|
+
changed = true;
|
|
139
|
+
}
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
case "or": {
|
|
143
|
+
// A ∨ B accepted: if all-but-one are false, remaining must be true
|
|
144
|
+
const unknownChildren = [];
|
|
145
|
+
let allOthersAreFalse = true;
|
|
146
|
+
for (const child of children) {
|
|
147
|
+
const childValue = resolveValue(child.id);
|
|
148
|
+
if (childValue === null) {
|
|
149
|
+
unknownChildren.push(child);
|
|
150
|
+
}
|
|
151
|
+
else if (childValue !== false) {
|
|
152
|
+
allOthersAreFalse = false;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (unknownChildren.length === 1 &&
|
|
156
|
+
allOthersAreFalse) {
|
|
157
|
+
if (trySetChild(unknownChildren[0], true))
|
|
158
|
+
changed = true;
|
|
159
|
+
}
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
case "implies": {
|
|
163
|
+
// A → B accepted: if A=true => B=true; if B=false => A=false
|
|
164
|
+
if (children.length >= 2) {
|
|
165
|
+
const leftValue = resolveValue(children[0].id);
|
|
166
|
+
const rightValue = resolveValue(children[1].id);
|
|
167
|
+
if (leftValue === true) {
|
|
168
|
+
if (trySetChild(children[1], true))
|
|
169
|
+
changed = true;
|
|
170
|
+
}
|
|
171
|
+
if (rightValue === false) {
|
|
172
|
+
if (trySetChild(children[0], false))
|
|
173
|
+
changed = true;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
case "iff": {
|
|
179
|
+
// A ↔ B accepted: if A known => B matches; if B known => A matches
|
|
180
|
+
if (children.length >= 2) {
|
|
181
|
+
const leftValue = resolveValue(children[0].id);
|
|
182
|
+
const rightValue = resolveValue(children[1].id);
|
|
183
|
+
if (leftValue !== null) {
|
|
184
|
+
if (trySetChild(children[1], leftValue))
|
|
185
|
+
changed = true;
|
|
186
|
+
}
|
|
187
|
+
if (rightValue !== null) {
|
|
188
|
+
if (trySetChild(children[0], rightValue))
|
|
189
|
+
changed = true;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
// state === "rejected" — expression forced false
|
|
198
|
+
switch (op) {
|
|
199
|
+
case "not": {
|
|
200
|
+
// ¬A rejected (= false) => child must be true
|
|
201
|
+
if (children.length > 0) {
|
|
202
|
+
if (trySetChild(children[0], true))
|
|
203
|
+
changed = true;
|
|
204
|
+
}
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
case "and": {
|
|
208
|
+
// A ∧ B rejected (= false): if all-but-one are true, remaining must be false
|
|
209
|
+
const unknownChildren = [];
|
|
210
|
+
let allOthersAreTrue = true;
|
|
211
|
+
for (const child of children) {
|
|
212
|
+
const childValue = resolveValue(child.id);
|
|
213
|
+
if (childValue === null) {
|
|
214
|
+
unknownChildren.push(child);
|
|
215
|
+
}
|
|
216
|
+
else if (childValue !== true) {
|
|
217
|
+
allOthersAreTrue = false;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
if (unknownChildren.length === 1 &&
|
|
221
|
+
allOthersAreTrue) {
|
|
222
|
+
if (trySetChild(unknownChildren[0], false))
|
|
223
|
+
changed = true;
|
|
224
|
+
}
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
case "or": {
|
|
228
|
+
// A ∨ B rejected (= false) => all children must be false
|
|
229
|
+
for (const child of children) {
|
|
230
|
+
if (trySetChild(child, false))
|
|
231
|
+
changed = true;
|
|
232
|
+
}
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
case "implies": {
|
|
236
|
+
// A → B rejected (= false) => A must be true, B must be false
|
|
237
|
+
if (children.length >= 2) {
|
|
238
|
+
if (trySetChild(children[0], true))
|
|
239
|
+
changed = true;
|
|
240
|
+
if (trySetChild(children[1], false))
|
|
241
|
+
changed = true;
|
|
242
|
+
}
|
|
243
|
+
break;
|
|
244
|
+
}
|
|
245
|
+
case "iff": {
|
|
246
|
+
// A ↔ B rejected (= false): if A known => B is opposite; if B known => A is opposite
|
|
247
|
+
if (children.length >= 2) {
|
|
248
|
+
const leftValue = resolveValue(children[0].id);
|
|
249
|
+
const rightValue = resolveValue(children[1].id);
|
|
250
|
+
if (leftValue !== null) {
|
|
251
|
+
if (trySetChild(children[1], !leftValue))
|
|
252
|
+
changed = true;
|
|
253
|
+
}
|
|
254
|
+
if (rightValue !== null) {
|
|
255
|
+
if (trySetChild(children[0], !rightValue))
|
|
256
|
+
changed = true;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
break;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return vars;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Evaluates an argument under a three-valued expression assignment.
|
|
270
|
+
*/
|
|
271
|
+
export function evaluateArgument(ctx, assignment, options) {
|
|
272
|
+
const validateFirst = options?.validateFirst ?? true;
|
|
273
|
+
if (validateFirst) {
|
|
274
|
+
const validation = ctx.validateEvaluability();
|
|
275
|
+
if (!validation.ok) {
|
|
276
|
+
return {
|
|
277
|
+
ok: false,
|
|
278
|
+
validation,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
const conclusion = ctx.getConclusionPremise();
|
|
283
|
+
if (!conclusion) {
|
|
284
|
+
return {
|
|
285
|
+
ok: false,
|
|
286
|
+
validation: makeValidationResult([
|
|
287
|
+
makeErrorIssue({
|
|
288
|
+
code: "ARGUMENT_NO_CONCLUSION",
|
|
289
|
+
message: "Argument has no designated conclusion premise.",
|
|
290
|
+
}),
|
|
291
|
+
]),
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
const supportingPremises = ctx.listSupportingPremises();
|
|
295
|
+
const supportingIds = new Set(supportingPremises.map((pm) => pm.getId()));
|
|
296
|
+
const constraintPremises = ctx
|
|
297
|
+
.listPremises()
|
|
298
|
+
.filter((pm) => pm.getId() !== ctx.conclusionPremiseId &&
|
|
299
|
+
!supportingIds.has(pm.getId()));
|
|
300
|
+
const allRelevantPremises = [
|
|
301
|
+
conclusion,
|
|
302
|
+
...supportingPremises,
|
|
303
|
+
...constraintPremises,
|
|
304
|
+
];
|
|
305
|
+
const allVariableIds = [
|
|
306
|
+
...new Set(allRelevantPremises.flatMap((pm) => pm
|
|
307
|
+
.getExpressions()
|
|
308
|
+
.filter((expr) => expr.type === "variable")
|
|
309
|
+
.map((expr) => expr.variableId))),
|
|
310
|
+
].sort();
|
|
311
|
+
// Claim-bound and externally-bound premise variables get truth-table columns;
|
|
312
|
+
// internally-bound premise variables are resolved lazily.
|
|
313
|
+
const referencedVariableIds = allVariableIds.filter((vid) => {
|
|
314
|
+
const v = ctx.getVariable(vid);
|
|
315
|
+
if (v == null)
|
|
316
|
+
return false;
|
|
317
|
+
if (isClaimBound(v))
|
|
318
|
+
return true;
|
|
319
|
+
if (isPremiseBound(v) && v.boundArgumentId !== ctx.argumentId)
|
|
320
|
+
return true;
|
|
321
|
+
return false;
|
|
322
|
+
});
|
|
323
|
+
// Run operator constraint propagation
|
|
324
|
+
const propagatedVars = propagateOperatorConstraints(ctx, assignment);
|
|
325
|
+
const propagatedAssignment = {
|
|
326
|
+
variables: propagatedVars,
|
|
327
|
+
operatorAssignments: assignment.operatorAssignments,
|
|
328
|
+
};
|
|
329
|
+
try {
|
|
330
|
+
// Build a resolver that lazily evaluates premise-bound variables
|
|
331
|
+
// by evaluating their bound premise's expression tree under the
|
|
332
|
+
// same assignment. Results are cached per-variable per-evaluate call.
|
|
333
|
+
const resolverCache = new Map();
|
|
334
|
+
const resolver = (variableId) => {
|
|
335
|
+
if (resolverCache.has(variableId)) {
|
|
336
|
+
return resolverCache.get(variableId);
|
|
337
|
+
}
|
|
338
|
+
const variable = ctx.getVariable(variableId);
|
|
339
|
+
if (!variable ||
|
|
340
|
+
!isPremiseBound(variable) ||
|
|
341
|
+
variable.boundArgumentId !== ctx.argumentId) {
|
|
342
|
+
// Claim-bound or externally-bound: read from assignment
|
|
343
|
+
return propagatedAssignment.variables[variableId] ?? null;
|
|
344
|
+
}
|
|
345
|
+
// Internal premise-bound: lazy resolution
|
|
346
|
+
const boundPremiseId = variable.boundPremiseId;
|
|
347
|
+
const boundPremise = ctx.getPremise(boundPremiseId);
|
|
348
|
+
if (!boundPremise) {
|
|
349
|
+
resolverCache.set(variableId, null);
|
|
350
|
+
return null;
|
|
351
|
+
}
|
|
352
|
+
const premiseResult = boundPremise.evaluate(propagatedAssignment, {
|
|
353
|
+
resolver,
|
|
354
|
+
});
|
|
355
|
+
const value = premiseResult?.rootValue ?? null;
|
|
356
|
+
resolverCache.set(variableId, value);
|
|
357
|
+
return value;
|
|
358
|
+
};
|
|
359
|
+
const evalOpts = {
|
|
360
|
+
strictUnknownKeys: options?.strictUnknownAssignmentKeys ?? false,
|
|
361
|
+
resolver,
|
|
362
|
+
};
|
|
363
|
+
const conclusionEvaluation = conclusion.evaluate(propagatedAssignment, evalOpts);
|
|
364
|
+
const supportingEvaluations = supportingPremises.map((pm) => pm.evaluate(propagatedAssignment, evalOpts));
|
|
365
|
+
const constraintEvaluations = constraintPremises.map((pm) => pm.evaluate(propagatedAssignment, evalOpts));
|
|
366
|
+
const isAdmissibleAssignment = constraintEvaluations.reduce((acc, result) => kleeneAnd(acc, result.rootValue ?? null), true);
|
|
367
|
+
const allSupportingPremisesTrue = supportingEvaluations.reduce((acc, result) => kleeneAnd(acc, result.rootValue ?? null), true);
|
|
368
|
+
const conclusionTrue = conclusionEvaluation.rootValue ?? null;
|
|
369
|
+
const isCounterexample = kleeneAnd(isAdmissibleAssignment, kleeneAnd(allSupportingPremisesTrue, kleeneNot(conclusionTrue)));
|
|
370
|
+
const includeExpressionValues = options?.includeExpressionValues ?? true;
|
|
371
|
+
const includeDiagnostics = options?.includeDiagnostics ?? true;
|
|
372
|
+
const strip = (result) => ({
|
|
373
|
+
...result,
|
|
374
|
+
expressionValues: includeExpressionValues
|
|
375
|
+
? result.expressionValues
|
|
376
|
+
: {},
|
|
377
|
+
inferenceDiagnostic: includeDiagnostics
|
|
378
|
+
? result.inferenceDiagnostic
|
|
379
|
+
: undefined,
|
|
380
|
+
});
|
|
381
|
+
return {
|
|
382
|
+
ok: true,
|
|
383
|
+
assignment: {
|
|
384
|
+
variables: { ...propagatedAssignment.variables },
|
|
385
|
+
operatorAssignments: {
|
|
386
|
+
...propagatedAssignment.operatorAssignments,
|
|
387
|
+
},
|
|
388
|
+
},
|
|
389
|
+
referencedVariableIds,
|
|
390
|
+
conclusion: strip(conclusionEvaluation),
|
|
391
|
+
supportingPremises: supportingEvaluations.map(strip),
|
|
392
|
+
constraintPremises: constraintEvaluations.map(strip),
|
|
393
|
+
isAdmissibleAssignment,
|
|
394
|
+
allSupportingPremisesTrue,
|
|
395
|
+
conclusionTrue,
|
|
396
|
+
isCounterexample,
|
|
397
|
+
preservesTruthUnderAssignment: kleeneNot(isCounterexample),
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
catch (error) {
|
|
401
|
+
return {
|
|
402
|
+
ok: false,
|
|
403
|
+
validation: makeValidationResult([
|
|
404
|
+
makeErrorIssue({
|
|
405
|
+
code: "ASSIGNMENT_MISSING_VARIABLE",
|
|
406
|
+
message: error instanceof Error
|
|
407
|
+
? error.message
|
|
408
|
+
: "Argument evaluation failed.",
|
|
409
|
+
}),
|
|
410
|
+
]),
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Enumerates all 2^n variable assignments and checks for counterexamples.
|
|
416
|
+
*/
|
|
417
|
+
export function checkArgumentValidity(ctx, options) {
|
|
418
|
+
const validateFirst = options?.validateFirst ?? true;
|
|
419
|
+
if (validateFirst) {
|
|
420
|
+
const validation = ctx.validateEvaluability();
|
|
421
|
+
if (!validation.ok) {
|
|
422
|
+
return {
|
|
423
|
+
ok: false,
|
|
424
|
+
validation,
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
const conclusion = ctx.getConclusionPremise();
|
|
429
|
+
if (!conclusion) {
|
|
430
|
+
return {
|
|
431
|
+
ok: false,
|
|
432
|
+
validation: makeValidationResult([
|
|
433
|
+
makeErrorIssue({
|
|
434
|
+
code: "ARGUMENT_NO_CONCLUSION",
|
|
435
|
+
message: "Argument has no designated conclusion premise.",
|
|
436
|
+
}),
|
|
437
|
+
]),
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
const supportingPremises = ctx.listSupportingPremises();
|
|
441
|
+
const supportingIds = new Set(supportingPremises.map((pm) => pm.getId()));
|
|
442
|
+
const constraintPremises = ctx
|
|
443
|
+
.listPremises()
|
|
444
|
+
.filter((pm) => pm.getId() !== ctx.conclusionPremiseId &&
|
|
445
|
+
!supportingIds.has(pm.getId()));
|
|
446
|
+
const allVariableIdsForCheck = [
|
|
447
|
+
...new Set([conclusion, ...supportingPremises, ...constraintPremises].flatMap((pm) => pm
|
|
448
|
+
.getExpressions()
|
|
449
|
+
.filter((expr) => expr.type === "variable")
|
|
450
|
+
.map((expr) => expr.variableId))),
|
|
451
|
+
].sort();
|
|
452
|
+
// Claim-bound and externally-bound premise variables get truth-table columns;
|
|
453
|
+
// internally-bound premise variables are resolved lazily.
|
|
454
|
+
const checkedVariableIds = allVariableIdsForCheck.filter((vid) => {
|
|
455
|
+
const v = ctx.getVariable(vid);
|
|
456
|
+
if (v == null)
|
|
457
|
+
return false;
|
|
458
|
+
if (isClaimBound(v))
|
|
459
|
+
return true;
|
|
460
|
+
if (isPremiseBound(v) && v.boundArgumentId !== ctx.argumentId)
|
|
461
|
+
return true;
|
|
462
|
+
return false;
|
|
463
|
+
});
|
|
464
|
+
if (options?.maxVariables !== undefined &&
|
|
465
|
+
checkedVariableIds.length > options.maxVariables) {
|
|
466
|
+
return {
|
|
467
|
+
ok: false,
|
|
468
|
+
validation: makeValidationResult([
|
|
469
|
+
makeErrorIssue({
|
|
470
|
+
code: "ASSIGNMENT_UNKNOWN_VARIABLE",
|
|
471
|
+
message: `Validity check requires ${checkedVariableIds.length} variables, exceeding limit ${options.maxVariables}.`,
|
|
472
|
+
}),
|
|
473
|
+
]),
|
|
474
|
+
};
|
|
475
|
+
}
|
|
476
|
+
const mode = options?.mode ?? "firstCounterexample";
|
|
477
|
+
const maxAssignmentsChecked = options?.maxAssignmentsChecked;
|
|
478
|
+
const counterexamples = [];
|
|
479
|
+
let numAssignmentsChecked = 0;
|
|
480
|
+
let numAdmissibleAssignments = 0;
|
|
481
|
+
let truncated = false;
|
|
482
|
+
const totalAssignments = 2 ** checkedVariableIds.length;
|
|
483
|
+
for (let mask = 0; mask < totalAssignments; mask++) {
|
|
484
|
+
if (maxAssignmentsChecked !== undefined &&
|
|
485
|
+
numAssignmentsChecked >= maxAssignmentsChecked) {
|
|
486
|
+
truncated = true;
|
|
487
|
+
break;
|
|
488
|
+
}
|
|
489
|
+
const assignment = {
|
|
490
|
+
variables: {},
|
|
491
|
+
operatorAssignments: {},
|
|
492
|
+
};
|
|
493
|
+
for (let i = 0; i < checkedVariableIds.length; i++) {
|
|
494
|
+
assignment.variables[checkedVariableIds[i]] = Boolean(mask & (1 << i));
|
|
495
|
+
}
|
|
496
|
+
const result = evaluateArgument(ctx, assignment, {
|
|
497
|
+
validateFirst: false,
|
|
498
|
+
includeExpressionValues: options?.includeCounterexampleEvaluations ?? false,
|
|
499
|
+
includeDiagnostics: options?.includeCounterexampleEvaluations ?? false,
|
|
500
|
+
});
|
|
501
|
+
if (!result.ok) {
|
|
502
|
+
return {
|
|
503
|
+
ok: false,
|
|
504
|
+
validation: result.validation,
|
|
505
|
+
};
|
|
506
|
+
}
|
|
507
|
+
numAssignmentsChecked += 1;
|
|
508
|
+
if (result.isAdmissibleAssignment === true) {
|
|
509
|
+
numAdmissibleAssignments += 1;
|
|
510
|
+
}
|
|
511
|
+
if (result.isCounterexample === true) {
|
|
512
|
+
counterexamples.push({
|
|
513
|
+
assignment: result.assignment,
|
|
514
|
+
result,
|
|
515
|
+
});
|
|
516
|
+
if (mode === "firstCounterexample") {
|
|
517
|
+
break;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
const foundCounterexample = counterexamples.length > 0;
|
|
522
|
+
const fullyChecked = !truncated &&
|
|
523
|
+
(mode === "exhaustive" ||
|
|
524
|
+
(mode === "firstCounterexample" && !foundCounterexample));
|
|
525
|
+
return {
|
|
526
|
+
ok: true,
|
|
527
|
+
isValid: foundCounterexample ? false : fullyChecked ? true : undefined,
|
|
528
|
+
checkedVariableIds,
|
|
529
|
+
numAssignmentsChecked,
|
|
530
|
+
numAdmissibleAssignments,
|
|
531
|
+
counterexamples,
|
|
532
|
+
truncated,
|
|
533
|
+
};
|
|
534
|
+
}
|
|
535
|
+
//# sourceMappingURL=argument-evaluation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argument-evaluation.js","sourceRoot":"","sources":["../../../../src/lib/core/evaluation/argument-evaluation.ts"],"names":[],"mappings":"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"}
|