@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.
Files changed (61) hide show
  1. package/dist/EnhancedPBESynthesizer.d.ts +182 -0
  2. package/dist/EnhancedPBESynthesizer.d.ts.map +1 -0
  3. package/dist/EnhancedPBESynthesizer.js +266 -0
  4. package/dist/EnhancedPBESynthesizer.js.map +1 -0
  5. package/dist/analysis/ExampleAnalyzer.d.ts +81 -0
  6. package/dist/analysis/ExampleAnalyzer.d.ts.map +1 -0
  7. package/dist/analysis/ExampleAnalyzer.js +358 -0
  8. package/dist/analysis/ExampleAnalyzer.js.map +1 -0
  9. package/dist/analysis/index.d.ts +9 -0
  10. package/dist/analysis/index.d.ts.map +1 -0
  11. package/dist/analysis/index.js +8 -0
  12. package/dist/analysis/index.js.map +1 -0
  13. package/dist/dsl/DSLExtender.d.ts +79 -0
  14. package/dist/dsl/DSLExtender.d.ts.map +1 -0
  15. package/dist/dsl/DSLExtender.js +312 -0
  16. package/dist/dsl/DSLExtender.js.map +1 -0
  17. package/dist/dsl/index.d.ts +2 -0
  18. package/dist/dsl/index.d.ts.map +1 -1
  19. package/dist/dsl/index.js +2 -0
  20. package/dist/dsl/index.js.map +1 -1
  21. package/dist/explain/ExplanationGenerator.d.ts +91 -0
  22. package/dist/explain/ExplanationGenerator.d.ts.map +1 -0
  23. package/dist/explain/ExplanationGenerator.js +236 -0
  24. package/dist/explain/ExplanationGenerator.js.map +1 -0
  25. package/dist/explain/index.d.ts +7 -0
  26. package/dist/explain/index.d.ts.map +1 -0
  27. package/dist/explain/index.js +7 -0
  28. package/dist/explain/index.js.map +1 -0
  29. package/dist/index.d.ts +14 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +13 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/meta/MetaLearningEngine.d.ts +106 -0
  34. package/dist/meta/MetaLearningEngine.d.ts.map +1 -0
  35. package/dist/meta/MetaLearningEngine.js +196 -0
  36. package/dist/meta/MetaLearningEngine.js.map +1 -0
  37. package/dist/meta/__tests__/MetaLearningEngine.test.d.ts +8 -0
  38. package/dist/meta/__tests__/MetaLearningEngine.test.d.ts.map +1 -0
  39. package/dist/meta/__tests__/MetaLearningEngine.test.js +244 -0
  40. package/dist/meta/__tests__/MetaLearningEngine.test.js.map +1 -0
  41. package/dist/meta/index.d.ts +9 -0
  42. package/dist/meta/index.d.ts.map +1 -0
  43. package/dist/meta/index.js +8 -0
  44. package/dist/meta/index.js.map +1 -0
  45. package/dist/versionspace/EnhancedVersionSpace.d.ts +170 -0
  46. package/dist/versionspace/EnhancedVersionSpace.d.ts.map +1 -0
  47. package/dist/versionspace/EnhancedVersionSpace.js +265 -0
  48. package/dist/versionspace/EnhancedVersionSpace.js.map +1 -0
  49. package/dist/versionspace/index.d.ts +7 -0
  50. package/dist/versionspace/index.d.ts.map +1 -0
  51. package/dist/versionspace/index.js +6 -0
  52. package/dist/versionspace/index.js.map +1 -0
  53. package/dist/witness/EnhancedWitnessEngine.d.ts +108 -0
  54. package/dist/witness/EnhancedWitnessEngine.d.ts.map +1 -0
  55. package/dist/witness/EnhancedWitnessEngine.js +555 -0
  56. package/dist/witness/EnhancedWitnessEngine.js.map +1 -0
  57. package/dist/witness/index.d.ts +6 -0
  58. package/dist/witness/index.d.ts.map +1 -0
  59. package/dist/witness/index.js +6 -0
  60. package/dist/witness/index.js.map +1 -0
  61. package/package.json +1 -1
@@ -0,0 +1,265 @@
1
+ /**
2
+ * EnhancedVersionSpace - Extended Version Space Algebra
3
+ * @module @nahisaho/musubix-synthesis
4
+ * @see TSK-SY-102
5
+ * @see DES-SY-102
6
+ * @see REQ-SYN-002
7
+ *
8
+ * Version Space Algebra拡張による効率的な仮説空間管理
9
+ * - 信頼度ベースのポイント管理
10
+ * - 複数のマージ戦略(intersection, union)
11
+ * - 圧縮・折りたたみ機能
12
+ * - 遅延評価サポート
13
+ */
14
+ // =============================================================================
15
+ // Default Implementation
16
+ // =============================================================================
17
+ /**
18
+ * Default implementation of EnhancedVersionSpace
19
+ */
20
+ class DefaultEnhancedVersionSpace {
21
+ config;
22
+ points;
23
+ mergeCount;
24
+ collapseCount;
25
+ constructor(config = {}) {
26
+ this.config = {
27
+ maxPoints: config.maxPoints ?? 1000,
28
+ enableCompression: config.enableCompression ?? true,
29
+ mergeStrategy: config.mergeStrategy ?? 'intersection',
30
+ enableLazyEvaluation: config.enableLazyEvaluation ?? true,
31
+ };
32
+ this.points = new Map();
33
+ this.mergeCount = 0;
34
+ this.collapseCount = 0;
35
+ }
36
+ add(point) {
37
+ // Check capacity
38
+ if (this.points.size >= this.config.maxPoints) {
39
+ // Evict lowest confidence point
40
+ this.evictLowestConfidence();
41
+ }
42
+ // Add the point
43
+ this.points.set(point.id, { ...point });
44
+ return true;
45
+ }
46
+ get(id) {
47
+ const point = this.points.get(id);
48
+ return point ? { ...point } : undefined;
49
+ }
50
+ remove(id) {
51
+ return this.points.delete(id);
52
+ }
53
+ size() {
54
+ return this.points.size;
55
+ }
56
+ merge(other, strategy) {
57
+ const mergeStrategy = strategy ?? this.config.mergeStrategy;
58
+ const result = new DefaultEnhancedVersionSpace(this.config);
59
+ // Get all programs from both spaces
60
+ const thisPrograms = this.getAllPrograms();
61
+ const otherPrograms = other.getAllPrograms();
62
+ if (mergeStrategy === 'union') {
63
+ // Union: add all points from both spaces
64
+ for (const point of thisPrograms) {
65
+ result.add(point);
66
+ }
67
+ for (const point of otherPrograms) {
68
+ if (!result.get(point.id)) {
69
+ result.add(point);
70
+ }
71
+ }
72
+ }
73
+ else {
74
+ // Intersection: only add points present in both or with matching programs
75
+ const otherProgramSet = new Set(otherPrograms.map((p) => p.program));
76
+ const thisProgramSet = new Set(thisPrograms.map((p) => p.program));
77
+ for (const point of thisPrograms) {
78
+ if (otherProgramSet.has(point.program)) {
79
+ result.add(point);
80
+ }
81
+ }
82
+ for (const point of otherPrograms) {
83
+ if (thisProgramSet.has(point.program) && !result.get(point.id)) {
84
+ result.add(point);
85
+ }
86
+ }
87
+ // If intersection is empty, keep the highest confidence from each
88
+ if (result.size() === 0) {
89
+ const best1 = this.getBestProgram();
90
+ const best2 = other.getBestProgram();
91
+ if (best1)
92
+ result.add(best1);
93
+ if (best2 && !result.get(best2.id))
94
+ result.add(best2);
95
+ }
96
+ }
97
+ this.mergeCount++;
98
+ return result;
99
+ }
100
+ collapse() {
101
+ if (!this.config.enableCompression) {
102
+ return 0;
103
+ }
104
+ // Group by program text
105
+ const groups = new Map();
106
+ for (const point of this.points.values()) {
107
+ const existing = groups.get(point.program);
108
+ if (existing) {
109
+ existing.push(point);
110
+ }
111
+ else {
112
+ groups.set(point.program, [point]);
113
+ }
114
+ }
115
+ // Collapse groups into single points with merged confidence
116
+ let collapsedCount = 0;
117
+ for (const [_program, group] of groups) {
118
+ if (group.length > 1) {
119
+ // Keep the one with highest confidence, merge examples
120
+ group.sort((a, b) => b.confidence - a.confidence);
121
+ const kept = group[0];
122
+ // Merge examples from all points
123
+ const allExamples = [];
124
+ for (const point of group) {
125
+ allExamples.push(...point.examples);
126
+ }
127
+ kept.examples = this.deduplicateExamples(allExamples);
128
+ // Update confidence (weighted average)
129
+ const totalConf = group.reduce((sum, p) => sum + p.confidence, 0);
130
+ kept.confidence = totalConf / group.length;
131
+ // Remove duplicates
132
+ for (let i = 1; i < group.length; i++) {
133
+ this.points.delete(group[i].id);
134
+ collapsedCount++;
135
+ }
136
+ // Update the kept point
137
+ this.points.set(kept.id, kept);
138
+ }
139
+ }
140
+ if (collapsedCount > 0) {
141
+ this.collapseCount++;
142
+ }
143
+ return collapsedCount;
144
+ }
145
+ filterByConfidence(minConfidence) {
146
+ return Array.from(this.points.values()).filter((p) => p.confidence >= minConfidence);
147
+ }
148
+ getBestProgram() {
149
+ if (this.points.size === 0) {
150
+ return undefined;
151
+ }
152
+ let best;
153
+ for (const point of this.points.values()) {
154
+ if (!best || point.confidence > best.confidence) {
155
+ best = point;
156
+ }
157
+ }
158
+ return best ? { ...best } : undefined;
159
+ }
160
+ getAllPrograms() {
161
+ return Array.from(this.points.values())
162
+ .sort((a, b) => b.confidence - a.confidence)
163
+ .map((p) => ({ ...p }));
164
+ }
165
+ getStatistics() {
166
+ const points = Array.from(this.points.values());
167
+ if (points.length === 0) {
168
+ return {
169
+ totalPoints: 0,
170
+ consistentPoints: 0,
171
+ mergeCount: this.mergeCount,
172
+ collapseCount: this.collapseCount,
173
+ averageConfidence: 0,
174
+ maxConfidence: 0,
175
+ minConfidence: 0,
176
+ };
177
+ }
178
+ const consistentPoints = points.filter((p) => p.consistent).length;
179
+ const confidences = points.map((p) => p.confidence);
180
+ const avgConfidence = confidences.reduce((a, b) => a + b, 0) / confidences.length;
181
+ return {
182
+ totalPoints: points.length,
183
+ consistentPoints,
184
+ mergeCount: this.mergeCount,
185
+ collapseCount: this.collapseCount,
186
+ averageConfidence: avgConfidence,
187
+ maxConfidence: Math.max(...confidences),
188
+ minConfidence: Math.min(...confidences),
189
+ };
190
+ }
191
+ clear() {
192
+ this.points.clear();
193
+ }
194
+ clone() {
195
+ const cloned = new DefaultEnhancedVersionSpace(this.config);
196
+ for (const point of this.points.values()) {
197
+ cloned.add({ ...point, examples: [...point.examples] });
198
+ }
199
+ cloned.mergeCount = this.mergeCount;
200
+ cloned.collapseCount = this.collapseCount;
201
+ return cloned;
202
+ }
203
+ toJSON() {
204
+ return JSON.stringify({
205
+ config: this.config,
206
+ points: Array.from(this.points.entries()),
207
+ mergeCount: this.mergeCount,
208
+ collapseCount: this.collapseCount,
209
+ });
210
+ }
211
+ fromJSON(json) {
212
+ const data = JSON.parse(json);
213
+ if (data.points) {
214
+ this.points.clear();
215
+ for (const [id, point] of data.points) {
216
+ this.points.set(id, point);
217
+ }
218
+ }
219
+ if (data.mergeCount !== undefined) {
220
+ this.mergeCount = data.mergeCount;
221
+ }
222
+ if (data.collapseCount !== undefined) {
223
+ this.collapseCount = data.collapseCount;
224
+ }
225
+ }
226
+ // =========================================================================
227
+ // Private Methods
228
+ // =========================================================================
229
+ evictLowestConfidence() {
230
+ let lowest;
231
+ for (const [id, point] of this.points.entries()) {
232
+ if (!lowest || point.confidence < lowest.confidence) {
233
+ lowest = { id, confidence: point.confidence };
234
+ }
235
+ }
236
+ if (lowest) {
237
+ this.points.delete(lowest.id);
238
+ }
239
+ }
240
+ deduplicateExamples(examples) {
241
+ const seen = new Set();
242
+ const result = [];
243
+ for (const ex of examples) {
244
+ const key = JSON.stringify(ex);
245
+ if (!seen.has(key)) {
246
+ seen.add(key);
247
+ result.push(ex);
248
+ }
249
+ }
250
+ return result;
251
+ }
252
+ }
253
+ // =============================================================================
254
+ // Factory Function
255
+ // =============================================================================
256
+ /**
257
+ * Create an EnhancedVersionSpace instance
258
+ * @param config - Optional configuration
259
+ * @returns EnhancedVersionSpace instance
260
+ */
261
+ export function createEnhancedVersionSpace(config = {}) {
262
+ return new DefaultEnhancedVersionSpace(config);
263
+ }
264
+ export { DefaultEnhancedVersionSpace };
265
+ //# sourceMappingURL=EnhancedVersionSpace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnhancedVersionSpace.js","sourceRoot":"","sources":["../../src/versionspace/EnhancedVersionSpace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Version Space module
3
+ * @module @nahisaho/musubix-synthesis/versionspace
4
+ */
5
+ export { createEnhancedVersionSpace, DefaultEnhancedVersionSpace, } from './EnhancedVersionSpace.js';
6
+ export type { EnhancedVersionSpace, VersionSpaceConfig, VersionSpacePoint, VersionSpaceStatistics, MergeStrategy, Example, } from './EnhancedVersionSpace.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/versionspace/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,OAAO,GACR,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Version Space module
3
+ * @module @nahisaho/musubix-synthesis/versionspace
4
+ */
5
+ export { createEnhancedVersionSpace, DefaultEnhancedVersionSpace, } from './EnhancedVersionSpace.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/versionspace/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,108 @@
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 type { IDSL, WitnessFunction } from '../types.js';
21
+ import { WitnessEngine } from '../synthesis/WitnessEngine.js';
22
+ /**
23
+ * Configuration for enhanced witness engine
24
+ */
25
+ export interface EnhancedWitnessConfig {
26
+ /** Enable string manipulation witnesses (default: true) */
27
+ enableStringWitnesses: boolean;
28
+ /** Enable list operation witnesses (default: true) */
29
+ enableListWitnesses: boolean;
30
+ /** Enable arithmetic witnesses (default: true) */
31
+ enableArithmeticWitnesses: boolean;
32
+ /** Enable conditional witnesses (default: true) */
33
+ enableConditionalWitnesses: boolean;
34
+ }
35
+ /**
36
+ * Witness category
37
+ */
38
+ export type WitnessCategory = 'string' | 'list' | 'arithmetic' | 'conditional';
39
+ /**
40
+ * Extended witness function with category
41
+ */
42
+ export interface ExtendedWitnessFunction extends WitnessFunction {
43
+ category?: WitnessCategory;
44
+ description?: string;
45
+ }
46
+ /**
47
+ * Witness list item
48
+ */
49
+ export interface WitnessListItem {
50
+ operator: string;
51
+ category: WitnessCategory | 'custom';
52
+ description?: string;
53
+ }
54
+ /**
55
+ * Built-in witness functions (20+ total)
56
+ */
57
+ export declare const BUILTIN_WITNESSES: ExtendedWitnessFunction[];
58
+ /**
59
+ * Enhanced Witness Engine with built-in witnesses
60
+ */
61
+ export declare class EnhancedWitnessEngine extends WitnessEngine {
62
+ private readonly config;
63
+ private readonly customWitnesses;
64
+ private readonly witnessCategories;
65
+ constructor(dsl: IDSL, config?: Partial<EnhancedWitnessConfig>);
66
+ /**
67
+ * Register all built-in witnesses based on config
68
+ */
69
+ private registerBuiltinWitnesses;
70
+ /**
71
+ * Check if witness should be registered based on config
72
+ */
73
+ private shouldRegisterWitness;
74
+ /**
75
+ * Register a custom witness function
76
+ */
77
+ registerWitness(witness: WitnessFunction): void;
78
+ /**
79
+ * Get total count of registered witnesses
80
+ */
81
+ getWitnessCount(): number;
82
+ /**
83
+ * Get witnesses by category
84
+ */
85
+ getWitnessesByCategory(category: WitnessCategory | 'custom'): WitnessFunction[];
86
+ /**
87
+ * List all registered witnesses
88
+ */
89
+ listWitnesses(): WitnessListItem[];
90
+ /**
91
+ * Serialize engine state to JSON
92
+ */
93
+ toJSON(): string;
94
+ /**
95
+ * Restore engine state from JSON
96
+ * Note: Only restores configuration, not actual witness function implementations
97
+ */
98
+ fromJSON(_json: string): void;
99
+ }
100
+ /**
101
+ * Create an EnhancedWitnessEngine instance
102
+ *
103
+ * @param dsl - The DSL to use for synthesis
104
+ * @param config - Optional configuration
105
+ * @returns EnhancedWitnessEngine instance
106
+ */
107
+ export declare function createEnhancedWitnessEngine(dsl: IDSL, config?: Partial<EnhancedWitnessConfig>): EnhancedWitnessEngine;
108
+ //# sourceMappingURL=EnhancedWitnessEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnhancedWitnessEngine.d.ts","sourceRoot":"","sources":["../../src/witness/EnhancedWitnessEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,IAAI,EAEJ,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAM9D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sDAAsD;IACtD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kDAAkD;IAClD,yBAAyB,EAAE,OAAO,CAAC;IACnC,mDAAmD;IACnD,0BAA0B,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,eAAe,GAAG,QAAQ,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6BD;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,uBAAuB,EAsXtD,CAAC;AAMF;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;IACjE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsD;gBAE5E,GAAG,EAAE,IAAI,EAAE,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAMlE;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAe7B;;OAEG;IACM,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAexD;;OAEG;IACH,eAAe,IAAI,MAAM;IAYzB;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ,GAAG,eAAe,EAAE;IAgB/E;;OAEG;IACH,aAAa,IAAI,eAAe,EAAE;IAwBlC;;OAEG;IACH,MAAM,IAAI,MAAM;IAYhB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAI9B;AAMD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,IAAI,EACT,MAAM,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC1C,qBAAqB,CAEvB"}