@polintpro/proposit-core 0.8.2 → 0.8.4

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 (37) hide show
  1. package/README.md +3 -3
  2. package/dist/cli/commands/analysis.d.ts.map +1 -1
  3. package/dist/cli/commands/analysis.js +148 -42
  4. package/dist/cli/commands/analysis.js.map +1 -1
  5. package/dist/cli/commands/graph.d.ts +1 -1
  6. package/dist/cli/commands/graph.d.ts.map +1 -1
  7. package/dist/cli/commands/graph.js +61 -26
  8. package/dist/cli/commands/graph.js.map +1 -1
  9. package/dist/cli/output.d.ts.map +1 -1
  10. package/dist/cli/output.js +4 -0
  11. package/dist/cli/output.js.map +1 -1
  12. package/dist/cli/storage/analysis.d.ts +2 -1
  13. package/dist/cli/storage/analysis.d.ts.map +1 -1
  14. package/dist/cli/storage/analysis.js +40 -2
  15. package/dist/cli/storage/analysis.js.map +1 -1
  16. package/dist/lib/core/argument-engine.d.ts +6 -0
  17. package/dist/lib/core/argument-engine.d.ts.map +1 -1
  18. package/dist/lib/core/argument-engine.js +281 -11
  19. package/dist/lib/core/argument-engine.js.map +1 -1
  20. package/dist/lib/core/evaluation/grading.d.ts +28 -0
  21. package/dist/lib/core/evaluation/grading.d.ts.map +1 -0
  22. package/dist/lib/core/evaluation/grading.js +44 -0
  23. package/dist/lib/core/evaluation/grading.js.map +1 -0
  24. package/dist/lib/core/premise-engine.d.ts.map +1 -1
  25. package/dist/lib/core/premise-engine.js +19 -13
  26. package/dist/lib/core/premise-engine.js.map +1 -1
  27. package/dist/lib/index.d.ts +2 -0
  28. package/dist/lib/index.d.ts.map +1 -1
  29. package/dist/lib/index.js +1 -0
  30. package/dist/lib/index.js.map +1 -1
  31. package/dist/lib/schemata/analysis.d.ts +1 -1
  32. package/dist/lib/schemata/analysis.d.ts.map +1 -1
  33. package/dist/lib/schemata/analysis.js +2 -2
  34. package/dist/lib/schemata/analysis.js.map +1 -1
  35. package/dist/lib/types/evaluation.d.ts +5 -3
  36. package/dist/lib/types/evaluation.d.ts.map +1 -1
  37. package/package.json +7 -2
package/README.md CHANGED
@@ -424,12 +424,12 @@ flowchart LR
424
424
  style Validity fill:none,stroke:#888,stroke-dasharray: 5 5
425
425
  ```
426
426
 
427
- Assignments use `TCoreExpressionAssignment`, which carries both variable truth values (three-valued: `true`, `false`, or `null` for unknown) and a list of rejected expression IDs:
427
+ Assignments use `TCoreExpressionAssignment`, which carries both variable truth values (three-valued: `true`, `false`, or `null` for unknown) and operator assignments (three-state: `"accepted"`, `"rejected"`, or absent for normal evaluation):
428
428
 
429
429
  ```typescript
430
430
  const result = eng.evaluate({
431
431
  variables: { "var-p": true, "var-q": true },
432
- rejectedExpressionIds: [],
432
+ operatorAssignments: {},
433
433
  })
434
434
  if (result.ok) {
435
435
  console.log(result.conclusionTrue) // true
@@ -654,7 +654,7 @@ richArg.bindVariableToArgument(
654
654
  // External bindings are evaluator-assigned — provide truth values in the assignment
655
655
  const result = richArg.evaluate({
656
656
  variables: { "v-john-p2": true, "v-john-conclusion": false },
657
- rejectedExpressionIds: [],
657
+ operatorAssignments: {},
658
658
  })
659
659
  ```
660
660
 
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkBnC,wBAAgB,wBAAwB,CACpC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,CAkjBN"}
1
+ {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAqBnC,wBAAgB,wBAAwB,CACpC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,CAuuBN"}
@@ -1,7 +1,9 @@
1
1
  import { Command } from "commander";
2
2
  import { hydrateEngine } from "../engine.js";
3
3
  import { errorExit, printJson, printLine, requireConfirmation, } from "../output.js";
4
- import { analysisFileExists, deleteAnalysisFile, listAnalysisFiles, readAnalysis, resolveAnalysisFilename, writeAnalysis, } from "../storage/analysis.js";
4
+ import { analysisFileExists, deleteAnalysisFile, listAnalysisFiles, nextAnalysisFilename, readAnalysis, resolveAnalysisFilename, writeAnalysis, } from "../storage/analysis.js";
5
+ import { gradeEvaluation } from "../../lib/core/evaluation/grading.js";
6
+ import { listPremiseIds, readPremiseData } from "../storage/premises.js";
5
7
  import { readVariables } from "../storage/variables.js";
6
8
  export function registerAnalysisCommands(versionedCmd, argumentId, version) {
7
9
  const analysis = versionedCmd
@@ -11,11 +13,29 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
11
13
  .command("create [analysis_filename]")
12
14
  .description("Create a new analysis file initialised with all variables")
13
15
  .option("--default <value>", "Default value for all assignments (true, false, or unset)", "unset")
16
+ .option("--from <filename>", "Copy assignments and operator states from an existing analysis file")
14
17
  .action(async (filenameArg, opts) => {
15
- const filename = resolveAnalysisFilename(filenameArg);
18
+ const filename = filenameArg
19
+ ? await resolveAnalysisFilename(filenameArg, argumentId, version)
20
+ : await nextAnalysisFilename(argumentId, version);
16
21
  if (await analysisFileExists(argumentId, version, filename)) {
17
22
  errorExit(`Analysis file "${filename}" already exists.`);
18
23
  }
24
+ if (opts.from) {
25
+ const sourceFile = await resolveAnalysisFilename(opts.from, argumentId, version);
26
+ if (!(await analysisFileExists(argumentId, version, sourceFile))) {
27
+ errorExit(`Source analysis file "${sourceFile}" does not exist.`);
28
+ }
29
+ const source = await readAnalysis(argumentId, version, sourceFile);
30
+ await writeAnalysis(argumentId, version, filename, {
31
+ argumentId,
32
+ argumentVersion: version,
33
+ assignments: { ...source.assignments },
34
+ operatorAssignments: { ...source.operatorAssignments },
35
+ });
36
+ printLine(filename);
37
+ return;
38
+ }
19
39
  if (!["true", "false", "unset"].includes(opts.default)) {
20
40
  errorExit(`Default must be "true", "false", or "unset", got "${opts.default}".`);
21
41
  }
@@ -33,7 +53,7 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
33
53
  argumentId,
34
54
  argumentVersion: version,
35
55
  assignments,
36
- rejectedExpressionIds: [],
56
+ operatorAssignments: {},
37
57
  });
38
58
  printLine(filename);
39
59
  });
@@ -54,10 +74,10 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
54
74
  analysis
55
75
  .command("show")
56
76
  .description("Show variable assignments in an analysis file")
57
- .option("--file <filename>", "Analysis filename (default: analysis.json)")
77
+ .option("--file <filename>", "Analysis filename (default: latest)")
58
78
  .option("--json", "Output as JSON")
59
79
  .action(async (opts) => {
60
- const filename = resolveAnalysisFilename(opts.file);
80
+ const filename = await resolveAnalysisFilename(opts.file, argumentId, version);
61
81
  const data = await readAnalysis(argumentId, version, filename);
62
82
  if (opts.json) {
63
83
  printJson(data);
@@ -67,11 +87,12 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
67
87
  for (const [symbol, value] of sorted) {
68
88
  printLine(`${symbol} = ${value ?? "unset"}`);
69
89
  }
70
- if (data.rejectedExpressionIds.length > 0) {
90
+ const opEntries = Object.entries(data.operatorAssignments);
91
+ if (opEntries.length > 0) {
71
92
  printLine("");
72
- printLine("Rejected expressions:");
73
- for (const id of data.rejectedExpressionIds) {
74
- printLine(` ${id}`);
93
+ printLine("Operator assignments:");
94
+ for (const [id, state] of opEntries) {
95
+ printLine(` ${id} = ${state}`);
75
96
  }
76
97
  }
77
98
  }
@@ -79,9 +100,9 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
79
100
  analysis
80
101
  .command("set <variable_symbol> <value>")
81
102
  .description("Update a single variable assignment (value: true, false, or unset)")
82
- .option("--file <filename>", "Analysis filename (default: analysis.json)")
103
+ .option("--file <filename>", "Analysis filename (default: latest)")
83
104
  .action(async (symbol, valueArg, opts) => {
84
- const filename = resolveAnalysisFilename(opts.file);
105
+ const filename = await resolveAnalysisFilename(opts.file, argumentId, version);
85
106
  if (!(await analysisFileExists(argumentId, version, filename))) {
86
107
  errorExit(`Analysis file "${filename}" does not exist.`);
87
108
  }
@@ -104,10 +125,10 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
104
125
  analysis
105
126
  .command("reset")
106
127
  .description("Reset all assignments in an analysis file to one value")
107
- .option("--file <filename>", "Analysis filename (default: analysis.json)")
128
+ .option("--file <filename>", "Analysis filename (default: latest)")
108
129
  .option("--value <value>", "Value to reset to (default: unset)", "unset")
109
130
  .action(async (opts) => {
110
- const filename = resolveAnalysisFilename(opts.file);
131
+ const filename = await resolveAnalysisFilename(opts.file, argumentId, version);
111
132
  if (!["true", "false", "unset"].includes(opts.value)) {
112
133
  errorExit(`Value must be "true", "false", or "unset", got "${opts.value}".`);
113
134
  }
@@ -124,42 +145,67 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
124
145
  printLine("success");
125
146
  });
126
147
  analysis
127
- .command("reject <expression_id>")
128
- .description("Reject an expression (it will evaluate to false)")
129
- .option("--file <filename>", "Analysis filename (default: analysis.json)")
130
- .action(async (expressionId, opts) => {
131
- const filename = resolveAnalysisFilename(opts.file);
148
+ .command("set-operator <operator_expression_id> <state>")
149
+ .description("Set an operator's state (accepted, rejected, or unset)")
150
+ .option("--file <filename>", "Analysis filename (default: latest)")
151
+ .action(async (operatorExpressionId, state, opts) => {
152
+ if (!["accepted", "rejected", "unset"].includes(state)) {
153
+ errorExit(`State must be "accepted", "rejected", or "unset", got "${state}".`);
154
+ }
155
+ const filename = await resolveAnalysisFilename(opts.file, argumentId, version);
132
156
  if (!(await analysisFileExists(argumentId, version, filename))) {
133
157
  errorExit(`Analysis file "${filename}" does not exist.`);
134
158
  }
135
159
  const data = await readAnalysis(argumentId, version, filename);
136
- if (!data.rejectedExpressionIds.includes(expressionId)) {
137
- data.rejectedExpressionIds.push(expressionId);
160
+ if (state === "unset") {
161
+ delete data.operatorAssignments[operatorExpressionId];
162
+ }
163
+ else {
164
+ data.operatorAssignments[operatorExpressionId] = state;
138
165
  }
139
166
  await writeAnalysis(argumentId, version, filename, data);
140
167
  printLine("success");
141
168
  });
142
169
  analysis
143
- .command("accept <expression_id>")
144
- .description("Accept an expression (restore normal computation)")
145
- .option("--file <filename>", "Analysis filename (default: analysis.json)")
146
- .action(async (expressionId, opts) => {
147
- const filename = resolveAnalysisFilename(opts.file);
170
+ .command("set-all-operators <state>")
171
+ .description("Set all operator expressions to a state (accepted, rejected, or unset)")
172
+ .option("--file <filename>", "Analysis filename (default: latest)")
173
+ .action(async (state, opts) => {
174
+ if (!["accepted", "rejected", "unset"].includes(state)) {
175
+ errorExit(`State must be "accepted", "rejected", or "unset", got "${state}".`);
176
+ }
177
+ const filename = await resolveAnalysisFilename(opts.file, argumentId, version);
148
178
  if (!(await analysisFileExists(argumentId, version, filename))) {
149
179
  errorExit(`Analysis file "${filename}" does not exist.`);
150
180
  }
151
181
  const data = await readAnalysis(argumentId, version, filename);
152
- data.rejectedExpressionIds = data.rejectedExpressionIds.filter((id) => id !== expressionId);
182
+ if (state === "unset") {
183
+ data.operatorAssignments = {};
184
+ }
185
+ else {
186
+ const premiseIds = await listPremiseIds(argumentId, version);
187
+ for (const pid of premiseIds) {
188
+ const premiseData = await readPremiseData(argumentId, version, pid);
189
+ for (const expr of premiseData.expressions) {
190
+ if (expr.type === "operator") {
191
+ data.operatorAssignments[expr.id] = state;
192
+ }
193
+ }
194
+ }
195
+ }
153
196
  await writeAnalysis(argumentId, version, filename, data);
154
- printLine("success");
197
+ const count = Object.keys(data.operatorAssignments).length;
198
+ printLine(state === "unset"
199
+ ? "All operator assignments cleared"
200
+ : `${count} operator(s) set to ${state}`);
155
201
  });
156
202
  analysis
157
203
  .command("validate-assignments")
158
204
  .description("Validate an analysis file against the argument version")
159
- .option("--file <filename>", "Analysis filename (default: analysis.json)")
205
+ .option("--file <filename>", "Analysis filename (default: latest)")
160
206
  .option("--json", "Output as JSON")
161
207
  .action(async (opts) => {
162
- const filename = resolveAnalysisFilename(opts.file);
208
+ const filename = await resolveAnalysisFilename(opts.file, argumentId, version);
163
209
  const [data, variables] = await Promise.all([
164
210
  readAnalysis(argumentId, version, filename),
165
211
  readVariables(argumentId, version),
@@ -195,17 +241,18 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
195
241
  });
196
242
  }
197
243
  }
198
- // Validate rejected expression IDs
199
- if (data.rejectedExpressionIds.length > 0) {
244
+ // Validate operator assignment IDs
245
+ const opAssignmentIds = Object.keys(data.operatorAssignments);
246
+ if (opAssignmentIds.length > 0) {
200
247
  const engine = await hydrateEngine(argumentId, version);
201
248
  const allExpressionIds = new Set(engine
202
249
  .listPremises()
203
250
  .flatMap((pm) => pm.getExpressions().map((e) => e.id)));
204
- for (const id of data.rejectedExpressionIds) {
251
+ for (const id of opAssignmentIds) {
205
252
  if (!allExpressionIds.has(id)) {
206
253
  issues.push({
207
- code: "UNKNOWN_REJECTED_EXPRESSION",
208
- message: `Rejected expression ID "${id}" does not exist in any premise.`,
254
+ code: "UNKNOWN_OPERATOR_ASSIGNMENT",
255
+ message: `Operator assignment ID "${id}" does not exist in any premise.`,
209
256
  });
210
257
  }
211
258
  }
@@ -224,10 +271,10 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
224
271
  analysis
225
272
  .command("delete")
226
273
  .description("Delete an analysis file")
227
- .option("--file <filename>", "Analysis filename (default: analysis.json)")
274
+ .option("--file <filename>", "Analysis filename (default: latest)")
228
275
  .option("--confirm", "Skip confirmation prompt")
229
276
  .action(async (opts) => {
230
- const filename = resolveAnalysisFilename(opts.file);
277
+ const filename = await resolveAnalysisFilename(opts.file, argumentId, version);
231
278
  if (!(await analysisFileExists(argumentId, version, filename))) {
232
279
  errorExit(`Analysis file "${filename}" does not exist.`);
233
280
  }
@@ -240,7 +287,7 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
240
287
  analysis
241
288
  .command("evaluate")
242
289
  .description("Evaluate the argument using assignments from an analysis file")
243
- .option("--file <filename>", "Analysis filename (default: analysis.json)")
290
+ .option("--file <filename>", "Analysis filename (default: latest)")
244
291
  .option("--strict-unknown-assignment-keys", "Reject extra assignment keys")
245
292
  .option("--no-expression-values", "Omit per-expression truth values")
246
293
  .option("--no-diagnostics", "Omit inference diagnostics")
@@ -248,7 +295,7 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
248
295
  .option("--skip-analysis-file-validation", "Skip analysis file validation")
249
296
  .option("--json", "Output as JSON")
250
297
  .action(async (opts) => {
251
- const filename = resolveAnalysisFilename(opts.file);
298
+ const filename = await resolveAnalysisFilename(opts.file, argumentId, version);
252
299
  const [analysisData, variables] = await Promise.all([
253
300
  readAnalysis(argumentId, version, filename),
254
301
  readVariables(argumentId, version),
@@ -277,9 +324,9 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
277
324
  const engine = await hydrateEngine(argumentId, version);
278
325
  const result = engine.evaluate({
279
326
  variables: variableAssignment,
280
- rejectedExpressionIds: [
281
- ...analysisData.rejectedExpressionIds,
282
- ],
327
+ operatorAssignments: {
328
+ ...analysisData.operatorAssignments,
329
+ },
283
330
  }, {
284
331
  strictUnknownAssignmentKeys: opts.strictUnknownAssignmentKeys ?? false,
285
332
  includeExpressionValues: !opts.noExpressionValues,
@@ -287,7 +334,10 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
287
334
  validateFirst: !opts.noValidateFirst,
288
335
  });
289
336
  if (opts.json) {
290
- printJson(result);
337
+ printJson({
338
+ ...result,
339
+ grading: gradeEvaluation(result),
340
+ });
291
341
  return;
292
342
  }
293
343
  if (!result.ok) {
@@ -297,6 +347,8 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
297
347
  }
298
348
  return;
299
349
  }
350
+ const grading = gradeEvaluation(result);
351
+ printLine(`grade: ${grading.label}`);
300
352
  printLine(`admissible: ${result.isAdmissibleAssignment}`);
301
353
  printLine(`all supporting: ${result.allSupportingPremisesTrue}`);
302
354
  printLine(`conclusion true: ${result.conclusionTrue}`);
@@ -386,6 +438,60 @@ export function registerAnalysisCommands(versionedCmd, argumentId, version) {
386
438
  printLine(`${variableId} | ${info.symbol} | premises: [${info.premiseIds.join(", ")}]`);
387
439
  }
388
440
  });
441
+ analysis
442
+ .command("operators")
443
+ .description("List all operator expressions across all premises")
444
+ .option("--json", "Output as JSON")
445
+ .option("--file <filename>", "Show operator states from an analysis file")
446
+ .action(async (opts) => {
447
+ const engine = await hydrateEngine(argumentId, version);
448
+ const premises = engine.listPremises();
449
+ const operators = [];
450
+ for (const pm of premises) {
451
+ const premiseId = pm.getId();
452
+ const formula = pm.toDisplayString() || "(empty)";
453
+ for (const expr of pm.getExpressions()) {
454
+ if (expr.type === "operator") {
455
+ operators.push({
456
+ expressionId: expr.id,
457
+ operator: expr.operator,
458
+ premiseId,
459
+ formula,
460
+ });
461
+ }
462
+ }
463
+ }
464
+ let opAssignments = {};
465
+ if (opts.file) {
466
+ const filename = await resolveAnalysisFilename(opts.file, argumentId, version);
467
+ if (await analysisFileExists(argumentId, version, filename)) {
468
+ const analysisData = await readAnalysis(argumentId, version, filename);
469
+ opAssignments = analysisData.operatorAssignments;
470
+ }
471
+ }
472
+ if (opts.json) {
473
+ printJson(operators.map((op) => ({
474
+ ...op,
475
+ state: opAssignments[op.expressionId] ?? "unset",
476
+ })));
477
+ return;
478
+ }
479
+ if (operators.length === 0) {
480
+ printLine("No operator expressions found.");
481
+ return;
482
+ }
483
+ let currentPremise = "";
484
+ for (const op of operators) {
485
+ if (op.premiseId !== currentPremise) {
486
+ if (currentPremise !== "")
487
+ printLine("");
488
+ currentPremise = op.premiseId;
489
+ printLine(`Premise ${op.premiseId}: ${op.formula}`);
490
+ }
491
+ const state = opAssignments[op.expressionId] ?? "unset";
492
+ printLine(` ${op.expressionId} | ${op.operator} | ${state}`);
493
+ }
494
+ });
389
495
  analysis
390
496
  .command("export")
391
497
  .description("Export the full argument engine state snapshot")
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/cli/commands/analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/cli/commands/analysis.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import type { PropositCore } from "../../lib/core/proposit-core.js";
5
5
  interface TEvaluationOverlay {
6
6
  result: TCoreArgumentEvaluationResult;
7
7
  premiseResults: Map<string, TCorePremiseEvaluationResult>;
8
- rejectedExpressionIds: Set<string>;
8
+ operatorAssignments: Record<string, string>;
9
9
  }
10
10
  export declare function buildDotGraph(engine: ArgumentEngine, core: PropositCore, overlay?: TEvaluationOverlay): string;
11
11
  export declare function registerGraphCommand(versionedCmd: Command, argumentId: string, version: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,KAAK,EACR,6BAA6B,EAC7B,4BAA4B,EAE/B,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAkEnE,UAAU,kBAAkB;IACxB,MAAM,EAAE,6BAA6B,CAAA;IACrC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAA;IACzD,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACrC;AAED,wBAAgB,aAAa,CACzB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC7B,MAAM,CA2QR;AAED,wBAAgB,oBAAoB,CAChC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,CA0FN"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,KAAK,EACR,6BAA6B,EAC7B,4BAA4B,EAE/B,MAAM,+BAA+B,CAAA;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAmEnE,UAAU,kBAAkB;IACxB,MAAM,EAAE,6BAA6B,CAAA;IACrC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAA;IACzD,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9C;AAED,wBAAgB,aAAa,CACzB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC7B,MAAM,CA4SR;AAED,wBAAgB,oBAAoB,CAChC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,CA8FN"}
@@ -1,6 +1,7 @@
1
1
  import { Command } from "commander";
2
2
  import { hydrateEngine, hydratePropositCore } from "../engine.js";
3
3
  import { isClaimBound, isPremiseBound } from "../../lib/schemata/index.js";
4
+ import { gradeEvaluation } from "../../lib/core/evaluation/grading.js";
4
5
  import { printJson, printLine, errorExit } from "../output.js";
5
6
  import { readAnalysis, resolveAnalysisFilename, analysisFileExists, } from "../storage/analysis.js";
6
7
  import { readVariables } from "../storage/variables.js";
@@ -53,7 +54,9 @@ function truthColor(value) {
53
54
  return "red";
54
55
  return "gray70";
55
56
  }
56
- function truthFillColor(value) {
57
+ function truthFillColor(value, vacuous) {
58
+ if (value === true && vacuous)
59
+ return '"#fff3cd"'; // yellow for vacuous truth
57
60
  if (value === true)
58
61
  return '"#d4edda"';
59
62
  if (value === false)
@@ -74,25 +77,34 @@ export function buildDotGraph(engine, core, overlay) {
74
77
  lines.push("digraph argument {");
75
78
  lines.push(" compound=true;");
76
79
  lines.push(" rankdir=TB;");
77
- // Build graph label with optional evaluation summary
78
- if (overlay) {
79
- const r = overlay.result;
80
- const summaryParts = [];
81
- if (r.isAdmissibleAssignment !== undefined)
82
- summaryParts.push(`admissible: ${r.isAdmissibleAssignment ?? "unknown"}`);
83
- if (r.isCounterexample !== undefined)
84
- summaryParts.push(`counterexample: ${r.isCounterexample ?? "unknown"}`);
85
- if (r.preservesTruthUnderAssignment !== undefined)
86
- summaryParts.push(`preserves truth: ${r.preservesTruthUnderAssignment ?? "unknown"}`);
87
- const subtitle = summaryParts.join(" | ");
88
- lines.push(` label="${dotEscape(argTitle)}\\n${dotEscape(subtitle)}";`);
89
- }
90
- else {
91
- lines.push(` label="${dotEscape(argTitle)}";`);
92
- }
80
+ lines.push(` label="${dotEscape(argTitle)}";`);
93
81
  lines.push(" labelloc=t;");
94
82
  lines.push(" fontsize=16;");
95
83
  lines.push("");
84
+ // Evaluation summary box (top-right)
85
+ if (overlay) {
86
+ const r = overlay.result;
87
+ const grading = gradeEvaluation(r);
88
+ const gradeColorMap = {
89
+ green: "#28a745",
90
+ orange: "#d48806",
91
+ red: "#dc3545",
92
+ gray: "#6c757d",
93
+ };
94
+ const gradeHtmlColor = gradeColorMap[grading.color] ?? "#6c757d";
95
+ const tri = (v) => v === true ? "true" : v === false ? "false" : "unknown";
96
+ const summaryHtml = [
97
+ `<TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0" CELLPADDING="6" BGCOLOR="white">`,
98
+ `<TR><TD COLSPAN="2"><FONT POINT-SIZE="14" COLOR="${gradeHtmlColor}"><B>${htmlEscape(grading.label)}</B></FONT></TD></TR>`,
99
+ `<TR><TD ALIGN="LEFT">admissible</TD><TD ALIGN="RIGHT">${tri(r.isAdmissibleAssignment)}</TD></TR>`,
100
+ `<TR><TD ALIGN="LEFT">all supporting</TD><TD ALIGN="RIGHT">${tri(r.allSupportingPremisesTrue)}</TD></TR>`,
101
+ `<TR><TD ALIGN="LEFT">conclusion true</TD><TD ALIGN="RIGHT">${tri(r.conclusionTrue)}</TD></TR>`,
102
+ `<TR><TD ALIGN="LEFT">counterexample</TD><TD ALIGN="RIGHT">${tri(r.isCounterexample)}</TD></TR>`,
103
+ `</TABLE>`,
104
+ ].join("");
105
+ lines.push(` eval_summary [shape=plaintext label=<${summaryHtml}>];`);
106
+ lines.push("");
107
+ }
96
108
  const premises = engine.listPremises();
97
109
  for (const pm of premises) {
98
110
  const pid = pm.getId();
@@ -107,7 +119,14 @@ export function buildDotGraph(engine, core, overlay) {
107
119
  const premResult = overlay?.premiseResults.get(pid);
108
120
  lines.push(` subgraph ${clusterName} {`);
109
121
  if (overlay && premResult?.rootValue !== undefined) {
110
- const borderColor = truthColor(premResult.rootValue);
122
+ // Detect vacuous truth: root is true but inference diagnostic
123
+ // shows the implication fired vacuously (antecedent false)
124
+ const isVacuous = premResult.rootValue === true &&
125
+ premResult.inferenceDiagnostic?.kind === "implies" &&
126
+ premResult.inferenceDiagnostic.isVacuouslyTrue === true;
127
+ const borderColor = isVacuous
128
+ ? "goldenrod"
129
+ : truthColor(premResult.rootValue);
111
130
  lines.push(` label="${clusterLabel}";`);
112
131
  lines.push(` style=bold;`);
113
132
  lines.push(` color=${borderColor};`);
@@ -150,15 +169,29 @@ export function buildDotGraph(engine, core, overlay) {
150
169
  attrs.push(`shape=${shape}`);
151
170
  // Evaluation overlay: color nodes by truth value
152
171
  if (overlay && premResult) {
153
- const exprValue = premResult.expressionValues[expr.id];
172
+ let exprValue = premResult.expressionValues[expr.id];
173
+ // For variable expressions without a direct value (e.g. under
174
+ // a rejected operator), inherit the variable's assignment value
175
+ if (exprValue === undefined &&
176
+ expr.type === "variable" &&
177
+ overlay.result.assignment) {
178
+ const varVal = overlay.result.assignment.variables[expr.variableId];
179
+ if (varVal !== undefined)
180
+ exprValue = varVal;
181
+ }
154
182
  if (exprValue !== undefined) {
155
183
  attrs.push(`style=filled`);
156
184
  attrs.push(`fillcolor=${truthFillColor(exprValue)}`);
157
185
  }
158
- if (overlay.rejectedExpressionIds.has(expr.id)) {
186
+ const opState = overlay.operatorAssignments[expr.id];
187
+ if (opState === "rejected") {
159
188
  attrs.push(`peripheries=2`);
160
189
  attrs.push(`color=red`);
161
190
  }
191
+ else if (opState === "accepted") {
192
+ attrs.push(`peripheries=2`);
193
+ attrs.push(`color=green`);
194
+ }
162
195
  }
163
196
  lines.push(` "${nid}" [${attrs.join(" ")}];`);
164
197
  }
@@ -294,7 +327,7 @@ export function registerGraphCommand(versionedCmd, argumentId, version) {
294
327
  const engine = await hydrateEngine(argumentId, version, core);
295
328
  let overlay;
296
329
  if (opts.analysis) {
297
- const filename = resolveAnalysisFilename(opts.analysis);
330
+ const filename = await resolveAnalysisFilename(opts.analysis, argumentId, version);
298
331
  if (!(await analysisFileExists(argumentId, version, filename))) {
299
332
  errorExit(`Analysis file "${filename}" does not exist.`);
300
333
  }
@@ -311,12 +344,12 @@ export function registerGraphCommand(versionedCmd, argumentId, version) {
311
344
  }
312
345
  const result = engine.evaluate({
313
346
  variables: variableAssignment,
314
- rejectedExpressionIds: [
315
- ...analysisData.rejectedExpressionIds,
316
- ],
347
+ operatorAssignments: {
348
+ ...analysisData.operatorAssignments,
349
+ },
317
350
  }, {
318
351
  includeExpressionValues: true,
319
- includeDiagnostics: false,
352
+ includeDiagnostics: true,
320
353
  validateFirst: false,
321
354
  });
322
355
  if (!result.ok) {
@@ -332,7 +365,9 @@ export function registerGraphCommand(versionedCmd, argumentId, version) {
332
365
  overlay = {
333
366
  result,
334
367
  premiseResults,
335
- rejectedExpressionIds: new Set(analysisData.rejectedExpressionIds),
368
+ operatorAssignments: {
369
+ ...analysisData.operatorAssignments,
370
+ },
336
371
  };
337
372
  }
338
373
  const dot = buildDotGraph(engine, core, overlay);