1. A computer-implemented method for implementing a design, comprising: designing the design at a high level of abstraction; refining the design in successively lower levels of abstraction, wherein a higher abstraction version of the design comprises one or more stubs that will be later refined as corresponding detailed design encodings at a lower abstraction version of the design; verifying one or more properties at some or all of the different abstraction levels of the design, wherein a property verified at first abstraction level of the design will remain true at a second abstraction level of the design; and displaying results of verifying the one or more properties on a display device or storing the results in a data structure configured on a computer readable medium for storing the results.