Interactive program synthesis is an automated technique where a synthesizer and a human user collaborate through an iterative dialogue to generate a correct program from a high-level specification. Unlike fully automatic synthesis, this process involves the user providing refinements, answering queries, or giving feedback on candidate programs, allowing the system to converge on a solution that meets both formal correctness and the user's often-underspecified intent. This paradigm is crucial for complex, real-world tasks where the initial specification is ambiguous or incomplete.
