{"id":2877,"date":"2018-11-23T13:46:13","date_gmt":"2018-11-23T12:46:13","guid":{"rendered":"https:\/\/www.prover.com\/?p=2877"},"modified":"2025-01-07T15:02:05","modified_gmt":"2025-01-07T14:02:05","slug":"formal-verification-performance-jump","status":"publish","type":"post","link":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/","title":{"rendered":"Formal verification performance jump"},"content":{"rendered":"<p>We are starting to receive customer feedback about our <a href=\"https:\/\/www.prover.com\/software-solutions-rail-control\/psl-prover-sl-ce\/\">model checker PSL<\/a>. Truly exciting reading!<\/p>\n<p><em>\u00a0 \u00a0 \u00a0\u201cOur proof time has decreased by 12 times on average\u201d<\/em><\/p>\n<p>one customer said. The comparison was made with the old model checker Tecla. Another customer reported:<\/p>\n<p><em>\u00a0 \u00a0 \u00a0\u201c7 times faster on average\u201d<\/em><\/p>\n<p>and when they tried our new feature Turbo-threading that utilizes parallel computing, they came back with<\/p>\n<p><em>\u00a0 \u00a0 \u00a0\u201c60-140 times faster!\u201d<\/em><\/p>\n<p>I actually anticipated positive feedback since our own tests had shown big improvements; one problem that used to take 83 days without Turbo-threading took only two days when we enabled Turbo-threading. But to get enthusiastic feedback from customers is really rewarding.<\/p>\n<h3>PSL &#8211; The story<\/h3>\n<p>The story of PSL began in 2015 when we took the decision to implement an entirely new model checker from scratch. Throwing out a working product and starting over from scratch is known as \u201cthe Netscape mistake\u201d, since <a href=\"https:\/\/www.joelonsoftware.com\/2000\/04\/06\/things-you-should-never-do-part-i\/\">Netscape did exactly that<\/a> \u2013 and died. But we took the brave decision to do it, because we saw that making Tecla considerably faster by simple refactoring would be very difficult.<\/p>\n<p>The first step was to reach a state where the new product would be as good as the old one. At that point we could abandon Tecla by offering our customers to convert when necessary. The next step was to add new features and to fine-tune existing ones. Now the fun started. We could watch how the product improved for each addition. Well-known academic strategies such as IC3\/PDR entered, but we also made surprising improvements to the old interpolation strategy, making it better than IC3\/PDR in many cases. Proof logging was made much more efficient, and incremental SAT was added to aid searches for deep counterexamples. With the recent introduction of Turbo-threading we have been able to develop a model checker that is much better than anything we have seen before.<\/p>\n<p>These big improvements have inspired us to take the next performance jump. Being the fastest is not enough when you compete with yourself! And as we know that our customers systems become more and more complex, performance is key!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are starting to receive customer feedback about our model checker PSL. Truly exciting reading! \u00a0 \u00a0 \u00a0\u201cOur proof time  [&#8230;]<\/p>\n","protected":false},"author":17,"featured_media":14931,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[154],"tags":[],"class_list":["post-2877","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-verification-validation"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Formal verification performance jump - Prover - Engineering a Safer World<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Formal verification performance jump - Prover - Engineering a Safer World\" \/>\n<meta property=\"og:description\" content=\"We are starting to receive customer feedback about our model checker PSL. Truly exciting reading! \u00a0 \u00a0 \u00a0\u201cOur proof time [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/\" \/>\n<meta property=\"og:site_name\" content=\"Prover - Engineering a Safer World\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-23T12:46:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-07T14:02:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/04\/Prover-logo-blue.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Jesper Carlstr\u00f6m\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jesper Carlstr\u00f6m\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/\"},\"author\":{\"name\":\"Jesper Carlstr\u00f6m\",\"@id\":\"https:\/\/prover.com\/#\/schema\/person\/d253e765d1d293a31d5709b3ad676cbb\"},\"headline\":\"Formal verification performance jump\",\"datePublished\":\"2018-11-23T12:46:13+00:00\",\"dateModified\":\"2025-01-07T14:02:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/\"},\"wordCount\":350,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/prover.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/04\/Prover-logo-blue.webp\",\"articleSection\":[\"Verification &amp; validation\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/\",\"url\":\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/\",\"name\":\"Formal verification performance jump - Prover - Engineering a Safer World\",\"isPartOf\":{\"@id\":\"https:\/\/prover.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/04\/Prover-logo-blue.webp\",\"datePublished\":\"2018-11-23T12:46:13+00:00\",\"dateModified\":\"2025-01-07T14:02:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#primaryimage\",\"url\":\"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/04\/Prover-logo-blue.webp\",\"contentUrl\":\"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/04\/Prover-logo-blue.webp\",\"width\":1200,\"height\":675,\"caption\":\"Prover\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.prover.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Verification &amp; validation\",\"item\":\"https:\/\/www.prover.com\/categories\/verification-validation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Formal verification performance jump\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/prover.com\/#website\",\"url\":\"https:\/\/prover.com\/\",\"name\":\"Prover - Engineering a Safer World\",\"description\":\"Interlocking Design Automation to meet demand for complex digital train control\",\"publisher\":{\"@id\":\"https:\/\/prover.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/prover.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/prover.com\/#organization\",\"name\":\"Prover - Engineering a Safer World\",\"url\":\"https:\/\/prover.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prover.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/01\/prover-logo.svg\",\"contentUrl\":\"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/01\/prover-logo.svg\",\"width\":222,\"height\":22,\"caption\":\"Prover - Engineering a Safer World\"},\"image\":{\"@id\":\"https:\/\/prover.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/prover.com\/#\/schema\/person\/d253e765d1d293a31d5709b3ad676cbb\",\"name\":\"Jesper Carlstr\u00f6m\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/795397ba739bb6168ebbd77601ef271957d8b95496e47fad1313f40ad8befd64?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/795397ba739bb6168ebbd77601ef271957d8b95496e47fad1313f40ad8befd64?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/795397ba739bb6168ebbd77601ef271957d8b95496e47fad1313f40ad8befd64?s=96&d=mm&r=g\",\"caption\":\"Jesper Carlstr\u00f6m\"},\"url\":\"https:\/\/www.prover.com\/author\/jesper-carlstrom\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Formal verification performance jump - Prover - Engineering a Safer World","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/","og_locale":"en_US","og_type":"article","og_title":"Formal verification performance jump - Prover - Engineering a Safer World","og_description":"We are starting to receive customer feedback about our model checker PSL. Truly exciting reading! \u00a0 \u00a0 \u00a0\u201cOur proof time [...]","og_url":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/","og_site_name":"Prover - Engineering a Safer World","article_published_time":"2018-11-23T12:46:13+00:00","article_modified_time":"2025-01-07T14:02:05+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/04\/Prover-logo-blue.webp","type":"image\/webp"}],"author":"Jesper Carlstr\u00f6m","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jesper Carlstr\u00f6m","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#article","isPartOf":{"@id":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/"},"author":{"name":"Jesper Carlstr\u00f6m","@id":"https:\/\/prover.com\/#\/schema\/person\/d253e765d1d293a31d5709b3ad676cbb"},"headline":"Formal verification performance jump","datePublished":"2018-11-23T12:46:13+00:00","dateModified":"2025-01-07T14:02:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/"},"wordCount":350,"commentCount":0,"publisher":{"@id":"https:\/\/prover.com\/#organization"},"image":{"@id":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#primaryimage"},"thumbnailUrl":"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/04\/Prover-logo-blue.webp","articleSection":["Verification &amp; validation"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/","url":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/","name":"Formal verification performance jump - Prover - Engineering a Safer World","isPartOf":{"@id":"https:\/\/prover.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#primaryimage"},"image":{"@id":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#primaryimage"},"thumbnailUrl":"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/04\/Prover-logo-blue.webp","datePublished":"2018-11-23T12:46:13+00:00","dateModified":"2025-01-07T14:02:05+00:00","breadcrumb":{"@id":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#primaryimage","url":"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/04\/Prover-logo-blue.webp","contentUrl":"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/04\/Prover-logo-blue.webp","width":1200,"height":675,"caption":"Prover"},{"@type":"BreadcrumbList","@id":"https:\/\/www.prover.com\/verification-validation\/formal-verification-performance-jump\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.prover.com\/"},{"@type":"ListItem","position":2,"name":"Verification &amp; validation","item":"https:\/\/www.prover.com\/categories\/verification-validation\/"},{"@type":"ListItem","position":3,"name":"Formal verification performance jump"}]},{"@type":"WebSite","@id":"https:\/\/prover.com\/#website","url":"https:\/\/prover.com\/","name":"Prover - Engineering a Safer World","description":"Interlocking Design Automation to meet demand for complex digital train control","publisher":{"@id":"https:\/\/prover.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/prover.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/prover.com\/#organization","name":"Prover - Engineering a Safer World","url":"https:\/\/prover.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prover.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/01\/prover-logo.svg","contentUrl":"https:\/\/www.prover.com\/wp-content\/uploads\/2023\/01\/prover-logo.svg","width":222,"height":22,"caption":"Prover - Engineering a Safer World"},"image":{"@id":"https:\/\/prover.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/prover.com\/#\/schema\/person\/d253e765d1d293a31d5709b3ad676cbb","name":"Jesper Carlstr\u00f6m","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/795397ba739bb6168ebbd77601ef271957d8b95496e47fad1313f40ad8befd64?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/795397ba739bb6168ebbd77601ef271957d8b95496e47fad1313f40ad8befd64?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/795397ba739bb6168ebbd77601ef271957d8b95496e47fad1313f40ad8befd64?s=96&d=mm&r=g","caption":"Jesper Carlstr\u00f6m"},"url":"https:\/\/www.prover.com\/author\/jesper-carlstrom\/"}]}},"_links":{"self":[{"href":"https:\/\/www.prover.com\/wp-json\/wp\/v2\/posts\/2877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.prover.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.prover.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.prover.com\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/www.prover.com\/wp-json\/wp\/v2\/comments?post=2877"}],"version-history":[{"count":2,"href":"https:\/\/www.prover.com\/wp-json\/wp\/v2\/posts\/2877\/revisions"}],"predecessor-version":[{"id":20660,"href":"https:\/\/www.prover.com\/wp-json\/wp\/v2\/posts\/2877\/revisions\/20660"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.prover.com\/wp-json\/wp\/v2\/media\/14931"}],"wp:attachment":[{"href":"https:\/\/www.prover.com\/wp-json\/wp\/v2\/media?parent=2877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.prover.com\/wp-json\/wp\/v2\/categories?post=2877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.prover.com\/wp-json\/wp\/v2\/tags?post=2877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}