icfpc-module-synthesizer

Synthesizes instruction-minimal Littleman modules from finite behavior tables using exact BFS and CEGIS.

1|Updated Jul 30, 2026
One-click install
npx skills add https://github.com/d-experts/public-icfpc-2026 --skill icfpc-module-synthesizer-d-experts
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: icfpc-module-synthesizer
Source: https://github.com/d-experts/public-icfpc-2026/tree/main/member-18/.agents/skills/icfpc-module-synthesizer
Command: npx skills add https://github.com/d-experts/public-icfpc-2026 --skill icfpc-module-synthesizer-d-experts

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? It turns a finite set of input/output examples into the shortest possible ICFPC 2026 Littleman one-shot module, removing the need to hand-write and hand-optimize .man instruction sequences. ## Core Features & Use Cases - Exact synthesis: Uses exact BFS and counterexample-guided synthesis (CEGIS) over a behavior table to find the shortest straight-line instruction sequence, with official WASM verification of every case. - Flexible specifications: Accepts JSON specs with examples or complete-table behavior kinds, configurable opcode sets, instruction limits, and state budgets, with CLI overrides for search budgets. - Use Case: Given examples like input -3 mapping to output -6, define a spec, run synthesize-module.mjs with --verify-official, and receive a verified minimal .man module plus a proof of minimality within the stated grammar. ## Quick Start Ask the assistant to synthesize a minimal Littleman module from your input/output examples using icfpc-module-synthesizer and verify it officially.

Frequently Asked Questions about icfpc-module-synthesizer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I synthesize a minimal Littleman module from input/output examples?▼

Create a JSON spec with a behavior table of input/output cases, then run synthesize-module.mjs with --verify-official and --json. The tool searches with exact BFS or CEGIS and writes a verified .man module only if official verification passes.

What is the difference between examples and complete-table behavior specs?▼

Use examples when matching only a few listed cases, with no guarantee for unlisted inputs. Use complete-table only when the enumerated cases are the entire target domain, which strengthens the minimality claim.

When does the synthesis use CEGIS instead of full BFS?▼

With caseStrategy auto, full-case BFS runs for fewer than 16 cases and exact CEGIS for 16 or more. CEGIS starts from up to 4 representative cases and adds counterexamples until the candidate passes the full table.

What does an unknown or bounded-unsat status mean in synthesis results?▼

Unknown means the maxStates budget was reached, not that no solution exists; increase the budget or narrow opcodes with justification. Bounded-unsat means no candidate exists within maxInstructions, so raise the instruction limit and recheck the spec.

Can this skill compress or optimize an existing .man layout?▼

No, it only synthesizes new straight-line one-shot modules from behavior tables. For shrinking an existing .man room or pipe layout, use the icfpc-layout-optimizer skill instead.

Does the synthesis support branches, loops, or multiple rooms?▼

No, the supported ABI is one ordinary room, one worker, one input and one output pipe, and a branch-free straight-line instruction sequence ending in H. Contracts involving branches, loops, or multiple ports are out of scope.