@nahisaho/musubix-synthesis 2.1.0 → 2.2.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/dist/EnhancedPBESynthesizer.d.ts +182 -0
- package/dist/EnhancedPBESynthesizer.d.ts.map +1 -0
- package/dist/EnhancedPBESynthesizer.js +266 -0
- package/dist/EnhancedPBESynthesizer.js.map +1 -0
- package/dist/analysis/ExampleAnalyzer.d.ts +81 -0
- package/dist/analysis/ExampleAnalyzer.d.ts.map +1 -0
- package/dist/analysis/ExampleAnalyzer.js +358 -0
- package/dist/analysis/ExampleAnalyzer.js.map +1 -0
- package/dist/analysis/index.d.ts +9 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/analysis/index.js +8 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/dsl/DSLExtender.d.ts +79 -0
- package/dist/dsl/DSLExtender.d.ts.map +1 -0
- package/dist/dsl/DSLExtender.js +312 -0
- package/dist/dsl/DSLExtender.js.map +1 -0
- package/dist/dsl/index.d.ts +2 -0
- package/dist/dsl/index.d.ts.map +1 -1
- package/dist/dsl/index.js +2 -0
- package/dist/dsl/index.js.map +1 -1
- package/dist/explain/ExplanationGenerator.d.ts +91 -0
- package/dist/explain/ExplanationGenerator.d.ts.map +1 -0
- package/dist/explain/ExplanationGenerator.js +236 -0
- package/dist/explain/ExplanationGenerator.js.map +1 -0
- package/dist/explain/index.d.ts +7 -0
- package/dist/explain/index.d.ts.map +1 -0
- package/dist/explain/index.js +7 -0
- package/dist/explain/index.js.map +1 -0
- package/dist/index.d.ts +14 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/meta/MetaLearningEngine.d.ts +106 -0
- package/dist/meta/MetaLearningEngine.d.ts.map +1 -0
- package/dist/meta/MetaLearningEngine.js +196 -0
- package/dist/meta/MetaLearningEngine.js.map +1 -0
- package/dist/meta/__tests__/MetaLearningEngine.test.d.ts +8 -0
- package/dist/meta/__tests__/MetaLearningEngine.test.d.ts.map +1 -0
- package/dist/meta/__tests__/MetaLearningEngine.test.js +244 -0
- package/dist/meta/__tests__/MetaLearningEngine.test.js.map +1 -0
- package/dist/meta/index.d.ts +9 -0
- package/dist/meta/index.d.ts.map +1 -0
- package/dist/meta/index.js +8 -0
- package/dist/meta/index.js.map +1 -0
- package/dist/versionspace/EnhancedVersionSpace.d.ts +170 -0
- package/dist/versionspace/EnhancedVersionSpace.d.ts.map +1 -0
- package/dist/versionspace/EnhancedVersionSpace.js +265 -0
- package/dist/versionspace/EnhancedVersionSpace.js.map +1 -0
- package/dist/versionspace/index.d.ts +7 -0
- package/dist/versionspace/index.d.ts.map +1 -0
- package/dist/versionspace/index.js +6 -0
- package/dist/versionspace/index.js.map +1 -0
- package/dist/witness/EnhancedWitnessEngine.d.ts +108 -0
- package/dist/witness/EnhancedWitnessEngine.d.ts.map +1 -0
- package/dist/witness/EnhancedWitnessEngine.js +555 -0
- package/dist/witness/EnhancedWitnessEngine.js.map +1 -0
- package/dist/witness/index.d.ts +6 -0
- package/dist/witness/index.d.ts.map +1 -0
- package/dist/witness/index.js +6 -0
- package/dist/witness/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,555 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EnhancedWitnessEngine - Extended Witness Function Engine
|
|
3
|
+
*
|
|
4
|
+
* Extends the base WitnessEngine with 20+ built-in witness functions
|
|
5
|
+
* for string, list, arithmetic, and conditional operations.
|
|
6
|
+
*
|
|
7
|
+
* @module @nahisaho/musubix-synthesis
|
|
8
|
+
* @see TSK-SY-101
|
|
9
|
+
* @see DES-SY-101
|
|
10
|
+
* @see REQ-SY-101
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { createEnhancedWitnessEngine } from './EnhancedWitnessEngine.js';
|
|
15
|
+
*
|
|
16
|
+
* const engine = createEnhancedWitnessEngine(dsl);
|
|
17
|
+
* const decomp = engine.decompose(spec, 'concat');
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
import { WitnessEngine } from '../synthesis/WitnessEngine.js';
|
|
21
|
+
// =============================================================================
|
|
22
|
+
// Default Configuration
|
|
23
|
+
// =============================================================================
|
|
24
|
+
const DEFAULT_CONFIG = {
|
|
25
|
+
enableStringWitnesses: true,
|
|
26
|
+
enableListWitnesses: true,
|
|
27
|
+
enableArithmeticWitnesses: true,
|
|
28
|
+
enableConditionalWitnesses: true,
|
|
29
|
+
};
|
|
30
|
+
// =============================================================================
|
|
31
|
+
// Built-in Witnesses
|
|
32
|
+
// =============================================================================
|
|
33
|
+
/**
|
|
34
|
+
* Built-in witness functions (20+ total)
|
|
35
|
+
*/
|
|
36
|
+
export const BUILTIN_WITNESSES = [
|
|
37
|
+
// =========================================================================
|
|
38
|
+
// String Witnesses (8)
|
|
39
|
+
// =========================================================================
|
|
40
|
+
{
|
|
41
|
+
operator: 'concat',
|
|
42
|
+
argIndex: 0,
|
|
43
|
+
category: 'string',
|
|
44
|
+
description: 'Concatenation witness - decomposes output into prefix/suffix',
|
|
45
|
+
witness: (spec) => {
|
|
46
|
+
const results = [];
|
|
47
|
+
for (const ex of spec.examples) {
|
|
48
|
+
if (typeof ex.output === 'string') {
|
|
49
|
+
const output = ex.output;
|
|
50
|
+
// Try different split points
|
|
51
|
+
for (let i = 0; i <= output.length; i++) {
|
|
52
|
+
const prefix = output.substring(0, i);
|
|
53
|
+
const suffix = output.substring(i);
|
|
54
|
+
results.push({ examples: [{ input: ex.input, output: prefix }] });
|
|
55
|
+
results.push({ examples: [{ input: ex.input, output: suffix }] });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return results;
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
operator: 'substring',
|
|
64
|
+
argIndex: 0,
|
|
65
|
+
category: 'string',
|
|
66
|
+
description: 'Substring witness - finds source string and indices',
|
|
67
|
+
witness: (spec) => {
|
|
68
|
+
const results = [];
|
|
69
|
+
for (const ex of spec.examples) {
|
|
70
|
+
if (typeof ex.output === 'string' && Array.isArray(ex.input)) {
|
|
71
|
+
const input = ex.input[0];
|
|
72
|
+
if (typeof input === 'string' && input.includes(ex.output)) {
|
|
73
|
+
const start = input.indexOf(ex.output);
|
|
74
|
+
const end = start + ex.output.length;
|
|
75
|
+
results.push({ examples: [{ input: ex.input, output: input }] });
|
|
76
|
+
results.push({ examples: [{ input: ex.input, output: start }] });
|
|
77
|
+
results.push({ examples: [{ input: ex.input, output: end }] });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return results;
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
operator: 'toUpperCase',
|
|
86
|
+
argIndex: 0,
|
|
87
|
+
category: 'string',
|
|
88
|
+
description: 'ToUpperCase witness - finds lowercase source',
|
|
89
|
+
witness: (spec) => {
|
|
90
|
+
const results = [];
|
|
91
|
+
for (const ex of spec.examples) {
|
|
92
|
+
if (typeof ex.output === 'string') {
|
|
93
|
+
results.push({ examples: [{ input: ex.input, output: ex.output.toLowerCase() }] });
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return results;
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
operator: 'toLowerCase',
|
|
101
|
+
argIndex: 0,
|
|
102
|
+
category: 'string',
|
|
103
|
+
description: 'ToLowerCase witness - finds uppercase source',
|
|
104
|
+
witness: (spec) => {
|
|
105
|
+
const results = [];
|
|
106
|
+
for (const ex of spec.examples) {
|
|
107
|
+
if (typeof ex.output === 'string') {
|
|
108
|
+
results.push({ examples: [{ input: ex.input, output: ex.output.toUpperCase() }] });
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return results;
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
operator: 'replace',
|
|
116
|
+
argIndex: 0,
|
|
117
|
+
category: 'string',
|
|
118
|
+
description: 'Replace witness - finds original string and replacement',
|
|
119
|
+
witness: (spec) => {
|
|
120
|
+
const results = [];
|
|
121
|
+
for (const ex of spec.examples) {
|
|
122
|
+
if (typeof ex.output === 'string') {
|
|
123
|
+
results.push({ examples: [{ input: ex.input, output: ex.output }] });
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return results;
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
operator: 'trim',
|
|
131
|
+
argIndex: 0,
|
|
132
|
+
category: 'string',
|
|
133
|
+
description: 'Trim witness - finds string with whitespace',
|
|
134
|
+
witness: (spec) => {
|
|
135
|
+
const results = [];
|
|
136
|
+
for (const ex of spec.examples) {
|
|
137
|
+
if (typeof ex.output === 'string') {
|
|
138
|
+
results.push({ examples: [{ input: ex.input, output: ' ' + ex.output + ' ' }] });
|
|
139
|
+
results.push({ examples: [{ input: ex.input, output: ex.output }] });
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return results;
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
operator: 'split',
|
|
147
|
+
argIndex: 0,
|
|
148
|
+
category: 'string',
|
|
149
|
+
description: 'Split witness - finds original string and delimiter',
|
|
150
|
+
witness: (spec) => {
|
|
151
|
+
const results = [];
|
|
152
|
+
for (const ex of spec.examples) {
|
|
153
|
+
if (Array.isArray(ex.output)) {
|
|
154
|
+
const joined = ex.output.join('');
|
|
155
|
+
results.push({ examples: [{ input: ex.input, output: joined }] });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return results;
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
operator: 'length',
|
|
163
|
+
argIndex: 0,
|
|
164
|
+
category: 'string',
|
|
165
|
+
description: 'Length witness - finds string of given length',
|
|
166
|
+
witness: (spec) => {
|
|
167
|
+
const results = [];
|
|
168
|
+
for (const ex of spec.examples) {
|
|
169
|
+
if (typeof ex.output === 'number') {
|
|
170
|
+
results.push({ examples: [{ input: ex.input, output: 'x'.repeat(ex.output) }] });
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return results;
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
// =========================================================================
|
|
177
|
+
// List Witnesses (6)
|
|
178
|
+
// =========================================================================
|
|
179
|
+
{
|
|
180
|
+
operator: 'map',
|
|
181
|
+
argIndex: 0,
|
|
182
|
+
category: 'list',
|
|
183
|
+
description: 'Map witness - infers transformation function',
|
|
184
|
+
witness: (spec) => {
|
|
185
|
+
const results = [];
|
|
186
|
+
for (const ex of spec.examples) {
|
|
187
|
+
if (Array.isArray(ex.input) && Array.isArray(ex.output)) {
|
|
188
|
+
const inputArr = ex.input[0];
|
|
189
|
+
const outputArr = ex.output;
|
|
190
|
+
// Infer element-wise transformation
|
|
191
|
+
if (inputArr.length === outputArr.length) {
|
|
192
|
+
for (let i = 0; i < inputArr.length; i++) {
|
|
193
|
+
results.push({
|
|
194
|
+
examples: [{ input: inputArr[i], output: outputArr[i] }],
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return results;
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
operator: 'filter',
|
|
205
|
+
argIndex: 0,
|
|
206
|
+
category: 'list',
|
|
207
|
+
description: 'Filter witness - infers predicate function',
|
|
208
|
+
witness: (spec) => {
|
|
209
|
+
const results = [];
|
|
210
|
+
for (const ex of spec.examples) {
|
|
211
|
+
if (Array.isArray(ex.input) && Array.isArray(ex.output)) {
|
|
212
|
+
const inputArr = ex.input[0];
|
|
213
|
+
const outputArr = ex.output;
|
|
214
|
+
// Create specs for included/excluded elements
|
|
215
|
+
for (const item of inputArr) {
|
|
216
|
+
const included = outputArr.includes(item);
|
|
217
|
+
results.push({
|
|
218
|
+
examples: [{ input: item, output: included }],
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return results;
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
operator: 'reduce',
|
|
228
|
+
argIndex: 0,
|
|
229
|
+
category: 'list',
|
|
230
|
+
description: 'Reduce witness - infers reducer function and initial value',
|
|
231
|
+
witness: (spec) => {
|
|
232
|
+
const results = [];
|
|
233
|
+
for (const ex of spec.examples) {
|
|
234
|
+
if (Array.isArray(ex.input)) {
|
|
235
|
+
results.push({ examples: [{ input: ex.input, output: ex.output }] });
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return results;
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
operator: 'head',
|
|
243
|
+
argIndex: 0,
|
|
244
|
+
category: 'list',
|
|
245
|
+
description: 'Head witness - finds list with given first element',
|
|
246
|
+
witness: (spec) => {
|
|
247
|
+
const results = [];
|
|
248
|
+
for (const ex of spec.examples) {
|
|
249
|
+
results.push({ examples: [{ input: ex.input, output: [ex.output] }] });
|
|
250
|
+
}
|
|
251
|
+
return results;
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
operator: 'tail',
|
|
256
|
+
argIndex: 0,
|
|
257
|
+
category: 'list',
|
|
258
|
+
description: 'Tail witness - finds list with given rest',
|
|
259
|
+
witness: (spec) => {
|
|
260
|
+
const results = [];
|
|
261
|
+
for (const ex of spec.examples) {
|
|
262
|
+
if (Array.isArray(ex.output)) {
|
|
263
|
+
results.push({ examples: [{ input: ex.input, output: [null, ...ex.output] }] });
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return results;
|
|
267
|
+
},
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
operator: 'cons',
|
|
271
|
+
argIndex: 0,
|
|
272
|
+
category: 'list',
|
|
273
|
+
description: 'Cons witness - finds head and tail',
|
|
274
|
+
witness: (spec) => {
|
|
275
|
+
const results = [];
|
|
276
|
+
for (const ex of spec.examples) {
|
|
277
|
+
if (Array.isArray(ex.output) && ex.output.length > 0) {
|
|
278
|
+
results.push({ examples: [{ input: ex.input, output: ex.output[0] }] });
|
|
279
|
+
results.push({ examples: [{ input: ex.input, output: ex.output.slice(1) }] });
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return results;
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
// =========================================================================
|
|
286
|
+
// Arithmetic Witnesses (4)
|
|
287
|
+
// =========================================================================
|
|
288
|
+
{
|
|
289
|
+
operator: 'add',
|
|
290
|
+
argIndex: 0,
|
|
291
|
+
category: 'arithmetic',
|
|
292
|
+
description: 'Addition witness - decomposes sum into addends',
|
|
293
|
+
witness: (spec) => {
|
|
294
|
+
const results = [];
|
|
295
|
+
for (const ex of spec.examples) {
|
|
296
|
+
if (typeof ex.output === 'number') {
|
|
297
|
+
const sum = ex.output;
|
|
298
|
+
// Try different decompositions
|
|
299
|
+
for (let i = 0; i <= sum; i++) {
|
|
300
|
+
results.push({ examples: [{ input: ex.input, output: i }] });
|
|
301
|
+
results.push({ examples: [{ input: ex.input, output: sum - i }] });
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
return results;
|
|
306
|
+
},
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
operator: 'subtract',
|
|
310
|
+
argIndex: 0,
|
|
311
|
+
category: 'arithmetic',
|
|
312
|
+
description: 'Subtraction witness - finds minuend and subtrahend',
|
|
313
|
+
witness: (spec) => {
|
|
314
|
+
const results = [];
|
|
315
|
+
for (const ex of spec.examples) {
|
|
316
|
+
if (typeof ex.output === 'number' && Array.isArray(ex.input)) {
|
|
317
|
+
const [a, b] = ex.input;
|
|
318
|
+
if (typeof a === 'number' && typeof b === 'number') {
|
|
319
|
+
results.push({ examples: [{ input: ex.input, output: a }] });
|
|
320
|
+
results.push({ examples: [{ input: ex.input, output: b }] });
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return results;
|
|
325
|
+
},
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
operator: 'multiply',
|
|
329
|
+
argIndex: 0,
|
|
330
|
+
category: 'arithmetic',
|
|
331
|
+
description: 'Multiplication witness - decomposes product into factors',
|
|
332
|
+
witness: (spec) => {
|
|
333
|
+
const results = [];
|
|
334
|
+
for (const ex of spec.examples) {
|
|
335
|
+
if (typeof ex.output === 'number') {
|
|
336
|
+
const product = ex.output;
|
|
337
|
+
// Find factor pairs
|
|
338
|
+
for (let i = 1; i <= Math.sqrt(Math.abs(product)) + 1; i++) {
|
|
339
|
+
if (product % i === 0) {
|
|
340
|
+
results.push({ examples: [{ input: ex.input, output: i }] });
|
|
341
|
+
results.push({ examples: [{ input: ex.input, output: product / i }] });
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
return results;
|
|
347
|
+
},
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
operator: 'divide',
|
|
351
|
+
argIndex: 0,
|
|
352
|
+
category: 'arithmetic',
|
|
353
|
+
description: 'Division witness - finds dividend and divisor',
|
|
354
|
+
witness: (spec) => {
|
|
355
|
+
const results = [];
|
|
356
|
+
for (const ex of spec.examples) {
|
|
357
|
+
if (typeof ex.output === 'number' && Array.isArray(ex.input)) {
|
|
358
|
+
const [a, b] = ex.input;
|
|
359
|
+
if (typeof a === 'number' && typeof b === 'number') {
|
|
360
|
+
results.push({ examples: [{ input: ex.input, output: a }] });
|
|
361
|
+
results.push({ examples: [{ input: ex.input, output: b }] });
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
return results;
|
|
366
|
+
},
|
|
367
|
+
},
|
|
368
|
+
// =========================================================================
|
|
369
|
+
// Conditional Witnesses (2)
|
|
370
|
+
// =========================================================================
|
|
371
|
+
{
|
|
372
|
+
operator: 'ite',
|
|
373
|
+
argIndex: 0,
|
|
374
|
+
category: 'conditional',
|
|
375
|
+
description: 'If-then-else witness - infers condition and branches',
|
|
376
|
+
witness: (spec) => {
|
|
377
|
+
const results = [];
|
|
378
|
+
for (const ex of spec.examples) {
|
|
379
|
+
if (Array.isArray(ex.input) && ex.input.length >= 3) {
|
|
380
|
+
const [cond, thenVal, elseVal] = ex.input;
|
|
381
|
+
// Condition spec
|
|
382
|
+
results.push({ examples: [{ input: ex.input, output: cond }] });
|
|
383
|
+
// Then branch spec
|
|
384
|
+
results.push({ examples: [{ input: ex.input, output: thenVal }] });
|
|
385
|
+
// Else branch spec
|
|
386
|
+
results.push({ examples: [{ input: ex.input, output: elseVal }] });
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
return results;
|
|
390
|
+
},
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
operator: 'switch',
|
|
394
|
+
argIndex: 0,
|
|
395
|
+
category: 'conditional',
|
|
396
|
+
description: 'Switch witness - infers selector and cases',
|
|
397
|
+
witness: (spec) => {
|
|
398
|
+
const results = [];
|
|
399
|
+
for (const ex of spec.examples) {
|
|
400
|
+
results.push({ examples: [{ input: ex.input, output: ex.output }] });
|
|
401
|
+
}
|
|
402
|
+
return results;
|
|
403
|
+
},
|
|
404
|
+
},
|
|
405
|
+
];
|
|
406
|
+
// =============================================================================
|
|
407
|
+
// Implementation
|
|
408
|
+
// =============================================================================
|
|
409
|
+
/**
|
|
410
|
+
* Enhanced Witness Engine with built-in witnesses
|
|
411
|
+
*/
|
|
412
|
+
export class EnhancedWitnessEngine extends WitnessEngine {
|
|
413
|
+
config;
|
|
414
|
+
customWitnesses = [];
|
|
415
|
+
witnessCategories = new Map();
|
|
416
|
+
constructor(dsl, config = {}) {
|
|
417
|
+
super(dsl);
|
|
418
|
+
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
419
|
+
this.registerBuiltinWitnesses();
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Register all built-in witnesses based on config
|
|
423
|
+
*/
|
|
424
|
+
registerBuiltinWitnesses() {
|
|
425
|
+
for (const witness of BUILTIN_WITNESSES) {
|
|
426
|
+
if (this.shouldRegisterWitness(witness)) {
|
|
427
|
+
this.registerWitness(witness);
|
|
428
|
+
if (witness.category) {
|
|
429
|
+
this.witnessCategories.set(witness.operator, witness.category);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Check if witness should be registered based on config
|
|
436
|
+
*/
|
|
437
|
+
shouldRegisterWitness(witness) {
|
|
438
|
+
switch (witness.category) {
|
|
439
|
+
case 'string':
|
|
440
|
+
return this.config.enableStringWitnesses;
|
|
441
|
+
case 'list':
|
|
442
|
+
return this.config.enableListWitnesses;
|
|
443
|
+
case 'arithmetic':
|
|
444
|
+
return this.config.enableArithmeticWitnesses;
|
|
445
|
+
case 'conditional':
|
|
446
|
+
return this.config.enableConditionalWitnesses;
|
|
447
|
+
default:
|
|
448
|
+
return true;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Register a custom witness function
|
|
453
|
+
*/
|
|
454
|
+
registerWitness(witness) {
|
|
455
|
+
super.registerWitness(witness);
|
|
456
|
+
const extended = witness;
|
|
457
|
+
if (!BUILTIN_WITNESSES.includes(extended)) {
|
|
458
|
+
this.customWitnesses.push(extended);
|
|
459
|
+
}
|
|
460
|
+
if (extended.category) {
|
|
461
|
+
this.witnessCategories.set(witness.operator, extended.category);
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
this.witnessCategories.set(witness.operator, 'custom');
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Get total count of registered witnesses
|
|
469
|
+
*/
|
|
470
|
+
getWitnessCount() {
|
|
471
|
+
let count = 0;
|
|
472
|
+
// Count across all operators
|
|
473
|
+
for (const witness of BUILTIN_WITNESSES) {
|
|
474
|
+
if (this.shouldRegisterWitness(witness)) {
|
|
475
|
+
count++;
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
count += this.customWitnesses.length;
|
|
479
|
+
return count;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Get witnesses by category
|
|
483
|
+
*/
|
|
484
|
+
getWitnessesByCategory(category) {
|
|
485
|
+
const results = [];
|
|
486
|
+
for (const witness of BUILTIN_WITNESSES) {
|
|
487
|
+
if (witness.category === category && this.shouldRegisterWitness(witness)) {
|
|
488
|
+
results.push(witness);
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
if (category === 'custom') {
|
|
492
|
+
results.push(...this.customWitnesses);
|
|
493
|
+
}
|
|
494
|
+
return results;
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* List all registered witnesses
|
|
498
|
+
*/
|
|
499
|
+
listWitnesses() {
|
|
500
|
+
const items = [];
|
|
501
|
+
for (const witness of BUILTIN_WITNESSES) {
|
|
502
|
+
if (this.shouldRegisterWitness(witness)) {
|
|
503
|
+
items.push({
|
|
504
|
+
operator: witness.operator,
|
|
505
|
+
category: witness.category ?? 'custom',
|
|
506
|
+
description: witness.description,
|
|
507
|
+
});
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
for (const witness of this.customWitnesses) {
|
|
511
|
+
items.push({
|
|
512
|
+
operator: witness.operator,
|
|
513
|
+
category: witness.category ?? 'custom',
|
|
514
|
+
description: witness.description,
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
return items;
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Serialize engine state to JSON
|
|
521
|
+
*/
|
|
522
|
+
toJSON() {
|
|
523
|
+
const state = {
|
|
524
|
+
version: '1.0.0',
|
|
525
|
+
config: this.config,
|
|
526
|
+
customWitnesses: this.customWitnesses.map(w => ({
|
|
527
|
+
operator: w.operator,
|
|
528
|
+
category: w.category ?? 'custom',
|
|
529
|
+
})),
|
|
530
|
+
};
|
|
531
|
+
return JSON.stringify(state, null, 2);
|
|
532
|
+
}
|
|
533
|
+
/**
|
|
534
|
+
* Restore engine state from JSON
|
|
535
|
+
* Note: Only restores configuration, not actual witness function implementations
|
|
536
|
+
*/
|
|
537
|
+
fromJSON(_json) {
|
|
538
|
+
// Parse but don't fully restore - witness functions can't be serialized
|
|
539
|
+
// This method exists for API compatibility
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
// =============================================================================
|
|
543
|
+
// Factory Function
|
|
544
|
+
// =============================================================================
|
|
545
|
+
/**
|
|
546
|
+
* Create an EnhancedWitnessEngine instance
|
|
547
|
+
*
|
|
548
|
+
* @param dsl - The DSL to use for synthesis
|
|
549
|
+
* @param config - Optional configuration
|
|
550
|
+
* @returns EnhancedWitnessEngine instance
|
|
551
|
+
*/
|
|
552
|
+
export function createEnhancedWitnessEngine(dsl, config = {}) {
|
|
553
|
+
return new EnhancedWitnessEngine(dsl, config);
|
|
554
|
+
}
|
|
555
|
+
//# sourceMappingURL=EnhancedWitnessEngine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnhancedWitnessEngine.js","sourceRoot":"","sources":["../../src/witness/EnhancedWitnessEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Witness Module Exports
|
|
3
|
+
* @module @nahisaho/musubix-synthesis/witness
|
|
4
|
+
*/
|
|
5
|
+
export { EnhancedWitnessEngine, createEnhancedWitnessEngine, BUILTIN_WITNESSES, type EnhancedWitnessConfig, type WitnessCategory, type ExtendedWitnessFunction, type WitnessListItem, } from './EnhancedWitnessEngine.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/witness/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,GACrB,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/witness/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,GAKlB,MAAM,4BAA4B,CAAC"}
|