| CPC G06N 10/00 (2019.01) [G06N 5/01 (2023.01)] | 20 Claims | 

| 
               1. A method comprising: 
            obtaining a propagator module of a quantum function of a quantum program, the quantum program comprising multiple quantum functions, the propagator module is programmed using a classical programming language, the propagator module configured to obtain as input a first domain of values for a first circuit parameter and a second domain of values for a second circuit parameter, the first and second circuit parameters defining properties of potential quantum circuits that implement the quantum function, the first and second domains of values defining a parametric space of the first and second circuit parameters, the propagator module configured to output first and second sub-domains of the first and second domains of values, respectively, the first and second sub-domains comprising a first reduction of the parametric space, wherein the output is determined based on a synthesis module of the quantum function, the synthesis module configured to obtain first and second discrete values for the first and second circuit parameters, respectively, and synthesize a matching quantum circuit that implements the quantum function and has the properties that are defined by the first and second discrete values of the first and second circuit parameters; 
                obtaining one or more constraints of the quantum function, the one or more constraints comprising at least one of: a constraint on a minimal number of qubits of the quantum function, and a hardware constraint of a target quantum computer; 
                obtaining an optimization scheme, wherein the optimization scheme is defined over at least one of the first and second circuit parameters; 
                generating a constraint problem based on the propagator module, the one or more constraints, and the optimization scheme; 
                resolving the constraint problem based on a constraint solver, the constraint solver utilizing the one or more constraints and the propagator module to obtain a second reduction of the parametric space of the first and second circuit parameter, the second reduction comprising a reduced space in comparison with the first reduction of the parametric space, wherein the constraint solver is configured to find a resolution within the second reduction of the parametric space according to the optimization scheme, the resolution comprising at least first and second values for the first and second circuit parameter; and 
                synthesizing the quantum function according to the resolution, thereby obtaining a quantum circuit, said synthesizing comprises utilizing the synthesis module to synthesize the quantum function according to the first and second values. 
               |