@polintpro/proposit-core 0.1.7 → 0.1.9
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/README.md +132 -17
- package/dist/cli/commands/expressions.d.ts.map +1 -1
- package/dist/cli/commands/expressions.js +35 -5
- package/dist/cli/commands/expressions.js.map +1 -1
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +2 -1
- package/dist/cli/import.js.map +1 -1
- package/dist/cli/schemata.d.ts +3 -3
- package/dist/cli/storage/arguments.js +2 -2
- package/dist/cli/storage/arguments.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/core/ExpressionManager.d.ts +15 -0
- package/dist/lib/core/ExpressionManager.d.ts.map +1 -1
- package/dist/lib/core/ExpressionManager.js +67 -44
- package/dist/lib/core/ExpressionManager.js.map +1 -1
- package/dist/lib/core/PremiseManager.d.ts +21 -0
- package/dist/lib/core/PremiseManager.d.ts.map +1 -1
- package/dist/lib/core/PremiseManager.js +60 -0
- package/dist/lib/core/PremiseManager.js.map +1 -1
- package/dist/lib/core/relationships.d.ts +15 -0
- package/dist/lib/core/relationships.d.ts.map +1 -0
- package/dist/lib/core/relationships.js +319 -0
- package/dist/lib/core/relationships.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 +3 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/schemata/propositional.d.ts +9 -9
- package/dist/lib/schemata/propositional.d.ts.map +1 -1
- package/dist/lib/schemata/propositional.js +2 -2
- package/dist/lib/schemata/propositional.js.map +1 -1
- package/dist/lib/types/relationships.d.ts +36 -0
- package/dist/lib/types/relationships.d.ts.map +1 -0
- package/dist/lib/types/relationships.js +2 -0
- package/dist/lib/types/relationships.js.map +1 -0
- package/dist/lib/utils/position.d.ts +5 -0
- package/dist/lib/utils/position.d.ts.map +1 -0
- package/dist/lib/utils/position.js +7 -0
- package/dist/lib/utils/position.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -60,20 +60,20 @@ A premise that is neither supporting nor the conclusion and whose type is `"cons
|
|
|
60
60
|
|
|
61
61
|
Each expression carries:
|
|
62
62
|
|
|
63
|
-
| Field | Type | Description
|
|
64
|
-
| ----------------- | ---------------- |
|
|
65
|
-
| `id` | `string` | Unique identifier.
|
|
66
|
-
| `argumentId` | `string` | Must match the engine's argument.
|
|
67
|
-
| `argumentVersion` | `number` | Must match the engine's argument version.
|
|
68
|
-
| `parentId` | `string \| null` | ID of the parent operator, or `null` for root nodes.
|
|
69
|
-
| `position` | `number
|
|
63
|
+
| Field | Type | Description |
|
|
64
|
+
| ----------------- | ---------------- | ---------------------------------------------------------- |
|
|
65
|
+
| `id` | `string` | Unique identifier. |
|
|
66
|
+
| `argumentId` | `string` | Must match the engine's argument. |
|
|
67
|
+
| `argumentVersion` | `number` | Must match the engine's argument version. |
|
|
68
|
+
| `parentId` | `string \| null` | ID of the parent operator, or `null` for root nodes. |
|
|
69
|
+
| `position` | `number` | Numeric position among siblings (midpoint-based ordering). |
|
|
70
70
|
|
|
71
71
|
## Usage
|
|
72
72
|
|
|
73
73
|
### Creating an engine and premises
|
|
74
74
|
|
|
75
75
|
```typescript
|
|
76
|
-
import { ArgumentEngine } from "@polintpro/proposit-core"
|
|
76
|
+
import { ArgumentEngine, POSITION_INITIAL } from "@polintpro/proposit-core"
|
|
77
77
|
import type {
|
|
78
78
|
TArgument,
|
|
79
79
|
TPropositionalVariable,
|
|
@@ -120,7 +120,7 @@ premise1.addExpression({
|
|
|
120
120
|
type: "operator",
|
|
121
121
|
operator: "implies",
|
|
122
122
|
parentId: null,
|
|
123
|
-
position:
|
|
123
|
+
position: POSITION_INITIAL,
|
|
124
124
|
})
|
|
125
125
|
premise1.addExpression({
|
|
126
126
|
id: "expr-p1",
|
|
@@ -152,7 +152,7 @@ premise2.addExpression({
|
|
|
152
152
|
type: "variable",
|
|
153
153
|
variableId: "var-p",
|
|
154
154
|
parentId: null,
|
|
155
|
-
position:
|
|
155
|
+
position: POSITION_INITIAL,
|
|
156
156
|
})
|
|
157
157
|
|
|
158
158
|
// Conclusion: Q
|
|
@@ -164,7 +164,7 @@ conclusion.addExpression({
|
|
|
164
164
|
type: "variable",
|
|
165
165
|
variableId: "var-q",
|
|
166
166
|
parentId: null,
|
|
167
|
-
position:
|
|
167
|
+
position: POSITION_INITIAL,
|
|
168
168
|
})
|
|
169
169
|
```
|
|
170
170
|
|
|
@@ -178,8 +178,13 @@ eng.setConclusionPremise(conclusion.getId())
|
|
|
178
178
|
|
|
179
179
|
### Evaluating an argument
|
|
180
180
|
|
|
181
|
+
Assignments use `TCoreExpressionAssignment`, which carries both variable truth values (three-valued: `true`, `false`, or `null` for unknown) and a list of rejected expression IDs:
|
|
182
|
+
|
|
181
183
|
```typescript
|
|
182
|
-
const result = eng.evaluate({
|
|
184
|
+
const result = eng.evaluate({
|
|
185
|
+
variables: { "var-p": true, "var-q": true },
|
|
186
|
+
rejectedExpressionIds: [],
|
|
187
|
+
})
|
|
183
188
|
if (result.ok) {
|
|
184
189
|
console.log(result.conclusionTrue) // true
|
|
185
190
|
console.log(result.allSupportingPremisesTrue) // true
|
|
@@ -217,7 +222,7 @@ premise1.addExpression({
|
|
|
217
222
|
type: "variable",
|
|
218
223
|
variableId: "var-r",
|
|
219
224
|
parentId: null,
|
|
220
|
-
position:
|
|
225
|
+
position: POSITION_INITIAL,
|
|
221
226
|
})
|
|
222
227
|
premise1.insertExpression(
|
|
223
228
|
{
|
|
@@ -227,7 +232,7 @@ premise1.insertExpression(
|
|
|
227
232
|
type: "operator",
|
|
228
233
|
operator: "and",
|
|
229
234
|
parentId: null, // overwritten by insertExpression
|
|
230
|
-
position:
|
|
235
|
+
position: POSITION_INITIAL,
|
|
231
236
|
},
|
|
232
237
|
"expr-p1", // becomes child at position 0
|
|
233
238
|
"expr-r" // becomes child at position 1
|
|
@@ -354,7 +359,7 @@ Checks whether the argument is structurally ready to evaluate. Returns `{ ok, is
|
|
|
354
359
|
|
|
355
360
|
#### `evaluate(assignment, options?)` → `TArgumentEvaluationResult`
|
|
356
361
|
|
|
357
|
-
Evaluates all relevant premises under the given
|
|
362
|
+
Evaluates all relevant premises under the given expression assignment (`TCoreExpressionAssignment`). The assignment contains `variables` (a `Record<string, boolean | null>`) and `rejectedExpressionIds` (expression IDs that evaluate to `false` with children skipped). Returns per-premise truth values, counterexample status, and an admissibility flag.
|
|
358
363
|
|
|
359
364
|
Options:
|
|
360
365
|
|
|
@@ -401,7 +406,19 @@ Removes and returns a variable. Throws if any expression still references it.
|
|
|
401
406
|
|
|
402
407
|
#### `addExpression(expression)`
|
|
403
408
|
|
|
404
|
-
Adds an expression to the tree. Validates argument membership, variable references, root uniqueness, and structural constraints (operator type, child limits, position uniqueness).
|
|
409
|
+
Adds an expression to the tree with an explicit numeric position. Validates argument membership, variable references, root uniqueness, and structural constraints (operator type, child limits, position uniqueness). This is the low-level escape hatch — prefer `appendExpression` or `addExpressionRelative` for most use cases.
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
#### `appendExpression(parentId, expression)`
|
|
414
|
+
|
|
415
|
+
Appends an expression as the last child of `parentId` (or as a root if `parentId` is `null`). Position is computed automatically: `POSITION_INITIAL` for the first child, or the midpoint between the last child's position and `POSITION_MAX` for subsequent children. The `expression` argument omits the `position` field (`TExpressionWithoutPosition`).
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
#### `addExpressionRelative(siblingId, relativePosition, expression)`
|
|
420
|
+
|
|
421
|
+
Inserts an expression before or after an existing sibling. `relativePosition` is `"before"` or `"after"`. Position is computed as the midpoint between the sibling and its neighbor (or `POSITION_MIN`/`POSITION_MAX` at the boundaries). The `expression` argument omits the `position` field (`TExpressionWithoutPosition`).
|
|
405
422
|
|
|
406
423
|
---
|
|
407
424
|
|
|
@@ -495,6 +512,96 @@ Returns a serialisable snapshot of this premise (`{ id, title, type, rootExpress
|
|
|
495
512
|
|
|
496
513
|
---
|
|
497
514
|
|
|
515
|
+
### Standalone Functions
|
|
516
|
+
|
|
517
|
+
#### `diffArguments(engineA, engineB, options?)` → `TCoreArgumentDiff`
|
|
518
|
+
|
|
519
|
+
Compares two `ArgumentEngine` instances and returns a structured diff covering argument metadata, variables, premises (with nested expression diffs), and role changes. Each entity category reports added, removed, and modified items with field-level change details.
|
|
520
|
+
|
|
521
|
+
Options allow plugging custom comparators per entity type via `TCoreDiffOptions`:
|
|
522
|
+
|
|
523
|
+
```typescript
|
|
524
|
+
import { diffArguments, defaultCompareVariable } from "@polintpro/proposit-core"
|
|
525
|
+
|
|
526
|
+
const diff = diffArguments(engineA, engineB, {
|
|
527
|
+
compareVariable: (before, after) => {
|
|
528
|
+
// Wrap the default comparator with custom logic
|
|
529
|
+
return defaultCompareVariable(before, after)
|
|
530
|
+
},
|
|
531
|
+
})
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
Default comparators are also exported: `defaultCompareArgument`, `defaultCompareVariable`, `defaultComparePremise`, `defaultCompareExpression`.
|
|
535
|
+
|
|
536
|
+
---
|
|
537
|
+
|
|
538
|
+
#### `analyzePremiseRelationships(engine, focusedPremiseId)` → `TCorePremiseRelationshipAnalysis`
|
|
539
|
+
|
|
540
|
+
Analyzes how every other premise in the argument relates to a focused premise, classifying each as:
|
|
541
|
+
|
|
542
|
+
| Category | Meaning |
|
|
543
|
+
| --------------- | ------------------------------------------------------------------------ |
|
|
544
|
+
| `supporting` | Consequent feeds into the focused premise's antecedent (helps it fire) |
|
|
545
|
+
| `contradicting` | Infers values that negate the focused premise's antecedent or consequent |
|
|
546
|
+
| `restricting` | Constrains shared variables without clear support or contradiction |
|
|
547
|
+
| `downstream` | Takes the focused premise's consequent as input (inference flows away) |
|
|
548
|
+
| `unrelated` | No variable overlap, even transitively |
|
|
549
|
+
|
|
550
|
+
Each result includes per-variable relationship details and a `transitive` flag.
|
|
551
|
+
|
|
552
|
+
```typescript
|
|
553
|
+
import { analyzePremiseRelationships } from "@polintpro/proposit-core"
|
|
554
|
+
|
|
555
|
+
const analysis = analyzePremiseRelationships(engine, conclusionPremiseId)
|
|
556
|
+
for (const r of analysis.premises) {
|
|
557
|
+
console.log(`${r.premiseId}: ${r.relationship}`)
|
|
558
|
+
}
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
---
|
|
562
|
+
|
|
563
|
+
#### `buildPremiseProfile(premise)` → `TCorePremiseProfile`
|
|
564
|
+
|
|
565
|
+
Builds a profile of a premise's variable appearances, recording each variable's side (`antecedent` or `consequent`) and polarity (`positive` or `negative`, determined by negation depth). Used internally by `analyzePremiseRelationships` but also exported for direct use.
|
|
566
|
+
|
|
567
|
+
---
|
|
568
|
+
|
|
569
|
+
#### `parseFormula(input)` → `FormulaAST`
|
|
570
|
+
|
|
571
|
+
Parses a logical formula string into an AST. Supports standard logical notation with operators `not`/`¬`, `and`/`∧`, `or`/`∨`, `implies`/`→`, `iff`/`↔`, and parentheses for grouping.
|
|
572
|
+
|
|
573
|
+
```typescript
|
|
574
|
+
import { parseFormula } from "@polintpro/proposit-core"
|
|
575
|
+
import type { FormulaAST } from "@polintpro/proposit-core"
|
|
576
|
+
|
|
577
|
+
const ast: FormulaAST = parseFormula("(P and Q) implies R")
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
---
|
|
581
|
+
|
|
582
|
+
### Position Utilities
|
|
583
|
+
|
|
584
|
+
Constants and a helper for midpoint-based position computation, exported from `utils/position.ts`:
|
|
585
|
+
|
|
586
|
+
| Export | Value / Signature | Description |
|
|
587
|
+
| ------------------ | --------------------------------------- | ---------------------------------------- |
|
|
588
|
+
| `POSITION_MIN` | `0` | Lower bound for positions. |
|
|
589
|
+
| `POSITION_MAX` | `Number.MAX_SAFE_INTEGER` | Upper bound for positions. |
|
|
590
|
+
| `POSITION_INITIAL` | `Math.floor(Number.MAX_SAFE_INTEGER/2)` | Default position for first children. |
|
|
591
|
+
| `midpoint(a, b)` | `a + (b - a) / 2` | Overflow-safe midpoint of two positions. |
|
|
592
|
+
|
|
593
|
+
~52 bisections at the same insertion point before losing floating-point precision.
|
|
594
|
+
|
|
595
|
+
---
|
|
596
|
+
|
|
597
|
+
### Types
|
|
598
|
+
|
|
599
|
+
#### `TExpressionWithoutPosition`
|
|
600
|
+
|
|
601
|
+
A version of `TPropositionalExpression` with the `position` field omitted. Uses a distributive conditional type to preserve discriminated-union narrowing across the `variable`/`operator`/`formula` variants. Used as the input type for `appendExpression` and `addExpressionRelative`.
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
498
605
|
## CLI
|
|
499
606
|
|
|
500
607
|
The package ships a command-line interface for managing arguments stored on disk.
|
|
@@ -641,10 +748,14 @@ Common options for `create` and `insert`:
|
|
|
641
748
|
| `--type <type>` | `variable`, `operator`, or `formula` (required) |
|
|
642
749
|
| `--id <id>` | Explicit expression ID (default: generated UUID) |
|
|
643
750
|
| `--parent-id <id>` | Parent expression ID (omit for root) |
|
|
644
|
-
| `--position <n>` |
|
|
751
|
+
| `--position <n>` | Explicit numeric position (low-level escape hatch) |
|
|
752
|
+
| `--before <id>` | Insert before this sibling (computes position automatically) |
|
|
753
|
+
| `--after <id>` | Insert after this sibling (computes position automatically) |
|
|
645
754
|
| `--variable-id <id>` | Variable ID (required for `type=variable`) |
|
|
646
755
|
| `--operator <op>` | `not`, `and`, `or`, `implies`, or `iff` (required for `type=operator`) |
|
|
647
756
|
|
|
757
|
+
When none of `--position`, `--before`, or `--after` is specified, the expression is appended as the last child of the parent. `--before`/`--after` cannot be combined with `--position`.
|
|
758
|
+
|
|
648
759
|
`insert` additionally accepts `--left-node-id` and `--right-node-id` to splice the new expression between existing nodes.
|
|
649
760
|
|
|
650
761
|
#### analysis
|
|
@@ -657,6 +768,8 @@ proposit-core <id> <ver> analysis list [--json]
|
|
|
657
768
|
proposit-core <id> <ver> analysis show [--file <filename>] [--json]
|
|
658
769
|
proposit-core <id> <ver> analysis set <symbol> <true|false> [--file <filename>]
|
|
659
770
|
proposit-core <id> <ver> analysis reset [--file <filename>] [--value <true|false>]
|
|
771
|
+
proposit-core <id> <ver> analysis reject <expression_id> [--file <filename>]
|
|
772
|
+
proposit-core <id> <ver> analysis accept <expression_id> [--file <filename>]
|
|
660
773
|
proposit-core <id> <ver> analysis validate-assignments [--file <filename>] [--json]
|
|
661
774
|
proposit-core <id> <ver> analysis delete [--file <filename>] [--confirm]
|
|
662
775
|
proposit-core <id> <ver> analysis evaluate [--file <filename>] [options]
|
|
@@ -668,6 +781,8 @@ proposit-core <id> <ver> analysis export [--json]
|
|
|
668
781
|
|
|
669
782
|
`--file` defaults to `analysis.json` throughout. Key subcommands:
|
|
670
783
|
|
|
784
|
+
- **`reject`** — marks an expression as rejected (it will evaluate to `false` and its children are skipped).
|
|
785
|
+
- **`accept`** — removes an expression from the rejected list (restores normal computation).
|
|
671
786
|
- **`evaluate`** — resolves symbol→ID, evaluates the argument, reports admissibility, counterexample status, and whether the conclusion is true.
|
|
672
787
|
- **`check-validity`** — runs the full truth-table search (`--mode first-counterexample|exhaustive`).
|
|
673
788
|
- **`validate-argument`** — checks structural readiness (conclusion set, inference premises, etc.).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiCnC,wBAAgB,0BAA0B,CACtC,YAAY,EAAE,OAAO,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAChB,IAAI,CAgWN"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import { Command } from "commander";
|
|
3
|
+
import { POSITION_INITIAL } from "../../lib/utils/position.js";
|
|
3
4
|
import { hydrateEngine } from "../engine.js";
|
|
4
5
|
import { errorExit, printJson, printLine } from "../output.js";
|
|
5
6
|
import { readVersionMeta } from "../storage/arguments.js";
|
|
@@ -28,6 +29,8 @@ export function registerExpressionCommands(versionedCmd, argumentId, version) {
|
|
|
28
29
|
.option("--id <id>", "Expression ID (default: generated UUID)")
|
|
29
30
|
.option("--parent-id <parent_id>", "Parent expression ID (omit for root)")
|
|
30
31
|
.option("--position <n>", "Position among siblings")
|
|
32
|
+
.option("--before <sibling_id>", "Insert before this sibling expression")
|
|
33
|
+
.option("--after <sibling_id>", "Insert after this sibling expression")
|
|
31
34
|
.option("--variable-id <variable_id>", "Variable ID (for type=variable)")
|
|
32
35
|
.option("--operator <op>", "Operator (for type=operator): not,and,or,implies,iff")
|
|
33
36
|
.action(async (premiseId, opts) => {
|
|
@@ -41,7 +44,9 @@ export function registerExpressionCommands(versionedCmd, argumentId, version) {
|
|
|
41
44
|
errorExit(`Premise "${premiseId}" not found in engine.`);
|
|
42
45
|
const id = opts.id ?? randomUUID();
|
|
43
46
|
const parentId = opts.parentId ?? null;
|
|
44
|
-
const position = opts.position !== undefined
|
|
47
|
+
const position = opts.position !== undefined
|
|
48
|
+
? Number(opts.position)
|
|
49
|
+
: POSITION_INITIAL;
|
|
45
50
|
let expression;
|
|
46
51
|
if (opts.type === "variable") {
|
|
47
52
|
if (!opts.variableId)
|
|
@@ -82,8 +87,31 @@ export function registerExpressionCommands(versionedCmd, argumentId, version) {
|
|
|
82
87
|
else {
|
|
83
88
|
errorExit(`Unknown type "${opts.type}". Use variable, operator, or formula.`);
|
|
84
89
|
}
|
|
90
|
+
const hasBefore = opts.before !== undefined;
|
|
91
|
+
const hasAfter = opts.after !== undefined;
|
|
92
|
+
const hasPosition = opts.position !== undefined;
|
|
93
|
+
if ((hasBefore || hasAfter) && hasPosition) {
|
|
94
|
+
errorExit("Cannot combine --before/--after with --position.");
|
|
95
|
+
}
|
|
96
|
+
if (hasBefore && hasAfter) {
|
|
97
|
+
errorExit("Cannot combine --before and --after.");
|
|
98
|
+
}
|
|
85
99
|
try {
|
|
86
|
-
|
|
100
|
+
if (hasBefore) {
|
|
101
|
+
const { position: _p, ...exprWithoutPosition } = expression;
|
|
102
|
+
pm.addExpressionRelative(opts.before, "before", exprWithoutPosition);
|
|
103
|
+
}
|
|
104
|
+
else if (hasAfter) {
|
|
105
|
+
const { position: _p, ...exprWithoutPosition } = expression;
|
|
106
|
+
pm.addExpressionRelative(opts.after, "after", exprWithoutPosition);
|
|
107
|
+
}
|
|
108
|
+
else if (hasPosition) {
|
|
109
|
+
pm.addExpression(expression);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
const { position: _p, ...exprWithoutPosition } = expression;
|
|
113
|
+
pm.appendExpression(parentId, exprWithoutPosition);
|
|
114
|
+
}
|
|
87
115
|
}
|
|
88
116
|
catch (e) {
|
|
89
117
|
errorExit(e instanceof Error
|
|
@@ -118,7 +146,9 @@ export function registerExpressionCommands(versionedCmd, argumentId, version) {
|
|
|
118
146
|
errorExit(`Premise "${premiseId}" not found in engine.`);
|
|
119
147
|
const id = opts.id ?? randomUUID();
|
|
120
148
|
const parentId = opts.parentId ?? null;
|
|
121
|
-
const position = opts.position !== undefined
|
|
149
|
+
const position = opts.position !== undefined
|
|
150
|
+
? Number(opts.position)
|
|
151
|
+
: POSITION_INITIAL;
|
|
122
152
|
let expression;
|
|
123
153
|
if (opts.type === "variable") {
|
|
124
154
|
if (!opts.variableId)
|
|
@@ -204,7 +234,7 @@ export function registerExpressionCommands(versionedCmd, argumentId, version) {
|
|
|
204
234
|
else {
|
|
205
235
|
for (const expr of sorted) {
|
|
206
236
|
const extra = typeSpecificInfo(expr);
|
|
207
|
-
printLine(`${expr.id} | ${expr.type} | parent=${expr.parentId ?? "null"} | position=${expr.position
|
|
237
|
+
printLine(`${expr.id} | ${expr.type} | parent=${expr.parentId ?? "null"} | position=${expr.position}${extra ? ` | ${extra}` : ""}`);
|
|
208
238
|
}
|
|
209
239
|
}
|
|
210
240
|
});
|
|
@@ -227,7 +257,7 @@ export function registerExpressionCommands(versionedCmd, argumentId, version) {
|
|
|
227
257
|
printLine(`id: ${expr.id}`);
|
|
228
258
|
printLine(`type: ${expr.type}`);
|
|
229
259
|
printLine(`parentId: ${expr.parentId ?? "null"}`);
|
|
230
|
-
printLine(`position: ${expr.position
|
|
260
|
+
printLine(`position: ${expr.position}`);
|
|
231
261
|
if (expr.type === "variable") {
|
|
232
262
|
printLine(`variableId: ${expr.variableId}`);
|
|
233
263
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EACH,aAAa,EACb,eAAe,EACf,gBAAgB,GACnB,MAAM,wBAAwB,CAAA;AAE/B,KAAK,UAAU,kBAAkB,CAC7B,UAAkB,EAClB,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACvD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,SAAS,CACL,WAAW,OAAO,iBAAiB,UAAU,wCAAwC,CACxF,CAAA;IACL,CAAC;AACL,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAkC;IACxD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,cAAc,IAAI,CAAC,UAAU,EAAE,CAAA;IACpE,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAA;IAChE,OAAO,EAAE,CAAA;AACb,CAAC;AAED,MAAM,UAAU,0BAA0B,CACtC,YAAqB,EACrB,UAAkB,EAClB,OAAe;IAEf,MAAM,KAAK,GAAG,YAAY;SACrB,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,4BAA4B,CAAC,CAAA;IAE9C,KAAK;SACA,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,gCAAgC,CAAC;SAC7C,cAAc,CACX,eAAe,EACf,8CAA8C,CACjD;SACA,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;SAC9D,MAAM,CACH,yBAAyB,EACzB,sCAAsC,CACzC;SACA,MAAM,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACnD,MAAM,CACH,6BAA6B,EAC7B,iCAAiC,CACpC;SACA,MAAM,CACH,iBAAiB,EACjB,sDAAsD,CACzD;SACA,MAAM,CACH,KAAK,EACD,SAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../../src/cli/commands/expressions.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/import.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/cli/import.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/cli/import.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AA4K9D;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAkGzE"}
|
package/dist/cli/import.js
CHANGED
|
@@ -4,6 +4,7 @@ import { Value } from "typebox/value";
|
|
|
4
4
|
import { CoreYamlArgumentSchema } from "../lib/schemata/import.js";
|
|
5
5
|
import { parseFormula } from "../lib/core/parser/formula.js";
|
|
6
6
|
import { ArgumentEngine } from "../lib/core/ArgumentEngine.js";
|
|
7
|
+
import { POSITION_INITIAL } from "../lib/utils/position.js";
|
|
7
8
|
/**
|
|
8
9
|
* Validates that `implies` and `iff` nodes appear only at the AST root.
|
|
9
10
|
* Throws if an implication/biconditional is nested inside another operator.
|
|
@@ -199,7 +200,7 @@ export function importArgumentFromYaml(yamlString) {
|
|
|
199
200
|
pm.addVariable(variable);
|
|
200
201
|
}
|
|
201
202
|
// Build expression tree from parsed AST
|
|
202
|
-
buildExpressions(parsedFormulas[i], null,
|
|
203
|
+
buildExpressions(parsedFormulas[i], null, POSITION_INITIAL, argumentId, 0, variablesByName, (expr) => pm.addExpression(expr));
|
|
203
204
|
// Assign role
|
|
204
205
|
const role = premiseDef.role ?? "supporting";
|
|
205
206
|
if (role === "conclusion") {
|
package/dist/cli/import.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/cli/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,IAAI,MAAM,SAAS,CAAA;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAOlE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/cli/import.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/schemata.d.ts
CHANGED
|
@@ -36,7 +36,7 @@ export declare const CliPremiseDataSchema: Type.TObject<{
|
|
|
36
36
|
argumentId: Type.TString;
|
|
37
37
|
argumentVersion: Type.TNumber;
|
|
38
38
|
parentId: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
39
|
-
position: Type.
|
|
39
|
+
position: Type.TNumber;
|
|
40
40
|
type: Type.TLiteral<"variable">;
|
|
41
41
|
variableId: Type.TString;
|
|
42
42
|
}>, Type.TObject<{
|
|
@@ -44,7 +44,7 @@ export declare const CliPremiseDataSchema: Type.TObject<{
|
|
|
44
44
|
argumentId: Type.TString;
|
|
45
45
|
argumentVersion: Type.TNumber;
|
|
46
46
|
parentId: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
47
|
-
position: Type.
|
|
47
|
+
position: Type.TNumber;
|
|
48
48
|
type: Type.TLiteral<"operator">;
|
|
49
49
|
operator: Type.TUnion<[Type.TLiteral<"not">, Type.TLiteral<"and">, Type.TLiteral<"or">, Type.TLiteral<"implies">, Type.TLiteral<"iff">]>;
|
|
50
50
|
}>, Type.TObject<{
|
|
@@ -52,7 +52,7 @@ export declare const CliPremiseDataSchema: Type.TObject<{
|
|
|
52
52
|
argumentId: Type.TString;
|
|
53
53
|
argumentVersion: Type.TNumber;
|
|
54
54
|
parentId: Type.TUnion<[Type.TString, Type.TNull]>;
|
|
55
|
-
position: Type.
|
|
55
|
+
position: Type.TNumber;
|
|
56
56
|
type: Type.TLiteral<"formula">;
|
|
57
57
|
}>]>>;
|
|
58
58
|
}>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import Value from "typebox/value";
|
|
3
|
+
import { Value } from "typebox/value";
|
|
4
4
|
import { CliArgumentMetaSchema, CliArgumentVersionMetaSchema, } from "../schemata.js";
|
|
5
5
|
import { getArgumentDir, getArgumentsDir, getVersionDir } from "../config.js";
|
|
6
6
|
import { errorExit } from "../output.js";
|
|
@@ -29,7 +29,7 @@ export async function readVersionMeta(argumentId, version) {
|
|
|
29
29
|
});
|
|
30
30
|
const raw = JSON.parse(content);
|
|
31
31
|
try {
|
|
32
|
-
return Value.
|
|
32
|
+
return Value.Decode(CliArgumentVersionMetaSchema, raw);
|
|
33
33
|
}
|
|
34
34
|
catch {
|
|
35
35
|
errorExit(`Invalid or corrupt file: ${filePath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["../../../src/cli/storage/arguments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,KAAK,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"arguments.js","sourceRoot":"","sources":["../../../src/cli/storage/arguments.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,10 @@ export { ArgumentEngine, PremiseManager } from "./lib/index.js";
|
|
|
10
10
|
export * from "./lib/schemata/index.js";
|
|
11
11
|
export * from "./lib/types/diff.js";
|
|
12
12
|
export { diffArguments, defaultCompareArgument, defaultCompareVariable, defaultComparePremise, defaultCompareExpression, } from "./lib/core/diff.js";
|
|
13
|
+
export * from "./lib/types/relationships.js";
|
|
14
|
+
export { analyzePremiseRelationships, buildPremiseProfile, } from "./lib/core/relationships.js";
|
|
13
15
|
export { parseFormula } from "./lib/core/parser/formula.js";
|
|
14
16
|
export type { FormulaAST } from "./lib/core/parser/formula.js";
|
|
17
|
+
export type { TExpressionWithoutPosition } from "./lib/core/ExpressionManager.js";
|
|
18
|
+
export { POSITION_MIN, POSITION_MAX, POSITION_INITIAL, midpoint, } from "./lib/utils/position.js";
|
|
15
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,oBAAoB,CAAA;AAC3B,cAAc,8BAA8B,CAAA;AAC5C,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,GACtB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9D,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AACjF,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,QAAQ,GACX,MAAM,yBAAyB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -10,5 +10,8 @@ export { ArgumentEngine, PremiseManager } from "./lib/index.js";
|
|
|
10
10
|
export * from "./lib/schemata/index.js";
|
|
11
11
|
export * from "./lib/types/diff.js";
|
|
12
12
|
export { diffArguments, defaultCompareArgument, defaultCompareVariable, defaultComparePremise, defaultCompareExpression, } from "./lib/core/diff.js";
|
|
13
|
+
export * from "./lib/types/relationships.js";
|
|
14
|
+
export { analyzePremiseRelationships, buildPremiseProfile, } from "./lib/core/relationships.js";
|
|
13
15
|
export { parseFormula } from "./lib/core/parser/formula.js";
|
|
16
|
+
export { POSITION_MIN, POSITION_MAX, POSITION_INITIAL, midpoint, } from "./lib/utils/position.js";
|
|
14
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/D,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,GAC3B,MAAM,oBAAoB,CAAA;AAC3B,cAAc,8BAA8B,CAAA;AAC5C,OAAO,EACH,2BAA2B,EAC3B,mBAAmB,GACtB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAG3D,OAAO,EACH,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,QAAQ,GACX,MAAM,yBAAyB,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { TCorePropositionalExpression } from "../schemata/index.js";
|
|
2
|
+
export type TExpressionWithoutPosition = TCorePropositionalExpression extends infer U ? U extends TCorePropositionalExpression ? Omit<U, "position"> : never : never;
|
|
2
3
|
/**
|
|
3
4
|
* Low-level manager for a flat-stored expression tree.
|
|
4
5
|
*
|
|
@@ -28,6 +29,20 @@ export declare class ExpressionManager {
|
|
|
28
29
|
* @throws If the position is already occupied under the parent.
|
|
29
30
|
*/
|
|
30
31
|
addExpression(expression: TCorePropositionalExpression): void;
|
|
32
|
+
/**
|
|
33
|
+
* Adds an expression as the last child of the given parent.
|
|
34
|
+
*
|
|
35
|
+
* If the parent has no children, the expression gets `POSITION_INITIAL`.
|
|
36
|
+
* Otherwise it gets a midpoint between the last child's position and
|
|
37
|
+
* `POSITION_MAX`.
|
|
38
|
+
*/
|
|
39
|
+
appendExpression(parentId: string | null, expression: TExpressionWithoutPosition): void;
|
|
40
|
+
/**
|
|
41
|
+
* Adds an expression immediately before or after an existing sibling.
|
|
42
|
+
*
|
|
43
|
+
* @throws If the sibling does not exist.
|
|
44
|
+
*/
|
|
45
|
+
addExpressionRelative(siblingId: string, relativePosition: "before" | "after", expression: TExpressionWithoutPosition): void;
|
|
31
46
|
/**
|
|
32
47
|
* Removes an expression and its entire descendant subtree.
|
|
33
48
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressionManager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/ExpressionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,4BAA4B,EAC/B,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"ExpressionManager.d.ts","sourceRoot":"","sources":["../../../src/lib/core/ExpressionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,4BAA4B,EAC/B,MAAM,sBAAsB,CAAA;AAU7B,MAAM,MAAM,0BAA0B,GAClC,4BAA4B,SAAS,MAAM,CAAC,GACtC,CAAC,SAAS,4BAA4B,GAClC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GACnB,KAAK,GACT,KAAK,CAAA;AAEf;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,WAAW,CAA2C;IAC9D,OAAO,CAAC,4BAA4B,CAAiC;IACrE,OAAO,CAAC,wBAAwB,CAAiC;gBAErD,kBAAkB,GAAE,4BAA4B,EAAO;IAQnE,qDAAqD;IAC9C,OAAO,IAAI,4BAA4B,EAAE;IAIhD;;;;;;;;;OASG;IACI,aAAa,CAAC,UAAU,EAAE,4BAA4B;IAsE7D;;;;;;OAMG;IACI,gBAAgB,CACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,UAAU,EAAE,0BAA0B,GACvC,IAAI;IAaP;;;;OAIG;IACI,qBAAqB,CACxB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,QAAQ,GAAG,OAAO,EACpC,UAAU,EAAE,0BAA0B,GACvC,IAAI;IAmCP;;;;;;;;OAQG;IACI,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAkD5C,OAAO,CAAC,gBAAgB;IA+ExB,qFAAqF;IAC9E,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAYxD,6EAA6E;IACtE,aAAa,CAChB,YAAY,EAAE,MAAM,GACrB,4BAA4B,GAAG,SAAS;IAI3C,oEAAoE;IAC7D,mBAAmB,CACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACxB,4BAA4B,EAAE;IAiBjC,OAAO,CAAC,sBAAsB;IAqC9B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,QAAQ;IAoChB;;;;;;;;;;;;;;;;;OAiBG;IACI,gBAAgB,CACnB,UAAU,EAAE,4BAA4B,EACxC,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACrB,IAAI;CAwIV"}
|