@proposit/proposit-core 0.12.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +104 -93
- package/dist/cli/commands/premises.d.ts.map +1 -1
- package/dist/cli/commands/premises.js +28 -24
- package/dist/cli/commands/premises.js.map +1 -1
- package/dist/cli/commands/repair.d.ts.map +1 -1
- package/dist/cli/commands/repair.js +4 -2
- package/dist/cli/commands/repair.js.map +1 -1
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +7 -1
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/engine.d.ts.map +1 -1
- package/dist/cli/engine.js +7 -25
- package/dist/cli/engine.js.map +1 -1
- package/dist/cli/import.d.ts.map +1 -1
- package/dist/cli/import.js +66 -28
- package/dist/cli/import.js.map +1 -1
- package/dist/cli/schemata.d.ts.map +1 -1
- package/dist/cli/schemata.js +4 -3
- package/dist/cli/schemata.js.map +1 -1
- package/dist/extensions/basics/schemata.d.ts +56 -2
- package/dist/extensions/basics/schemata.d.ts.map +1 -1
- package/dist/extensions/basics/schemata.js +54 -23
- package/dist/extensions/basics/schemata.js.map +1 -1
- package/dist/lib/core/argument-engine.d.ts +275 -10
- package/dist/lib/core/argument-engine.d.ts.map +1 -1
- package/dist/lib/core/argument-engine.js +442 -82
- package/dist/lib/core/argument-engine.js.map +1 -1
- package/dist/lib/core/argument-library.d.ts +5 -1
- package/dist/lib/core/argument-library.d.ts.map +1 -1
- package/dist/lib/core/argument-library.js +7 -3
- package/dist/lib/core/argument-library.js.map +1 -1
- package/dist/lib/core/claim-axiom-library.d.ts +3 -3
- package/dist/lib/core/claim-axiom-library.d.ts.map +1 -1
- package/dist/lib/core/claim-axiom-library.js +2 -2
- package/dist/lib/core/claim-axiom-library.js.map +1 -1
- package/dist/lib/core/claim-citation-library.d.ts +3 -3
- package/dist/lib/core/claim-citation-library.d.ts.map +1 -1
- package/dist/lib/core/claim-citation-library.js +2 -2
- package/dist/lib/core/claim-citation-library.js.map +1 -1
- package/dist/lib/core/expression-manager.d.ts +68 -73
- package/dist/lib/core/expression-manager.d.ts.map +1 -1
- package/dist/lib/core/expression-manager.js +242 -762
- package/dist/lib/core/expression-manager.js.map +1 -1
- package/dist/lib/core/fork.d.ts +5 -1
- package/dist/lib/core/fork.d.ts.map +1 -1
- package/dist/lib/core/fork.js +16 -6
- package/dist/lib/core/fork.js.map +1 -1
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +68 -7
- package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
- package/dist/lib/core/interfaces/library.interfaces.d.ts +9 -6
- package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts +50 -47
- package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.d.ts +80 -11
- package/dist/lib/core/premise-engine.d.ts.map +1 -1
- package/dist/lib/core/premise-engine.js +232 -80
- package/dist/lib/core/premise-engine.js.map +1 -1
- package/dist/lib/core/proposit-core.d.ts +5 -5
- package/dist/lib/core/proposit-core.d.ts.map +1 -1
- package/dist/lib/core/proposit-core.js +13 -3
- package/dist/lib/core/proposit-core.js.map +1 -1
- package/dist/lib/grammar/an-rules.d.ts +158 -0
- package/dist/lib/grammar/an-rules.d.ts.map +1 -0
- package/dist/lib/grammar/an-rules.js +778 -0
- package/dist/lib/grammar/an-rules.js.map +1 -0
- package/dist/lib/grammar/auto-normalize.d.ts +14 -0
- package/dist/lib/grammar/auto-normalize.d.ts.map +1 -0
- package/dist/lib/grammar/auto-normalize.js +35 -0
- package/dist/lib/grammar/auto-normalize.js.map +1 -0
- package/dist/lib/grammar/bounded-subtree.d.ts +30 -0
- package/dist/lib/grammar/bounded-subtree.d.ts.map +1 -0
- package/dist/lib/grammar/bounded-subtree.js +74 -0
- package/dist/lib/grammar/bounded-subtree.js.map +1 -0
- package/dist/lib/grammar/naked-q.d.ts +20 -0
- package/dist/lib/grammar/naked-q.d.ts.map +1 -0
- package/dist/lib/grammar/naked-q.js +58 -0
- package/dist/lib/grammar/naked-q.js.map +1 -0
- package/dist/lib/grammar/normalize.d.ts +12 -0
- package/dist/lib/grammar/normalize.d.ts.map +1 -0
- package/dist/lib/grammar/normalize.js +45 -0
- package/dist/lib/grammar/normalize.js.map +1 -0
- package/dist/lib/grammar/populate-from.d.ts +25 -0
- package/dist/lib/grammar/populate-from.d.ts.map +1 -0
- package/dist/lib/grammar/populate-from.js +252 -0
- package/dist/lib/grammar/populate-from.js.map +1 -0
- package/dist/lib/grammar/repair.d.ts +65 -0
- package/dist/lib/grammar/repair.d.ts.map +1 -0
- package/dist/lib/grammar/repair.js +251 -0
- package/dist/lib/grammar/repair.js.map +1 -0
- package/dist/lib/grammar/types.d.ts +17 -0
- package/dist/lib/grammar/types.d.ts.map +1 -0
- package/dist/lib/grammar/types.js +82 -0
- package/dist/lib/grammar/types.js.map +1 -0
- package/dist/lib/grammar/validate.d.ts +4 -0
- package/dist/lib/grammar/validate.d.ts.map +1 -0
- package/dist/lib/grammar/validate.js +28 -0
- package/dist/lib/grammar/validate.js.map +1 -0
- package/dist/lib/grammar/validators/context.d.ts +11 -0
- package/dist/lib/grammar/validators/context.d.ts.map +1 -0
- package/dist/lib/grammar/validators/context.js +5 -0
- package/dist/lib/grammar/validators/context.js.map +1 -0
- package/dist/lib/grammar/validators/derivable.d.ts +63 -0
- package/dist/lib/grammar/validators/derivable.d.ts.map +1 -0
- package/dist/lib/grammar/validators/derivable.js +502 -0
- package/dist/lib/grammar/validators/derivable.js.map +1 -0
- package/dist/lib/grammar/validators/evaluable.d.ts +48 -0
- package/dist/lib/grammar/validators/evaluable.d.ts.map +1 -0
- package/dist/lib/grammar/validators/evaluable.js +226 -0
- package/dist/lib/grammar/validators/evaluable.js.map +1 -0
- package/dist/lib/grammar/validators/presentable.d.ts +45 -0
- package/dist/lib/grammar/validators/presentable.d.ts.map +1 -0
- package/dist/lib/grammar/validators/presentable.js +231 -0
- package/dist/lib/grammar/validators/presentable.js.map +1 -0
- package/dist/lib/grammar/validators/structural.d.ts +103 -0
- package/dist/lib/grammar/validators/structural.d.ts.map +1 -0
- package/dist/lib/grammar/validators/structural.js +602 -0
- package/dist/lib/grammar/validators/structural.js.map +1 -0
- package/dist/lib/index.d.ts +4 -3
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +2 -2
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/parsing/argument-parser.d.ts +8 -5
- package/dist/lib/parsing/argument-parser.d.ts.map +1 -1
- package/dist/lib/parsing/argument-parser.js +204 -42
- package/dist/lib/parsing/argument-parser.js.map +1 -1
- package/dist/lib/parsing/clamp-max-lengths.d.ts.map +1 -1
- package/dist/lib/parsing/clamp-max-lengths.js +10 -4
- package/dist/lib/parsing/clamp-max-lengths.js.map +1 -1
- package/dist/lib/parsing/prompt-builder.d.ts.map +1 -1
- package/dist/lib/parsing/prompt-builder.js +13 -15
- package/dist/lib/parsing/prompt-builder.js.map +1 -1
- package/dist/lib/parsing/schemata.d.ts +0 -3
- package/dist/lib/parsing/schemata.d.ts.map +1 -1
- package/dist/lib/parsing/schemata.js +25 -13
- package/dist/lib/parsing/schemata.js.map +1 -1
- package/dist/lib/parsing/types.d.ts +1 -1
- package/dist/lib/parsing/types.d.ts.map +1 -1
- package/dist/lib/schemata/claim.d.ts +8 -0
- package/dist/lib/schemata/claim.d.ts.map +1 -1
- package/dist/lib/schemata/claim.js +17 -7
- package/dist/lib/schemata/claim.js.map +1 -1
- package/dist/lib/schemata/import.d.ts.map +1 -1
- package/dist/lib/schemata/import.js +2 -5
- package/dist/lib/schemata/import.js.map +1 -1
- package/dist/lib/schemata/index.d.ts +0 -2
- package/dist/lib/schemata/index.d.ts.map +1 -1
- package/dist/lib/schemata/index.js +0 -2
- package/dist/lib/schemata/index.js.map +1 -1
- package/dist/lib/types/evaluation.d.ts +1 -1
- package/dist/lib/types/evaluation.d.ts.map +1 -1
- package/dist/lib/types/fork.d.ts +12 -3
- package/dist/lib/types/fork.d.ts.map +1 -1
- package/dist/lib/types/validation.d.ts +0 -6
- package/dist/lib/types/validation.d.ts.map +1 -1
- package/dist/lib/types/validation.js +23 -6
- package/dist/lib/types/validation.js.map +1 -1
- package/dist/lib/utils/lookup.d.ts +2 -2
- package/dist/lib/utils/lookup.js +2 -2
- package/package.json +1 -1
- package/dist/lib/core/managed-derivation-premise-engine.d.ts +0 -172
- package/dist/lib/core/managed-derivation-premise-engine.d.ts.map +0 -1
- package/dist/lib/core/managed-derivation-premise-engine.js +0 -550
- package/dist/lib/core/managed-derivation-premise-engine.js.map +0 -1
- package/dist/lib/schemata/claim-axiom.d.ts +0 -11
- package/dist/lib/schemata/claim-axiom.d.ts.map +0 -1
- package/dist/lib/schemata/claim-axiom.js +0 -9
- package/dist/lib/schemata/claim-axiom.js.map +0 -1
- package/dist/lib/schemata/claim-citation.d.ts +0 -11
- package/dist/lib/schemata/claim-citation.d.ts.map +0 -1
- package/dist/lib/schemata/claim-citation.js +0 -9
- package/dist/lib/schemata/claim-citation.js.map +0 -1
- package/dist/lib/types/grammar.d.ts +0 -83
- package/dist/lib/types/grammar.d.ts.map +0 -1
- package/dist/lib/types/grammar.js +0 -24
- package/dist/lib/types/grammar.js.map +0 -1
|
@@ -26,15 +26,15 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
26
26
|
* Adds an expression to this premise's tree.
|
|
27
27
|
*
|
|
28
28
|
* If the expression has `parentId: null` it becomes the root; only one
|
|
29
|
-
* root is permitted per premise. All
|
|
30
|
-
* root-only, child limits, position uniqueness
|
|
29
|
+
* root is permitted per premise. All Structural rules (`implies`/`iff`
|
|
30
|
+
* root-only, child limits, position uniqueness, derivation root
|
|
31
|
+
* operator) are enforced at mutation time.
|
|
31
32
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* `insertExpression` and `wrapExpression`.
|
|
33
|
+
* As of v1.0 (D2) P-1 (non-not operator under operator) is **not**
|
|
34
|
+
* enforced at mutation time — the AN-1 post-hook in assistive
|
|
35
|
+
* behavior inserts the formula buffer; in permissive behavior the
|
|
36
|
+
* un-buffered state stays and surfaces via
|
|
37
|
+
* `engine.validate('presentable')`.
|
|
38
38
|
*
|
|
39
39
|
* @param expression - The expression to add, including position and
|
|
40
40
|
* parent assignment.
|
|
@@ -44,8 +44,6 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
44
44
|
* @throws If the expression's parent does not exist in this premise.
|
|
45
45
|
* @throws If the expression is a variable reference and the variable
|
|
46
46
|
* has not been registered.
|
|
47
|
-
* @throws If a non-not operator would become a direct child of another
|
|
48
|
-
* operator expression (when `wrapInsertFormula` is disabled).
|
|
49
47
|
*/
|
|
50
48
|
addExpression(expression: TExpressionInput<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
51
49
|
/**
|
|
@@ -53,8 +51,8 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
53
51
|
* position computed automatically. If `parentId` is `null`, the
|
|
54
52
|
* expression becomes the root.
|
|
55
53
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
54
|
+
* Composite-mutation behavior (spec §8 / S-9): sibling positions
|
|
55
|
+
* are always shifted as part of the bundled op when the computed
|
|
58
56
|
* position would collide with an existing sibling. Repositioned
|
|
59
57
|
* siblings appear in `changes.expressions.modified`.
|
|
60
58
|
*
|
|
@@ -64,19 +62,17 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
64
62
|
* @throws If the premise already has a root and `parentId` is `null`.
|
|
65
63
|
* @throws If the expression is a variable reference and the variable
|
|
66
64
|
* has not been registered.
|
|
67
|
-
* @throws If a non-not operator would become a direct child of another
|
|
68
|
-
* operator expression.
|
|
69
65
|
*/
|
|
70
66
|
appendExpression(parentId: string | null, expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
71
67
|
/**
|
|
72
68
|
* Adds an expression immediately before or after an existing sibling,
|
|
73
69
|
* with position computed automatically.
|
|
74
70
|
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* midpoint position would collide with an existing sibling. Only
|
|
78
|
-
* minimal set of nodes is repositioned. Repositioned siblings
|
|
79
|
-
* in `changes.expressions.modified`.
|
|
71
|
+
* Composite-mutation behavior (spec §8 / S-9): sibling positions
|
|
72
|
+
* are always shifted as part of the bundled op when the computed
|
|
73
|
+
* midpoint position would collide with an existing sibling. Only
|
|
74
|
+
* the minimal set of nodes is repositioned. Repositioned siblings
|
|
75
|
+
* appear in `changes.expressions.modified`.
|
|
80
76
|
*
|
|
81
77
|
* @param siblingId - The ID of the existing sibling expression.
|
|
82
78
|
* @param relativePosition - Whether to insert `"before"` or `"after"`
|
|
@@ -86,8 +82,6 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
86
82
|
* @throws If the sibling does not exist in this premise.
|
|
87
83
|
* @throws If the expression is a variable reference and the variable
|
|
88
84
|
* has not been registered.
|
|
89
|
-
* @throws If a non-not operator would become a direct child of another
|
|
90
|
-
* operator expression.
|
|
91
85
|
*/
|
|
92
86
|
addExpressionRelative(siblingId: string, relativePosition: "before" | "after", expression: TExpressionWithoutPosition<TExpr>): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
93
87
|
/**
|
|
@@ -102,14 +96,18 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
102
96
|
*/
|
|
103
97
|
updateExpression(expressionId: string, updates: TExpressionUpdate): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
104
98
|
/**
|
|
105
|
-
* Removes an expression and optionally its entire descendant subtree
|
|
106
|
-
*
|
|
99
|
+
* Removes an expression and optionally its entire descendant subtree.
|
|
100
|
+
*
|
|
101
|
+
* As of v1.0 (D2) the pre-mutation 0/1-child collapse cascade is gone —
|
|
102
|
+
* AN-3 (post-mutation hook in assistive mode) handles 0/1-child
|
|
103
|
+
* operator/formula collapse on the surviving parent.
|
|
107
104
|
*
|
|
108
105
|
* @param expressionId - The ID of the expression to remove.
|
|
109
106
|
* @param deleteSubtree - Whether to remove all descendants as well.
|
|
110
107
|
* @returns The removed root expression, or `undefined` if not found.
|
|
111
|
-
* @throws If
|
|
112
|
-
* child
|
|
108
|
+
* @throws If `deleteSubtree` is false and the single surviving
|
|
109
|
+
* child is a root-only operator (`implies`/`iff`) that would be
|
|
110
|
+
* placed in a non-root position (S-5).
|
|
113
111
|
*/
|
|
114
112
|
removeExpression(expressionId: string, deleteSubtree: boolean): TCoreMutationResult<TExpr | undefined, TExpr, TVar, TPremise, TArg>;
|
|
115
113
|
/**
|
|
@@ -117,6 +115,12 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
117
115
|
* expression inherits the tree slot of the anchor node
|
|
118
116
|
* (`leftNodeId ?? rightNodeId`).
|
|
119
117
|
*
|
|
118
|
+
* As of v1.0 (D2) P-1 (non-not operator under operator) is **not**
|
|
119
|
+
* enforced at mutation time — the AN-1 post-hook in assistive
|
|
120
|
+
* behavior inserts the formula buffer; in permissive behavior the
|
|
121
|
+
* un-buffered state stays and surfaces via
|
|
122
|
+
* `engine.validate('presentable')`.
|
|
123
|
+
*
|
|
120
124
|
* @param expression - The expression to insert, including position and
|
|
121
125
|
* parent assignment.
|
|
122
126
|
* @param leftNodeId - The existing node to become the left child of
|
|
@@ -126,8 +130,6 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
126
130
|
* @returns The inserted expression (with checksum) and changeset.
|
|
127
131
|
* @throws If the expression is a variable reference and the variable
|
|
128
132
|
* has not been registered.
|
|
129
|
-
* @throws If a non-not operator would become a direct child of another
|
|
130
|
-
* operator expression.
|
|
131
133
|
*/
|
|
132
134
|
insertExpression(expression: TExpressionInput<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
133
135
|
/**
|
|
@@ -139,6 +141,12 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
139
141
|
* Exactly one of `leftNodeId` / `rightNodeId` must be provided — it
|
|
140
142
|
* identifies the existing node and which child slot it occupies.
|
|
141
143
|
*
|
|
144
|
+
* As of v1.0 (D2) P-1 (non-not operator under operator) is **not**
|
|
145
|
+
* enforced at mutation time — the AN-1 post-hook in assistive
|
|
146
|
+
* behavior inserts the formula buffer; in permissive behavior the
|
|
147
|
+
* un-buffered state stays and surfaces via
|
|
148
|
+
* `engine.validate('presentable')`.
|
|
149
|
+
*
|
|
142
150
|
* @param operator - The new operator expression to wrap with.
|
|
143
151
|
* @param newSibling - The new sibling expression to add alongside the
|
|
144
152
|
* existing node.
|
|
@@ -147,8 +155,6 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
147
155
|
* @returns The inserted operator (with checksum) and changeset.
|
|
148
156
|
* @throws If the new sibling is a variable reference and the variable
|
|
149
157
|
* has not been registered.
|
|
150
|
-
* @throws If a non-not operator would become a direct child of another
|
|
151
|
-
* operator expression.
|
|
152
158
|
*/
|
|
153
159
|
wrapExpression(operator: TExpressionWithoutPosition<TExpr>, newSibling: TExpressionWithoutPosition<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
154
160
|
/**
|
|
@@ -156,14 +162,13 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
156
162
|
* NOT operator, removes the NOT (promoting the expression). Otherwise,
|
|
157
163
|
* wraps the expression with a new NOT operator.
|
|
158
164
|
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
* is disabled and `enforceFormulaBetweenOperators` is `true`.
|
|
165
|
+
* As of v1.0 (D2) P-1 (non-not operator under operator) and P-2
|
|
166
|
+
* (NOT(NOT(x)) double-negation) are **not** enforced at mutation
|
|
167
|
+
* time. The post-mutation AN hook handles them in assistive
|
|
168
|
+
* behavior: AN-1 inserts the formula buffer between NOT and a
|
|
169
|
+
* non-not operator child; AN-2 collapses NOT(NOT(x)) → x. In
|
|
170
|
+
* permissive behavior both states stay and surface via
|
|
171
|
+
* `engine.validate('presentable')`.
|
|
167
172
|
*
|
|
168
173
|
* @param expressionId - The ID of the expression to toggle negation on.
|
|
169
174
|
* @param extraFields - Optional additional fields to merge into newly
|
|
@@ -173,8 +178,6 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
173
178
|
* @returns The new NOT expression when adding negation, or `null` when
|
|
174
179
|
* removing it, along with the changeset.
|
|
175
180
|
* @throws If the expression does not exist in this premise.
|
|
176
|
-
* @throws If `negationInsertFormula` is disabled and the target is a
|
|
177
|
-
* non-not operator (would create operator-under-operator).
|
|
178
181
|
*/
|
|
179
182
|
toggleNegation(expressionId: string, extraFields?: Partial<TExpr>): TCoreMutationResult<TExpr | null, TExpr, TVar, TPremise, TArg>;
|
|
180
183
|
/**
|
|
@@ -188,7 +191,10 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
188
191
|
* reparents its children under the parent.
|
|
189
192
|
* - **Split:** The operator has >2 children. Extracts `sourceChildId` and
|
|
190
193
|
* `targetChildId` into a new sub-operator of type `newOperator`,
|
|
191
|
-
* inserting a formula buffer
|
|
194
|
+
* inserting a formula buffer between the parent and the new
|
|
195
|
+
* sub-operator (the buffer is part of the bundled composite mutation
|
|
196
|
+
* so the resulting tree satisfies P-1 regardless of the engine's
|
|
197
|
+
* `behavior` setting).
|
|
192
198
|
*
|
|
193
199
|
* @param expressionId The operator expression to change.
|
|
194
200
|
* @param newOperator The target operator type.
|
|
@@ -207,12 +213,6 @@ export interface TExpressionMutations<TArg extends TCoreArgument = TCoreArgument
|
|
|
207
213
|
* @throws If sourceChildId/targetChildId are not children of expressionId.
|
|
208
214
|
*/
|
|
209
215
|
changeOperator(expressionId: string, newOperator: TCoreLogicalOperatorType, sourceChildId?: string, targetChildId?: string, extraFields?: Partial<TExpr>): TCoreMutationResult<TExpr | null, TExpr, TVar, TPremise, TArg>;
|
|
210
|
-
/**
|
|
211
|
-
* Performs a full normalization sweep on this premise's expression tree.
|
|
212
|
-
* Collapses unjustified formulas, operators with 0/1 children, and inserts
|
|
213
|
-
* formula buffers where needed. Works regardless of `autoNormalize` setting.
|
|
214
|
-
*/
|
|
215
|
-
normalizeExpressions(): TCoreMutationResult<void, TExpr, TVar, TPremise, TArg>;
|
|
216
216
|
}
|
|
217
217
|
/**
|
|
218
218
|
* Single-premise expression tree reads.
|
|
@@ -293,7 +293,10 @@ export interface TVariableReferences<TArg extends TCoreArgument = TCoreArgument,
|
|
|
293
293
|
getReferencedVariableIds(): Set<string>;
|
|
294
294
|
/**
|
|
295
295
|
* Deletes all expressions that reference the given variable ID,
|
|
296
|
-
* including their subtrees.
|
|
296
|
+
* including their subtrees. As of v1.0 (D2) the pre-mutation operator
|
|
297
|
+
* collapse cascade is gone — AN-3 (post-mutation hook in assistive
|
|
298
|
+
* behavior) handles 0/1-child operator/formula collapse on the
|
|
299
|
+
* surviving parents.
|
|
297
300
|
*
|
|
298
301
|
* @param variableId - The variable ID whose referencing expressions
|
|
299
302
|
* should be removed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"premise-engine.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/premise-engine.interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,wBAAwB,EACxB,YAAY,EACZ,4BAA4B,EAC5B,0BAA0B,EAC7B,MAAM,yBAAyB,CAAA;AAEhC;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC;IAClC,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,CAAA;IAC/C,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1D,uEAAuE;IACvE,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;IACpB,sDAAsD;IACtD,KAAK,IAAI,CAAC,CAAA;CACb;AACD,OAAO,KAAK,EACR,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACxB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EACR,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,EACpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAElE;;GAEG;AACH,MAAM,WAAW,oBAAoB,CACjC,IAAI,SAAS,aAAa,GAAG,aAAa,EAC1C,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,KAAK,SAAS,4BAA4B,GAAG,4BAA4B,EACzE,IAAI,SAAS,0BAA0B,GAAG,0BAA0B;IAEpE
|
|
1
|
+
{"version":3,"file":"premise-engine.interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/core/interfaces/premise-engine.interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type TCoreArgument, type TCoreLogicalOperatorType, type TCorePremise, type TCorePropositionalExpression, type TCorePropositionalVariable, type TOptionalChecksum } from "../schemata/index.js";
|
|
2
|
+
import { type TCorePositionConfig } from "../utils/position.js";
|
|
2
3
|
import type { TCoreExpressionAssignment, TCorePremiseEvaluationResult, TCoreValidationResult } from "../types/evaluation.js";
|
|
3
4
|
import type { TCoreMutationResult } from "../types/mutation.js";
|
|
4
5
|
import type { TInvariantValidationResult } from "../types/validation.js";
|
|
5
6
|
import { type TLogicEngineOptions } from "./argument-engine.js";
|
|
6
|
-
import { type TGrammarConfig } from "../types/grammar.js";
|
|
7
7
|
import type { TExpressionInput, TExpressionManagerSnapshot, TExpressionWithoutPosition, TExpressionUpdate } from "./expression-manager.js";
|
|
8
8
|
import { ExpressionManager } from "./expression-manager.js";
|
|
9
9
|
import { VariableManager } from "./variable-manager.js";
|
|
@@ -22,7 +22,6 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
22
22
|
private expressionsByVariableId;
|
|
23
23
|
private argument;
|
|
24
24
|
private checksumConfig?;
|
|
25
|
-
protected grammarConfig: TGrammarConfig;
|
|
26
25
|
private checksumDirty;
|
|
27
26
|
private cachedMetaChecksum;
|
|
28
27
|
private cachedDescendantChecksum;
|
|
@@ -41,11 +40,15 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
41
40
|
expressionIndex?: Map<string, string>;
|
|
42
41
|
}, config?: TLogicEngineOptions);
|
|
43
42
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
43
|
+
* Returns the position config in effect for this premise engine.
|
|
44
|
+
* Used by in-package helpers (notably the native AN-4 absorption
|
|
45
|
+
* pass in `src/lib/grammar/an-rules.ts`) that need the position
|
|
46
|
+
* range boundaries when computing target positions for absorbed
|
|
47
|
+
* children.
|
|
48
|
+
*
|
|
49
|
+
* @internal
|
|
47
50
|
*/
|
|
48
|
-
|
|
51
|
+
getPositionConfig(): TCorePositionConfig;
|
|
49
52
|
setOnMutate(callback: (() => void) | undefined): void;
|
|
50
53
|
setCircularityCheck(check: ((variableId: string, premiseId: string) => boolean) | undefined): void;
|
|
51
54
|
setEmptyBoundPremiseCheck(check: ((variableId: string) => boolean) | undefined): void;
|
|
@@ -63,11 +66,77 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
63
66
|
insertExpression(expression: TExpressionInput<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
64
67
|
wrapExpression(operator: TExpressionWithoutPosition<TExpr>, newSibling: TExpressionWithoutPosition<TExpr>, leftNodeId?: string, rightNodeId?: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
65
68
|
/**
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
+
* Reparent an existing expression onto a new parent at the given
|
|
70
|
+
* position. Bundled-composite mutation per spec §8 — the parent
|
|
71
|
+
* reference, position field, and checksum-dirty propagation update
|
|
72
|
+
* atomically in a single call. No transient orphan state is
|
|
73
|
+
* externally observable.
|
|
74
|
+
*
|
|
75
|
+
* Enforces Structural rules only (S-1 FK soundness, S-4 no-cycles,
|
|
76
|
+
* entity-not-found, and S-9 logical sibling-position uniqueness at
|
|
77
|
+
* the bundled-composite level — same-position collisions with the
|
|
78
|
+
* moved expression's own prior slot are tolerated as transient,
|
|
79
|
+
* since the move atomically frees that slot). Higher-tier violations
|
|
80
|
+
* never throw here — Evaluable/Derivable/Presentable issues surface
|
|
81
|
+
* through `validate(tier)` per spec §7.1.
|
|
82
|
+
*
|
|
83
|
+
* Used by the native AN-1 (formula-buffer insertion) and AN-4
|
|
84
|
+
* (same-operator absorption) passes in `src/lib/grammar/an-rules.ts`,
|
|
85
|
+
* and available to repair primitives and future composite ops that
|
|
86
|
+
* need a public reparent surface (e.g. `removeOrphanOperators`).
|
|
87
|
+
*
|
|
88
|
+
* @throws If `expressionId` or `newParentId` does not exist in this
|
|
89
|
+
* premise.
|
|
90
|
+
* @throws S-1: if `newParent` is not an `operator` or `formula` (a
|
|
91
|
+
* variable cannot be a parent — parity with `addExpression`
|
|
92
|
+
* at em.ts:418-422).
|
|
93
|
+
* @throws S-1: arity — if reparenting would push `newParent`'s
|
|
94
|
+
* child count past its operator-specific limit (unary `not`
|
|
95
|
+
* max 1; binary `implies`/`iff` max 2). Same-parent moves
|
|
96
|
+
* leave count unchanged and bypass this check.
|
|
97
|
+
* @throws S-4: if `newParentId === expressionId` or `newParentId` is
|
|
98
|
+
* a descendant of `expressionId`.
|
|
99
|
+
* @throws S-9: if another sibling (NOT the expression being moved)
|
|
100
|
+
* already occupies `newPosition` under `newParentId`.
|
|
101
|
+
*
|
|
102
|
+
* @since 1.0.0
|
|
69
103
|
*/
|
|
70
|
-
|
|
104
|
+
reparentExpression(expressionId: string, newParentId: string, newPosition: number): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
105
|
+
/**
|
|
106
|
+
* Wrap an existing expression in a freshly-minted `formula` node
|
|
107
|
+
* atomically. The formula takes the child's original parent slot
|
|
108
|
+
* (parentId + position); the child becomes the formula's sole
|
|
109
|
+
* child at position 0. Bundled-composite mutation per spec §8.
|
|
110
|
+
*
|
|
111
|
+
* Used by the native AN-1 (formula-buffer insertion) pass in
|
|
112
|
+
* `src/lib/grammar/an-rules.ts`. Composing this from
|
|
113
|
+
* `addExpression` + `reparentExpression` is not possible: the
|
|
114
|
+
* intermediate state would either (a) violate S-9 with the child
|
|
115
|
+
* still occupying the formula's target slot, or (b) trip the
|
|
116
|
+
* parent's `assertChildLimit` (unary `not`, binary
|
|
117
|
+
* `implies`/`iff`) even though the *net* child count of the parent
|
|
118
|
+
* is unchanged after the wrap.
|
|
119
|
+
*
|
|
120
|
+
* The new formula's id is minted via the engine's `idGenerator`
|
|
121
|
+
* accessor and returned in the mutation result. Argument fields
|
|
122
|
+
* (`argumentId`, `argumentVersion`, `premiseId`) are inherited
|
|
123
|
+
* from the source child.
|
|
124
|
+
*
|
|
125
|
+
* @throws If `childId` does not exist in this premise.
|
|
126
|
+
* @throws If `childId` is at the root (no parent to insert a
|
|
127
|
+
* buffer beneath).
|
|
128
|
+
* @throws S-10: if `formulaId` is already used by an existing
|
|
129
|
+
* expression in this premise (entity-ID uniqueness).
|
|
130
|
+
*
|
|
131
|
+
* @since 1.0.0
|
|
132
|
+
*/
|
|
133
|
+
wrapInFormula(childId: string, formulaId: string): TCoreMutationResult<TExpr, TExpr, TVar, TPremise, TArg>;
|
|
134
|
+
/**
|
|
135
|
+
* Returns true iff `candidateId` is a descendant of `ancestorId` in
|
|
136
|
+
* this premise's expression tree. Used by `reparentExpression` for
|
|
137
|
+
* the S-4 no-cycles check.
|
|
138
|
+
*/
|
|
139
|
+
private isDescendantOf;
|
|
71
140
|
toggleNegation(expressionId: string, extraFields?: Partial<TExpr>): TCoreMutationResult<TExpr | null, TExpr, TVar, TPremise, TArg>;
|
|
72
141
|
changeOperator(expressionId: string, newOperator: TCoreLogicalOperatorType, sourceChildId?: string, targetChildId?: string, extraFields?: Partial<TExpr>): TCoreMutationResult<TExpr | null, TExpr, TVar, TPremise, TArg>;
|
|
73
142
|
getExpression(id: string): TExpr | undefined;
|
|
@@ -119,7 +188,7 @@ export declare class PremiseEngine<TArg extends TCoreArgument = TCoreArgument, T
|
|
|
119
188
|
private operatorSymbol;
|
|
120
189
|
snapshot(): TPremiseEngineSnapshot<TPremise, TExpr>;
|
|
121
190
|
/** Creates a new PremiseEngine from a previously captured snapshot. */
|
|
122
|
-
static fromSnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable>(snapshot: TPremiseEngineSnapshot<TPremise, TExpr>, argument: TOptionalChecksum<TArg>, variables: VariableManager<TVar>, expressionIndex?: Map<string, string>,
|
|
191
|
+
static fromSnapshot<TArg extends TCoreArgument = TCoreArgument, TPremise extends TCorePremise = TCorePremise, TExpr extends TCorePropositionalExpression = TCorePropositionalExpression, TVar extends TCorePropositionalVariable = TCorePropositionalVariable>(snapshot: TPremiseEngineSnapshot<TPremise, TExpr>, argument: TOptionalChecksum<TArg>, variables: VariableManager<TVar>, expressionIndex?: Map<string, string>, generateId?: () => string): PremiseEngine<TArg, TPremise, TExpr, TVar>;
|
|
123
192
|
/**
|
|
124
193
|
* Flushes hierarchical expression checksums and rebuilds the changeset
|
|
125
194
|
* so that added/modified expressions carry correct `descendantChecksum`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/premise-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAE/B,KAAK,iBAAiB,EACzB,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"premise-engine.d.ts","sourceRoot":"","sources":["../../../src/lib/core/premise-engine.ts"],"names":[],"mappings":"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"}
|