A method for generating verified instructions for execution by a retail search appliance, the retail search appliance including a general-purpose processor and a configurable hardware processing device, the method comprising: translating retail rules and retail offerings into a retail offer domain-specific language, DSL; generating constraints in satisfiability modulo theory, SMT, language based on the translated retail rules and retail offerings and differentiating application functions requiring inductive or recursive processing from those which process over fixed-size or bounded data; generating, based on the DSL version of the retail rules and the retail offerings, a hardware description that is optimized for the configurable hardware processing device of the retail search appliance, wherein the configurable hardware processing device processes over fixed-size data needed to search the retail offerings; translating the hardware description into SMT language; verifying that the SMT version of the hardware description satisfies the previously generated constraints; if the SMT version of the hardware description satisfies the previously generated constraints, generating: software instructions for execution by the general-purpose processor of the retail search appliance, the software instructions including inductive or recursive operations needed to search the retail offerings; and a circuit description for configuration of the hardware processing device of the retail search appliance; and sending the software instructions to the general-purpose processor of the retail search appliance, and the circuit description to the configurable hardware processing device of the retail search appliance. translating retail rules and retail offerings into a retail offer domain-specific language, DSL; generating constraints in satisfiability modulo theory, SMT, language based on the translated retail rules and retail offerings and differentiating application functions requiring inductive or recursive processing from those which process over fixed-size or bounded data; generating, based on the DSL version of the retail rules and the retail offerings, a hardware description that is optimized for the configurable hardware processing device of the retail search appliance, wherein the configurable hardware processing device processes over fixed-size data needed to search the retail offerings; translating the hardware description into SMT language; verifying that the SMT version of the hardware description satisfies the previously generated constraints; if the SMT version of the hardware description satisfies the previously generated constraints, generating: software instructions for execution by the general-purpose processor of the retail search appliance, the software instructions including inductive or recursive operations needed to search the retail offerings; and a circuit description for configuration of the hardware processing device of the retail search appliance; and software instructions for execution by the general-purpose processor of the retail search appliance, the software instructions including inductive or recursive operations needed to search the retail offerings; and a circuit description for configuration of the hardware processing device of the retail search appliance; and sending the software instructions to the general-purpose processor of the retail search appliance, and the circuit description to the configurable hardware processing device of the retail search appliance.