(opens in new tab)<\/span><\/a> use SPACER to scale up model checking to handle complex, real-world problems. An example is the parallelization of inductive reasoning for safety checking of programs.<\/p>\nInterestingly, Gurfinkel\u2019s work on the Horn clause problem took as its starting point source code developed by Bj\u00f8rner, introducing significant innovations along the way. It began to appear that the approach of Gurfinkel and his students were pursuing would prove more fruitful and earlier this year the decision was taken to merge the two source codes, with SPACER becoming the main engine for constrained Horn clauses in Z3. \u201cIt\u2019s been four years of on-and-off interaction with Nikolaj, getting his insight but working separately on a code base and now getting it integrated in the Microsoft tool,\u201d said Gurfinkel.<\/p>\n
Z3, the system into which SPACER is now integrated, is very widely used in automated verification. Spacer represents new capability in Model Checking \u2013 that is, interaction in program verification. In 2007, the inventors of Model Checking were awarded the Turing Award. SPACER imports ideas from model checking into a theorem proving environment and conversely leverages advances in theorem proving to power model checking. This enables a lot of new applications, it makes it accessible to a lot of different users.<\/p>\n
Gurfinkel emphasized the immense significance accessibility has for users and he and his students having a delivery platform for their work. \u201cThere is a difference between building a prototype as an academic that doesn\u2019t leave your lab and getting what you\u2019ve built integrated into a product like Microsoft Research Z3, a much better engineered and developed system that users can rely on,\u201d said Gurfinkel.<\/p>\n
It echoed the opinions at Microsoft Research; SPACER functionality in Z3 represents significant value, both in providing additional services to its many users but as significantly, providing the technology in a package that is utterly accessible.<\/p>\n
And what would Turing think of SPACER in Z3, were it possible to show it to him? Gurfinkel paused and smiled before answering. \u201cI would hope that he would be impressed.\u201d<\/p>\n
\u201cHe did envision such tools and I think he would be at least very interested in seeing what we can actually do,\u201d he added.<\/p>\n","protected":false},"excerpt":{"rendered":"
\u201cHow can one check a routine in the sense of making sure that it is right?\u201d asked Alan Turing in 1949, foreshadowing the science of program proving decades before it became a formally accepted field of computer science. Program proving, model checking, theorem solving \u2013 this is the terminology occupying the research space of computer […]<\/p>\n","protected":false},"author":37583,"featured_media":507554,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","footnotes":""},"categories":[194488],"tags":[],"research-area":[13546,13560],"msr-region":[],"msr-event-type":[],"msr-locale":[268875],"msr-post-option":[],"msr-impact-theme":[],"msr-promo-type":[],"msr-podcast-series":[],"class_list":["post-507389","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-program-languages-and-software-engineering","msr-research-area-computational-sciences-mathematics","msr-research-area-programming-languages-software-engineering","msr-locale-en_us"],"msr_event_details":{"start":"","end":"","location":""},"podcast_url":"","podcast_episode":"","msr_research_lab":[],"msr_impact_theme":[],"related-publications":[],"related-downloads":[],"related-videos":[],"related-academic-programs":[],"related-groups":[],"related-projects":[825511],"related-events":[],"related-researchers":[{"type":"user_nicename","value":"Nikolaj Bjorner","user_id":33067,"display_name":"Nikolaj Bj\u00f8rner","author_link":"Nikolaj Bj\u00f8rner<\/a>","is_active":false,"last_first":"Bj\u00f8rner, Nikolaj","people_section":0,"alias":"nbjorner"}],"msr_type":"Post","featured_image_thumbnail":"","byline":"Nikolaj Bj\u00f8rner<\/a>","formattedDate":"October 2, 2018","formattedExcerpt":"\u201cHow can one check a routine in the sense of making sure that it is right?\u201d asked Alan Turing in 1949, foreshadowing the science of program proving decades before it became a formally accepted field of computer science. Program proving, model checking, theorem solving \u2013…","locale":{"slug":"en_us","name":"English","native":"","english":"English"},"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/507389"}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/users\/37583"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/comments?post=507389"}],"version-history":[{"count":9,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/507389\/revisions"}],"predecessor-version":[{"id":508961,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/posts\/507389\/revisions\/508961"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media\/507554"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=507389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/categories?post=507389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/tags?post=507389"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=507389"},{"taxonomy":"msr-region","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-region?post=507389"},{"taxonomy":"msr-event-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-event-type?post=507389"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=507389"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=507389"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=507389"},{"taxonomy":"msr-promo-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-promo-type?post=507389"},{"taxonomy":"msr-podcast-series","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-podcast-series?post=507389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}