@proposit/proposit-core 0.12.3 → 1.0.1

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 (125) hide show
  1. package/README.md +104 -93
  2. package/dist/cli/commands/premises.d.ts.map +1 -1
  3. package/dist/cli/commands/premises.js +28 -24
  4. package/dist/cli/commands/premises.js.map +1 -1
  5. package/dist/cli/commands/repair.d.ts.map +1 -1
  6. package/dist/cli/commands/repair.js +4 -2
  7. package/dist/cli/commands/repair.js.map +1 -1
  8. package/dist/cli/commands/validate.d.ts.map +1 -1
  9. package/dist/cli/commands/validate.js +7 -1
  10. package/dist/cli/commands/validate.js.map +1 -1
  11. package/dist/cli/engine.d.ts.map +1 -1
  12. package/dist/cli/engine.js +7 -25
  13. package/dist/cli/engine.js.map +1 -1
  14. package/dist/cli/import.d.ts.map +1 -1
  15. package/dist/cli/import.js +66 -28
  16. package/dist/cli/import.js.map +1 -1
  17. package/dist/lib/core/argument-engine.d.ts +275 -10
  18. package/dist/lib/core/argument-engine.d.ts.map +1 -1
  19. package/dist/lib/core/argument-engine.js +442 -82
  20. package/dist/lib/core/argument-engine.js.map +1 -1
  21. package/dist/lib/core/argument-library.d.ts +5 -1
  22. package/dist/lib/core/argument-library.d.ts.map +1 -1
  23. package/dist/lib/core/argument-library.js +7 -3
  24. package/dist/lib/core/argument-library.js.map +1 -1
  25. package/dist/lib/core/expression-manager.d.ts +68 -73
  26. package/dist/lib/core/expression-manager.d.ts.map +1 -1
  27. package/dist/lib/core/expression-manager.js +272 -771
  28. package/dist/lib/core/expression-manager.js.map +1 -1
  29. package/dist/lib/core/fork.d.ts +5 -1
  30. package/dist/lib/core/fork.d.ts.map +1 -1
  31. package/dist/lib/core/fork.js +16 -6
  32. package/dist/lib/core/fork.js.map +1 -1
  33. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts +68 -7
  34. package/dist/lib/core/interfaces/argument-engine.interfaces.d.ts.map +1 -1
  35. package/dist/lib/core/interfaces/library.interfaces.d.ts +8 -3
  36. package/dist/lib/core/interfaces/library.interfaces.d.ts.map +1 -1
  37. package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts +50 -47
  38. package/dist/lib/core/interfaces/premise-engine.interfaces.d.ts.map +1 -1
  39. package/dist/lib/core/premise-engine.d.ts +80 -11
  40. package/dist/lib/core/premise-engine.d.ts.map +1 -1
  41. package/dist/lib/core/premise-engine.js +245 -83
  42. package/dist/lib/core/premise-engine.js.map +1 -1
  43. package/dist/lib/core/proposit-core.d.ts.map +1 -1
  44. package/dist/lib/core/proposit-core.js +13 -3
  45. package/dist/lib/core/proposit-core.js.map +1 -1
  46. package/dist/lib/grammar/an-rules.d.ts +158 -0
  47. package/dist/lib/grammar/an-rules.d.ts.map +1 -0
  48. package/dist/lib/grammar/an-rules.js +778 -0
  49. package/dist/lib/grammar/an-rules.js.map +1 -0
  50. package/dist/lib/grammar/auto-normalize.d.ts +14 -0
  51. package/dist/lib/grammar/auto-normalize.d.ts.map +1 -0
  52. package/dist/lib/grammar/auto-normalize.js +35 -0
  53. package/dist/lib/grammar/auto-normalize.js.map +1 -0
  54. package/dist/lib/grammar/bounded-subtree.d.ts +30 -0
  55. package/dist/lib/grammar/bounded-subtree.d.ts.map +1 -0
  56. package/dist/lib/grammar/bounded-subtree.js +74 -0
  57. package/dist/lib/grammar/bounded-subtree.js.map +1 -0
  58. package/dist/lib/grammar/naked-q.d.ts +20 -0
  59. package/dist/lib/grammar/naked-q.d.ts.map +1 -0
  60. package/dist/lib/grammar/naked-q.js +58 -0
  61. package/dist/lib/grammar/naked-q.js.map +1 -0
  62. package/dist/lib/grammar/normalize.d.ts +12 -0
  63. package/dist/lib/grammar/normalize.d.ts.map +1 -0
  64. package/dist/lib/grammar/normalize.js +45 -0
  65. package/dist/lib/grammar/normalize.js.map +1 -0
  66. package/dist/lib/grammar/populate-from.d.ts +25 -0
  67. package/dist/lib/grammar/populate-from.d.ts.map +1 -0
  68. package/dist/lib/grammar/populate-from.js +252 -0
  69. package/dist/lib/grammar/populate-from.js.map +1 -0
  70. package/dist/lib/grammar/repair.d.ts +65 -0
  71. package/dist/lib/grammar/repair.d.ts.map +1 -0
  72. package/dist/lib/grammar/repair.js +251 -0
  73. package/dist/lib/grammar/repair.js.map +1 -0
  74. package/dist/lib/grammar/types.d.ts +17 -0
  75. package/dist/lib/grammar/types.d.ts.map +1 -0
  76. package/dist/lib/grammar/types.js +82 -0
  77. package/dist/lib/grammar/types.js.map +1 -0
  78. package/dist/lib/grammar/validate.d.ts +4 -0
  79. package/dist/lib/grammar/validate.d.ts.map +1 -0
  80. package/dist/lib/grammar/validate.js +28 -0
  81. package/dist/lib/grammar/validate.js.map +1 -0
  82. package/dist/lib/grammar/validators/context.d.ts +11 -0
  83. package/dist/lib/grammar/validators/context.d.ts.map +1 -0
  84. package/dist/lib/grammar/validators/context.js +5 -0
  85. package/dist/lib/grammar/validators/context.js.map +1 -0
  86. package/dist/lib/grammar/validators/derivable.d.ts +63 -0
  87. package/dist/lib/grammar/validators/derivable.d.ts.map +1 -0
  88. package/dist/lib/grammar/validators/derivable.js +502 -0
  89. package/dist/lib/grammar/validators/derivable.js.map +1 -0
  90. package/dist/lib/grammar/validators/evaluable.d.ts +48 -0
  91. package/dist/lib/grammar/validators/evaluable.d.ts.map +1 -0
  92. package/dist/lib/grammar/validators/evaluable.js +226 -0
  93. package/dist/lib/grammar/validators/evaluable.js.map +1 -0
  94. package/dist/lib/grammar/validators/presentable.d.ts +45 -0
  95. package/dist/lib/grammar/validators/presentable.d.ts.map +1 -0
  96. package/dist/lib/grammar/validators/presentable.js +231 -0
  97. package/dist/lib/grammar/validators/presentable.js.map +1 -0
  98. package/dist/lib/grammar/validators/structural.d.ts +103 -0
  99. package/dist/lib/grammar/validators/structural.d.ts.map +1 -0
  100. package/dist/lib/grammar/validators/structural.js +602 -0
  101. package/dist/lib/grammar/validators/structural.js.map +1 -0
  102. package/dist/lib/index.d.ts +4 -3
  103. package/dist/lib/index.d.ts.map +1 -1
  104. package/dist/lib/index.js +2 -2
  105. package/dist/lib/index.js.map +1 -1
  106. package/dist/lib/parsing/argument-parser.d.ts.map +1 -1
  107. package/dist/lib/parsing/argument-parser.js +52 -10
  108. package/dist/lib/parsing/argument-parser.js.map +1 -1
  109. package/dist/lib/types/evaluation.d.ts +1 -1
  110. package/dist/lib/types/evaluation.d.ts.map +1 -1
  111. package/dist/lib/types/fork.d.ts +12 -3
  112. package/dist/lib/types/fork.d.ts.map +1 -1
  113. package/dist/lib/types/validation.d.ts +0 -6
  114. package/dist/lib/types/validation.d.ts.map +1 -1
  115. package/dist/lib/types/validation.js +23 -6
  116. package/dist/lib/types/validation.js.map +1 -1
  117. package/package.json +1 -1
  118. package/dist/lib/core/managed-derivation-premise-engine.d.ts +0 -172
  119. package/dist/lib/core/managed-derivation-premise-engine.d.ts.map +0 -1
  120. package/dist/lib/core/managed-derivation-premise-engine.js +0 -550
  121. package/dist/lib/core/managed-derivation-premise-engine.js.map +0 -1
  122. package/dist/lib/types/grammar.d.ts +0 -83
  123. package/dist/lib/types/grammar.d.ts.map +0 -1
  124. package/dist/lib/types/grammar.js +0 -24
  125. package/dist/lib/types/grammar.js.map +0 -1
@@ -0,0 +1,602 @@
1
+ // Structural-tier validators (S-1..S-14). Each rule has an exported
2
+ // function with the signature (ctx: TValidatorContext) => readonly
3
+ // TViolation[]. The aggregator validateStructural runs every rule and
4
+ // concatenates the results.
5
+ //
6
+ // S-1 FK soundness
7
+ // S-2 operator types
8
+ // S-3 variable required reference
9
+ // S-4 no cycles
10
+ // S-5 root-only IMPLIES/IFF
11
+ // S-6 premise type discriminator consistency
12
+ // S-7 claim type immutability (creation-time invariant; runtime no-op)
13
+ // S-8 binary operator arity + positions
14
+ // S-9 sibling position uniqueness
15
+ // S-10 entity ID uniqueness
16
+ // S-11 variable symbol uniqueness
17
+ // S-12 NOT unary arity
18
+ // S-13 formula unary arity
19
+ // S-14 derivation premise root operator
20
+ import { isClaimBound, isPremiseBound } from "../../schemata/propositional.js";
21
+ /**
22
+ * S-1 — FK soundness.
23
+ *
24
+ * For every entity in the context, check that its foreign-key fields
25
+ * resolve to an existing target:
26
+ * - `expression.parentId` (when non-null) resolves to another expression
27
+ * in the context.
28
+ * - Claim-bound variable's `claimId` resolves to a claim in the context.
29
+ * - Premise-bound variable's `boundPremiseId` resolves to a premise in the
30
+ * context **only when** the binding is internal
31
+ * (`boundArgumentId === argument.id`); externally-bound variables
32
+ * resolve in a different argument and are not S-1's concern.
33
+ *
34
+ * Premise `argumentId`/`argumentVersion` matching its container argument
35
+ * is checked here too (same-FK-soundness umbrella).
36
+ */
37
+ export function validateS1(ctx) {
38
+ const violations = [];
39
+ const expressionIds = new Set(ctx.expressions.map((e) => e.id));
40
+ const premiseIds = new Set(ctx.premises.map((p) => p.id));
41
+ const claimIds = new Set(ctx.claims.map((c) => c.id));
42
+ // Expression parent refs.
43
+ for (const e of ctx.expressions) {
44
+ if (e.parentId !== null && !expressionIds.has(e.parentId)) {
45
+ violations.push({
46
+ tier: "structural",
47
+ code: "S-1",
48
+ message: `expression ${e.id} has parentId ${e.parentId} which does not resolve`,
49
+ argumentId: ctx.argument.id,
50
+ premiseId: e.premiseId,
51
+ expressionId: e.id,
52
+ });
53
+ }
54
+ }
55
+ // Variable refs.
56
+ for (const v of ctx.variables) {
57
+ if (isClaimBound(v)) {
58
+ if (!claimIds.has(v.claimId)) {
59
+ violations.push({
60
+ tier: "structural",
61
+ code: "S-1",
62
+ message: `variable ${v.id} has claimId ${v.claimId} which does not resolve`,
63
+ argumentId: ctx.argument.id,
64
+ variableId: v.id,
65
+ claimId: v.claimId,
66
+ });
67
+ }
68
+ }
69
+ else if (isPremiseBound(v)) {
70
+ // Internal binding: same argument; FK must resolve here. External
71
+ // binding: different argument; resolves elsewhere — not S-1.
72
+ if (v.boundArgumentId === ctx.argument.id &&
73
+ !premiseIds.has(v.boundPremiseId)) {
74
+ violations.push({
75
+ tier: "structural",
76
+ code: "S-1",
77
+ message: `variable ${v.id} has boundPremiseId ${v.boundPremiseId} which does not resolve in argument ${ctx.argument.id}`,
78
+ argumentId: ctx.argument.id,
79
+ variableId: v.id,
80
+ premiseId: v.boundPremiseId,
81
+ });
82
+ }
83
+ }
84
+ }
85
+ // Premise → argument refs.
86
+ for (const p of ctx.premises) {
87
+ if (p.argumentId !== ctx.argument.id ||
88
+ p.argumentVersion !== ctx.argument.version) {
89
+ violations.push({
90
+ tier: "structural",
91
+ code: "S-1",
92
+ message: `premise ${p.id} has argumentId/argumentVersion ${p.argumentId}/${p.argumentVersion} which does not match container ${ctx.argument.id}/${ctx.argument.version}`,
93
+ argumentId: ctx.argument.id,
94
+ premiseId: p.id,
95
+ });
96
+ }
97
+ }
98
+ return violations;
99
+ }
100
+ // Static-string allow-lists used by S-2 below. Kept as `string[]` (not the
101
+ // narrow literal union) so `.includes(...)` accepts a widened input from
102
+ // runtime data — the whole point of S-2 is to detect deserialized data
103
+ // whose discriminant value doesn't match the legal union at compile time.
104
+ const validExpressionTypes = ["variable", "operator", "formula"];
105
+ const validOperatorTypes = ["not", "and", "or", "implies", "iff"];
106
+ /**
107
+ * S-2 — Operator types. Every expression's `type` is one of `variable`,
108
+ * `operator`, `formula`. For operator-typed expressions, the `operator`
109
+ * field is one of `not`, `and`, `or`, `implies`, `iff`.
110
+ */
111
+ export function validateS2(ctx) {
112
+ const violations = [];
113
+ for (const e of ctx.expressions) {
114
+ // Widen `type` to `string` so .includes() accepts it without a cast.
115
+ // TS thinks the field can only be the legal union; the widening is
116
+ // a defensive read against malformed runtime data.
117
+ const eType = e.type;
118
+ if (!validExpressionTypes.includes(eType)) {
119
+ violations.push({
120
+ tier: "structural",
121
+ code: "S-2",
122
+ message: `expression ${e.id} has unknown type '${eType}'`,
123
+ argumentId: ctx.argument.id,
124
+ premiseId: e.premiseId,
125
+ expressionId: e.id,
126
+ });
127
+ continue;
128
+ }
129
+ if (e.type === "operator") {
130
+ const op = e.operator;
131
+ if (!validOperatorTypes.includes(op)) {
132
+ violations.push({
133
+ tier: "structural",
134
+ code: "S-2",
135
+ message: `operator expression ${e.id} has unknown operator '${op}'`,
136
+ argumentId: ctx.argument.id,
137
+ premiseId: e.premiseId,
138
+ expressionId: e.id,
139
+ });
140
+ }
141
+ }
142
+ }
143
+ return violations;
144
+ }
145
+ /**
146
+ * S-3 — Variable required reference. Every variable has either a claim ref
147
+ * or a premise ref, not both, not neither.
148
+ */
149
+ export function validateS3(ctx) {
150
+ const violations = [];
151
+ for (const v of ctx.variables) {
152
+ // Capture id before type-guard narrowing: the "neither" branch
153
+ // below corresponds to malformed data that TypeScript narrows to
154
+ // `never` (the static union is exhaustive). Preserving the id via
155
+ // a separate read works around the narrowing.
156
+ const variableId = v.id;
157
+ const hasClaimRef = isClaimBound(v);
158
+ const hasPremiseRef = isPremiseBound(v);
159
+ if (hasClaimRef && hasPremiseRef) {
160
+ violations.push({
161
+ tier: "structural",
162
+ code: "S-3",
163
+ message: `variable ${variableId} has both claim and premise references`,
164
+ argumentId: ctx.argument.id,
165
+ variableId,
166
+ });
167
+ }
168
+ else if (!hasClaimRef && !hasPremiseRef) {
169
+ violations.push({
170
+ tier: "structural",
171
+ code: "S-3",
172
+ message: `variable ${variableId} has neither claim nor premise reference`,
173
+ argumentId: ctx.argument.id,
174
+ variableId,
175
+ });
176
+ }
177
+ }
178
+ return violations;
179
+ }
180
+ /**
181
+ * S-4 — No cycles. The expression tree of every premise (parent-pointer
182
+ * graph) is acyclic.
183
+ */
184
+ export function validateS4(ctx) {
185
+ const violations = [];
186
+ const byId = new Map();
187
+ for (const e of ctx.expressions)
188
+ byId.set(e.id, e);
189
+ for (const start of ctx.expressions) {
190
+ const seen = new Set();
191
+ let cursor = start.id;
192
+ let cycleDetected = false;
193
+ while (cursor !== null) {
194
+ if (seen.has(cursor)) {
195
+ cycleDetected = true;
196
+ break;
197
+ }
198
+ seen.add(cursor);
199
+ const node = byId.get(cursor);
200
+ if (node === undefined)
201
+ break;
202
+ cursor = node.parentId;
203
+ }
204
+ if (cycleDetected) {
205
+ violations.push({
206
+ tier: "structural",
207
+ code: "S-4",
208
+ message: `expression ${start.id} is in a parent-pointer cycle`,
209
+ argumentId: ctx.argument.id,
210
+ premiseId: start.premiseId,
211
+ expressionId: start.id,
212
+ });
213
+ }
214
+ }
215
+ return violations;
216
+ }
217
+ /**
218
+ * S-5 — Root-only IMPLIES/IFF. Within a single premise's AST, `implies`
219
+ * and `iff` may appear at most once and only at the root (parentId === null).
220
+ */
221
+ export function validateS5(ctx) {
222
+ const violations = [];
223
+ const rootImplIffByPremise = new Map();
224
+ for (const e of ctx.expressions) {
225
+ if (e.type !== "operator")
226
+ continue;
227
+ if (e.operator !== "implies" && e.operator !== "iff")
228
+ continue;
229
+ if (e.parentId !== null) {
230
+ // Non-root implies/iff — violation regardless of count.
231
+ violations.push({
232
+ tier: "structural",
233
+ code: "S-5",
234
+ message: `${e.operator} expression ${e.id} appears as a non-root child`,
235
+ argumentId: ctx.argument.id,
236
+ premiseId: e.premiseId,
237
+ expressionId: e.id,
238
+ });
239
+ }
240
+ else {
241
+ // Root-level — track for >1-per-premise check.
242
+ const list = rootImplIffByPremise.get(e.premiseId) ?? [];
243
+ list.push(e.id);
244
+ rootImplIffByPremise.set(e.premiseId, list);
245
+ }
246
+ }
247
+ for (const [premiseId, ids] of rootImplIffByPremise) {
248
+ if (ids.length > 1) {
249
+ // Every root-level implies/iff in a premise with >1 is in
250
+ // violation — there's no canonical "first" that's correct and
251
+ // the rest wrong, so flag each. Consumers that prefer
252
+ // first-wins can dedupe by `premiseId` at the UI layer.
253
+ for (const offendingId of ids) {
254
+ violations.push({
255
+ tier: "structural",
256
+ code: "S-5",
257
+ message: `premise ${premiseId} has more than one root-level implies/iff (${ids.length} total; offender: ${offendingId})`,
258
+ argumentId: ctx.argument.id,
259
+ premiseId,
260
+ expressionId: offendingId,
261
+ });
262
+ }
263
+ }
264
+ }
265
+ return violations;
266
+ }
267
+ /**
268
+ * S-6 — Premise type discriminator consistency. `type='derivation'`
269
+ * premises have a non-null `derivedClaimId`; `type='freeform'` premises
270
+ * have no `derivedClaimId` (or it is null/undefined).
271
+ *
272
+ * `TCoreFreeformPremise` and `TCoreDerivationPremise` are both
273
+ * `additionalProperties: true` in their TypeBox schemas, so a freeform
274
+ * premise CAN carry a stray `derivedClaimId` field at runtime even
275
+ * though the TS shape doesn't surface it. We use the `in` operator and
276
+ * a narrow shape cast to read the field as `unknown` rather than the
277
+ * earlier `as unknown` double-cast.
278
+ */
279
+ export function validateS6(ctx) {
280
+ const violations = [];
281
+ for (const p of ctx.premises) {
282
+ if (p.type === "derivation") {
283
+ if (p.derivedClaimId === null ||
284
+ p.derivedClaimId === undefined ||
285
+ p.derivedClaimId === "") {
286
+ violations.push({
287
+ tier: "structural",
288
+ code: "S-6",
289
+ message: `derivation premise ${p.id} has missing derivedClaimId`,
290
+ argumentId: ctx.argument.id,
291
+ premiseId: p.id,
292
+ });
293
+ }
294
+ continue;
295
+ }
296
+ // Freeform branch. Check for a stray derivedClaimId via the
297
+ // additionalProperties extension slot.
298
+ if (!("derivedClaimId" in p))
299
+ continue;
300
+ const stray = p.derivedClaimId;
301
+ if (stray !== null && stray !== undefined && stray !== "") {
302
+ violations.push({
303
+ tier: "structural",
304
+ code: "S-6",
305
+ message: `freeform premise ${p.id} has non-null derivedClaimId (${typeof stray === "string" ? stray : typeof stray})`,
306
+ argumentId: ctx.argument.id,
307
+ premiseId: p.id,
308
+ });
309
+ }
310
+ }
311
+ return violations;
312
+ }
313
+ /**
314
+ * S-7 — Claim type immutability. Creation-time invariant enforced by
315
+ * `ClaimLibrary.update()` via the engine-error code `CLAIM_TYPE_IMMUTABLE`.
316
+ * The AST-level validator is intentionally a no-op; callers cannot
317
+ * observe a type-mutation event from a static argument snapshot.
318
+ */
319
+ export function validateS7(_ctx) {
320
+ return [];
321
+ }
322
+ /**
323
+ * Build a Map<parentId, children-sorted-by-position> view of the
324
+ * expression tree. Internal helper for the arity/position validators.
325
+ */
326
+ function childrenByParent(expressions) {
327
+ const out = new Map();
328
+ for (const e of expressions) {
329
+ if (e.parentId === null)
330
+ continue;
331
+ const list = out.get(e.parentId) ?? [];
332
+ list.push(e);
333
+ out.set(e.parentId, list);
334
+ }
335
+ for (const list of out.values()) {
336
+ list.sort((a, b) => a.position - b.position);
337
+ }
338
+ return out;
339
+ }
340
+ /**
341
+ * S-8 — Binary operator arity + positions. `implies` and `iff` have
342
+ * exactly 2 children, at positions `0` and `1`.
343
+ *
344
+ * One violation per binary expression. When arity is wrong the position
345
+ * check is skipped — position invariants are only meaningful for an
346
+ * exactly-2-child shape; reporting both would noise the violation list
347
+ * with the same structural problem.
348
+ */
349
+ export function validateS8(ctx) {
350
+ const violations = [];
351
+ const children = childrenByParent(ctx.expressions);
352
+ for (const e of ctx.expressions) {
353
+ if (e.type !== "operator")
354
+ continue;
355
+ if (e.operator !== "implies" && e.operator !== "iff")
356
+ continue;
357
+ const kids = children.get(e.id) ?? [];
358
+ if (kids.length !== 2) {
359
+ violations.push({
360
+ tier: "structural",
361
+ code: "S-8",
362
+ message: `${e.operator} expression ${e.id} has ${kids.length} children (expected 2)`,
363
+ argumentId: ctx.argument.id,
364
+ premiseId: e.premiseId,
365
+ expressionId: e.id,
366
+ });
367
+ // Position check only meaningful with exactly 2 children.
368
+ continue;
369
+ }
370
+ if (kids[0].position !== 0 || kids[1].position !== 1) {
371
+ violations.push({
372
+ tier: "structural",
373
+ code: "S-8",
374
+ message: `${e.operator} expression ${e.id} children are at positions ${kids[0].position},${kids[1].position} (expected 0,1)`,
375
+ argumentId: ctx.argument.id,
376
+ premiseId: e.premiseId,
377
+ expressionId: e.id,
378
+ });
379
+ }
380
+ }
381
+ return violations;
382
+ }
383
+ /**
384
+ * S-9 — Sibling position uniqueness. Within a single parent's children,
385
+ * no two siblings share the same `position`.
386
+ */
387
+ export function validateS9(ctx) {
388
+ const violations = [];
389
+ // Group by parentId (including null root group, scoped per premise).
390
+ const groups = new Map();
391
+ for (const e of ctx.expressions) {
392
+ // Root-level siblings: scope by premise (each premise's roots are
393
+ // their own sibling set). We key root groups by `__root__::premiseId`.
394
+ const key = e.parentId === null
395
+ ? `__root__::${e.premiseId}`
396
+ : `parent::${e.parentId}`;
397
+ const list = groups.get(key) ?? [];
398
+ list.push(e);
399
+ groups.set(key, list);
400
+ }
401
+ for (const list of groups.values()) {
402
+ const seenAt = new Map();
403
+ for (const e of list) {
404
+ const existing = seenAt.get(e.position);
405
+ if (existing !== undefined) {
406
+ violations.push({
407
+ tier: "structural",
408
+ code: "S-9",
409
+ message: `siblings ${existing} and ${e.id} share position ${e.position}`,
410
+ argumentId: ctx.argument.id,
411
+ premiseId: e.premiseId,
412
+ expressionId: e.id,
413
+ });
414
+ }
415
+ else {
416
+ seenAt.set(e.position, e.id);
417
+ }
418
+ }
419
+ }
420
+ return violations;
421
+ }
422
+ /**
423
+ * Collect duplicate-ID violations from a collection.
424
+ */
425
+ function duplicateIdsIn(items) {
426
+ const seen = new Set();
427
+ const dups = [];
428
+ for (const item of items) {
429
+ if (seen.has(item.id))
430
+ dups.push(item.id);
431
+ seen.add(item.id);
432
+ }
433
+ return dups;
434
+ }
435
+ /**
436
+ * S-10 — Entity ID uniqueness. Within an argument, premises, expressions,
437
+ * and variables each have unique IDs in their respective collection.
438
+ */
439
+ export function validateS10(ctx) {
440
+ const violations = [];
441
+ for (const dup of duplicateIdsIn(ctx.premises)) {
442
+ violations.push({
443
+ tier: "structural",
444
+ code: "S-10",
445
+ message: `duplicate premise id ${dup}`,
446
+ argumentId: ctx.argument.id,
447
+ premiseId: dup,
448
+ });
449
+ }
450
+ for (const dup of duplicateIdsIn(ctx.expressions)) {
451
+ violations.push({
452
+ tier: "structural",
453
+ code: "S-10",
454
+ message: `duplicate expression id ${dup}`,
455
+ argumentId: ctx.argument.id,
456
+ expressionId: dup,
457
+ });
458
+ }
459
+ for (const dup of duplicateIdsIn(ctx.variables)) {
460
+ violations.push({
461
+ tier: "structural",
462
+ code: "S-10",
463
+ message: `duplicate variable id ${dup}`,
464
+ argumentId: ctx.argument.id,
465
+ variableId: dup,
466
+ });
467
+ }
468
+ return violations;
469
+ }
470
+ /**
471
+ * S-11 — Variable symbol uniqueness. Within a single argument, no two
472
+ * variables share the same `symbol`.
473
+ */
474
+ export function validateS11(ctx) {
475
+ const violations = [];
476
+ const seenAt = new Map();
477
+ for (const v of ctx.variables) {
478
+ const existing = seenAt.get(v.symbol);
479
+ if (existing !== undefined) {
480
+ violations.push({
481
+ tier: "structural",
482
+ code: "S-11",
483
+ message: `variables ${existing} and ${v.id} share symbol '${v.symbol}'`,
484
+ argumentId: ctx.argument.id,
485
+ variableId: v.id,
486
+ });
487
+ }
488
+ else {
489
+ seenAt.set(v.symbol, v.id);
490
+ }
491
+ }
492
+ return violations;
493
+ }
494
+ /**
495
+ * S-12 — NOT unary arity. Every `not` expression has exactly one child.
496
+ */
497
+ export function validateS12(ctx) {
498
+ const violations = [];
499
+ const children = childrenByParent(ctx.expressions);
500
+ for (const e of ctx.expressions) {
501
+ if (e.type !== "operator" || e.operator !== "not")
502
+ continue;
503
+ const count = (children.get(e.id) ?? []).length;
504
+ if (count !== 1) {
505
+ violations.push({
506
+ tier: "structural",
507
+ code: "S-12",
508
+ message: `not expression ${e.id} has ${count} children (expected 1)`,
509
+ argumentId: ctx.argument.id,
510
+ premiseId: e.premiseId,
511
+ expressionId: e.id,
512
+ });
513
+ }
514
+ }
515
+ return violations;
516
+ }
517
+ /**
518
+ * S-13 — Formula unary arity. Every `formula` expression has exactly one
519
+ * child.
520
+ */
521
+ export function validateS13(ctx) {
522
+ const violations = [];
523
+ const children = childrenByParent(ctx.expressions);
524
+ for (const e of ctx.expressions) {
525
+ if (e.type !== "formula")
526
+ continue;
527
+ const count = (children.get(e.id) ?? []).length;
528
+ if (count !== 1) {
529
+ violations.push({
530
+ tier: "structural",
531
+ code: "S-13",
532
+ message: `formula expression ${e.id} has ${count} children (expected 1)`,
533
+ argumentId: ctx.argument.id,
534
+ premiseId: e.premiseId,
535
+ expressionId: e.id,
536
+ });
537
+ }
538
+ }
539
+ return violations;
540
+ }
541
+ /**
542
+ * S-14 — Derivation premise root operator. Every `type='derivation'`
543
+ * premise's root expression is one of `variable`, `implies`, or `iff`.
544
+ * (`iff` is Structurally allowed; D-1 narrows the populated form to
545
+ * `implies` only — Derivable concern.)
546
+ */
547
+ export function validateS14(ctx) {
548
+ const violations = [];
549
+ const expressionsByPremise = new Map();
550
+ for (const e of ctx.expressions) {
551
+ const list = expressionsByPremise.get(e.premiseId) ?? [];
552
+ list.push(e);
553
+ expressionsByPremise.set(e.premiseId, list);
554
+ }
555
+ for (const p of ctx.premises) {
556
+ if (p.type !== "derivation")
557
+ continue;
558
+ const inThisPremise = expressionsByPremise.get(p.id) ?? [];
559
+ const roots = inThisPremise.filter((e) => e.parentId === null);
560
+ // Zero or multiple roots is a different invariant (S-1 / S-10 may
561
+ // catch shape issues); S-14 specifically guards the root operator
562
+ // *kind* when a root exists.
563
+ if (roots.length === 0)
564
+ continue;
565
+ for (const root of roots) {
566
+ const isAllowed = root.type === "variable" ||
567
+ (root.type === "operator" &&
568
+ (root.operator === "implies" || root.operator === "iff"));
569
+ if (!isAllowed) {
570
+ const rootDesc = root.type === "operator" ? root.operator : root.type;
571
+ violations.push({
572
+ tier: "structural",
573
+ code: "S-14",
574
+ message: `derivation premise ${p.id} root operator is '${rootDesc}' (must be variable, implies, or iff)`,
575
+ argumentId: ctx.argument.id,
576
+ premiseId: p.id,
577
+ expressionId: root.id,
578
+ });
579
+ }
580
+ }
581
+ }
582
+ return violations;
583
+ }
584
+ export function validateStructural(ctx) {
585
+ return [
586
+ ...validateS1(ctx),
587
+ ...validateS2(ctx),
588
+ ...validateS3(ctx),
589
+ ...validateS4(ctx),
590
+ ...validateS5(ctx),
591
+ ...validateS6(ctx),
592
+ ...validateS7(ctx),
593
+ ...validateS8(ctx),
594
+ ...validateS9(ctx),
595
+ ...validateS10(ctx),
596
+ ...validateS11(ctx),
597
+ ...validateS12(ctx),
598
+ ...validateS13(ctx),
599
+ ...validateS14(ctx),
600
+ ];
601
+ }
602
+ //# sourceMappingURL=structural.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structural.js","sourceRoot":"","sources":["../../../../src/lib/grammar/validators/structural.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,6 @@ export { ArgumentEngine, defaultGenerateId } from "./core/argument-engine.js";
7
7
  export type { TLogicEngineOptions, TArgumentEngineSnapshot, } from "./core/argument-engine.js";
8
8
  export { PremiseEngine } from "./core/premise-engine.js";
9
9
  export type { TPremiseEngineSnapshot } from "./core/premise-engine.js";
10
- export { ManagedDerivationPremiseEngine } from "./core/managed-derivation-premise-engine.js";
11
- export type { TVariableMaterializer } from "./core/managed-derivation-premise-engine.js";
12
10
  export { validateDerivationStructure } from "./utils/derivation-validation.js";
13
11
  export type * from "./core/interfaces/index.js";
14
12
  export type { TExpressionManagerSnapshot } from "./core/expression-manager.js";
@@ -47,7 +45,10 @@ export type { TExpressionInput, TExpressionWithoutPosition, TExpressionUpdate, }
47
45
  export { POSITION_MIN, POSITION_MAX, POSITION_INITIAL, DEFAULT_POSITION_CONFIG, midpoint, } from "./utils/position.js";
48
46
  export type { TCorePositionConfig } from "./utils/position.js";
49
47
  export * from "./types/reactive.js";
50
- export * from "./types/grammar.js";
48
+ export { GrammarTierSchema, GrammarRuleCodeSchema, ViolationSchema, } from "./grammar/types.js";
49
+ export type { TGrammarTier, TGrammarRuleCode, TViolation, } from "./grammar/types.js";
50
+ export { validate as validateGrammar } from "./grammar/validate.js";
51
+ export type { TValidatorContext } from "./grammar/validators/context.js";
51
52
  export * from "./types/fork.js";
52
53
  export { forkArgumentEngine } from "./core/fork.js";
53
54
  export * from "./parsing/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"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"}