{"id":7,"date":"2020-08-21T20:57:59","date_gmt":"2020-08-21T20:57:59","guid":{"rendered":"https:\/\/www.aere.iastate.edu\/modelchecker\/?page_id=7"},"modified":"2025-05-07T16:35:09","modified_gmt":"2025-05-07T21:35:09","slug":"home","status":"publish","type":"page","link":"https:\/\/www.aere.iastate.edu\/modelchecker\/","title":{"rendered":"An Open-Source, State-of-the-Art Symbolic Model-Checking Framework for the Model-Checking Research Community"},"content":{"rendered":"<h1> MoXI (Model eXchange Interlingua): An Intermediate Language to Spur Reproducible and Comparable Model Checking Research<\/h1>\n<hr style=\"height:2px;border-width:0;color:black;background-color:black\">\n<h2> Resource Links <\/h2>\n<p>Home: https:\/\/modelchecker.temporallogic.org<\/p>\n<p>  GitHub Organization: <A HREF=\"https:\/\/modelchecker.github.io\/\">https:\/\/modelchecker.github.io\/<\/A><\/p>\n<p>  MoXI Language Definition:<br \/>\n  <A HREF=\"\">https:\/\/github.com\/ModelChecker\/IL\/blob\/main\/description.md<\/A><\/p>\n<p>  CAV 2024 Workshop: OSSyM: <A HREF=\"https:\/\/laboratory.temporallogic.org\/ossym\/\">https:\/\/laboratory.temporallogic.org\/ossym\/<\/A><\/p>\n<p>    FMCAD 2023 Workshop:<br \/>\n  <A HREF=\"https:\/\/github.com\/ModelChecker\/FMCAD23-Tutorial\">https:\/\/github.com\/ModelChecker\/FMCAD23-Tutorial<\/A><\/p>\n<p>    SPIN 2024 paper: MoXI semantics:<br \/>\n  <A HREF=\"https:\/\/research.temporallogic.org\/papers\/SPIN2024.pdf\">https:\/\/research.temporallogic.org\/papers\/SPIN2024.pdf<\/A><\/p>\n<p>  CAV 2024 tool paper: MoXI translators:<br \/>\n  <A HREF=\"https:\/\/research.temporallogic.org\/papers\/CAV2024.pdf\">https:\/\/research.temporallogic.org\/papers\/CAV2024.pdf<\/A><br \/>\n artifact: <A HREF=\"https:\/\/zenodo.org\/records\/10946779\">https:\/\/zenodo.org\/records\/10946779<\/A><\/p>\n<hr style=\"height:2px;border-width:0;color:black;background-color:black\">\n<h2> Model Checkers That Natively Use MoXI <\/h2>\n<p>MoXIChecker:<br \/>\nby LMU Munich and National Taiwan University<br \/>\n<A HREF=\"https:\/\/gitlab.com\/sosy-lab\/software\/moxichecker\">https:\/\/gitlab.com\/sosy-lab\/software\/moxichecker<\/A><\/p>\n<p>Kind2 (KMoXI)<br \/>\nby University of Iowa<br \/>\n<A HREF=\"https:\/\/github.com\/kind2-mc\/kind2\">https:\/\/github.com\/kind2-mc\/kind2<\/A> (with make kmoxi)<\/p>\n<p>Black (Bounded Ltl sAtisfiability cheCKer)<br \/>\nby University of Bozen-Bolzano, Italy<br \/>\n<A HREF=\"https:\/\/www.black-sat.org\">https:\/\/www.black-sat.org<\/A><\/p>\n<p>Pono<br \/>\nby Stanford<br \/>\n<A HREF=\"https:\/\/github.com\/stanford-centaur\/pono\">https:\/\/github.com\/stanford-centaur\/pono<\/A><\/p>\n<p>Sally<br \/>\nby SRI<br \/>\n(MoXI encoding coming soon)<br \/>\n<A HREF=\"https:\/\/sri-csl.github.io\/sally\/\">https:\/\/sri-csl.github.io\/sally\/<\/A><\/p>\n<p>Formally: the open-source formal methods toolchain<br \/>\nby the open-source research community and University of Bozen-Bolzano<br \/>\n<A HREF=\"https:\/\/www.formally.fm\/\">https:\/\/www.formally.fm\/<\/A><\/p>\n<hr style=\"height:2px;border-width:0;color:black;background-color:black\">\n<h2>Supported by NSF Project: Developing an Open-Source, State-of-the-Art Symbolic Model-Checking Framework for the Model-Checking Research Community<\/h2>\n<p class=\"aligncenter\"><img decoding=\"async\" class=\"alignnone size-medium wp-image-27 img-responsive\" src=\"https:\/\/www.aere.iastate.edu\/modelchecker\/files\/2022\/01\/IntermediateLanguageFig-300x221.png\" alt=\"\" width=\"70%\" height=\"auto\" srcset=\"https:\/\/www.aere.iastate.edu\/modelchecker\/files\/2022\/01\/IntermediateLanguageFig-300x221.png 300w, https:\/\/www.aere.iastate.edu\/modelchecker\/files\/2022\/01\/IntermediateLanguageFig.png 588w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<h2>Abstract<\/h2>\n<p>Safety-critical and security-critical systems are entering our lives at an increasingly rapid pace. These are the systems that help fly our planes, drive our cars, deliver our packages, ensure our electricity, or even automate our homes. Especially when humans cannot perform a task in person, e.g., due to a dangerous working environment, we depend on such systems. Before any safety-critical system launches into the human environment, we need to be sure it is really safe. Model checking is a popular and appealing way to rigorously check for safety: given a system, or an accurate model of the system, and a safety requirement, model checking is a &#8220;push button&#8221; technique to produce either a proof that the system always operates safely, or a counterexample detailing a system execution that violates the safety requirement. Many aspects of model checking are active research areas, including more efficient ways of reasoning about the system&#8217;s behavior space, and faster search algorithms for the proofs and counterexamples.<\/p>\n<p>As model checking becomes more integrated into the standard design and verification process for safety-critical systems, the platforms for model checking research have become more limited. Previous options have become closed-source or industry tools; current research platforms don&#8217;t have support for expressive specification languages needed for verifying real systems. Our goal is to fill the current gap in model checking research platforms: building a freely-available, open-source, scalable model checking infrastructure that accepts expressive models and efficiently interfaces with the currently-maintained state-of-the-art back-end algorithms to provide an extensible research and verification tool. We will create a community resource with a well-documented intermediate representation to enable extensibility, and a web portal, facilitating new modeling languages and back-end algorithmic advances. To add new modeling languages or algorithms, researchers need only to develop a translator to\/from the new intermediate language, and will then be able to integrate each advance with the full state-of-the-art in model checking. This community infrastructure will be ideal for catapulting formal verification efforts in many cutting-edge application areas, including security, networking, and operating system verification. We particularly target outreach to the embedded systems (CPS) community as our new framework will make hardware verification problems from this community more accessible.<\/p>\n<p><a href=\"https:\/\/www.aere.iastate.edu\/modelchecker\/files\/2022\/01\/TAB_Slides_2021-11-08.pdf\">Slides: why are we doing this?<\/a><\/p>\n<p><a href=\"https:\/\/www.aere.iastate.edu\/modelchecker\/files\/2023\/01\/IL.pdf\">Slides: Draft Details of a Model Checking Intermediate Language (Updated 1\/2023)<\/a><\/p>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=XjkjVPOKVT8\">Video: SBMF 2022 Keynote Talk<\/a><\/p>\n<hr \/>\n<a href=\"https:\/\/www.aere.iastate.edu\/modelchecker\/send-us-your-comments\/\" class=\"btn btn-success btn-lg\"> Send your comments <\/a>\n<hr style=\"margin-bottom:4rem\" \/>\n<script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\nvar gform;gform||(document.addEventListener(\"gform_main_scripts_loaded\",function(){gform.scriptsLoaded=!0}),document.addEventListener(\"gform\/theme\/scripts_loaded\",function(){gform.themeScriptsLoaded=!0}),window.addEventListener(\"DOMContentLoaded\",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,themeScriptsLoaded:!1,isFormEditor:()=>\"function\"==typeof InitializeEditor,callIfLoaded:function(o){return!(!gform.domLoaded||!gform.scriptsLoaded||!gform.themeScriptsLoaded&&!gform.isFormEditor()||(gform.isFormEditor()&&console.warn(\"The use of gform.initializeOnLoaded() is deprecated in the form editor context and will be removed in Gravity Forms 3.1.\"),o(),0))},initializeOnLoaded:function(o){gform.callIfLoaded(o)||(document.addEventListener(\"gform_main_scripts_loaded\",()=>{gform.scriptsLoaded=!0,gform.callIfLoaded(o)}),document.addEventListener(\"gform\/theme\/scripts_loaded\",()=>{gform.themeScriptsLoaded=!0,gform.callIfLoaded(o)}),window.addEventListener(\"DOMContentLoaded\",()=>{gform.domLoaded=!0,gform.callIfLoaded(o)}))},hooks:{action:{},filter:{}},addAction:function(o,r,e,t){gform.addHook(\"action\",o,r,e,t)},addFilter:function(o,r,e,t){gform.addHook(\"filter\",o,r,e,t)},doAction:function(o){gform.doHook(\"action\",o,arguments)},applyFilters:function(o){return gform.doHook(\"filter\",o,arguments)},removeAction:function(o,r){gform.removeHook(\"action\",o,r)},removeFilter:function(o,r,e){gform.removeHook(\"filter\",o,r,e)},addHook:function(o,r,e,t,n){null==gform.hooks[o][r]&&(gform.hooks[o][r]=[]);var d=gform.hooks[o][r];null==n&&(n=r+\"_\"+d.length),gform.hooks[o][r].push({tag:n,callable:e,priority:t=null==t?10:t})},doHook:function(r,o,e){var t;if(e=Array.prototype.slice.call(e,1),null!=gform.hooks[r][o]&&((o=gform.hooks[r][o]).sort(function(o,r){return o.priority-r.priority}),o.forEach(function(o){\"function\"!=typeof(t=o.callable)&&(t=window[t]),\"action\"==r?t.apply(null,e):e[0]=t.apply(null,e)})),\"filter\"==r)return e[0]},removeHook:function(o,r,t,n){var e;null!=gform.hooks[o][r]&&(e=(e=gform.hooks[o][r]).filter(function(o,r,e){return!!(null!=n&&n!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][r]=e)}});\n\/* ]]> *\/\n<\/script>\n\n                <div class='gf_browser_gecko gform_wrapper gform_legacy_markup_wrapper gform-theme--no-framework' data-form-theme='legacy' data-form-index='0' id='gform_wrapper_1' >\n                        <div class='gform_heading'>\n                            <h3 class=\"gform_title\">Mailing List Signup<\/h3>\n                        <\/div><form method='post' enctype='multipart\/form-data'  id='gform_1'  action='\/modelchecker\/wp-json\/wp\/v2\/pages\/7' data-formid='1' novalidate>\n                        <div class='gform-body gform_body'><ul id='gform_fields_1' class='gform_fields top_label form_sublabel_below description_below validation_below'><li id=\"field_1_13\" class=\"gfield gfield--type-honeypot gform_validation_container field_sublabel_below gfield--has-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_1_13'>Instagram<\/label><div class='ginput_container'><input name='input_13' id='input_1_13' type='text' value='' autocomplete='new-password'\/><\/div><div class='gfield_description' id='gfield_description_1_13'>This field is for validation purposes and should be left unchanged.<\/div><\/li><li id=\"field_1_5\" class=\"gfield gfield--type-email gfield--input-type-email gfield_contains_required field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label gfield_label_before_complex' >Email<span class=\"gfield_required\"><span class=\"gfield_required gfield_required_asterisk\">*<\/span><\/span><\/label><div class='ginput_complex ginput_container ginput_container_email gform-grid-row' id='input_1_5_container'>\n                                <span id='input_1_5_1_container' class='ginput_left gform-grid-col gform-grid-col--size-auto'>\n                                    <input class='' type='email' name='input_5' id='input_1_5' value=''    aria-required=\"true\" aria-invalid=\"false\"  \/>\n                                    <label for='input_1_5' class='gform-field-label gform-field-label--type-sub '>Enter Email<\/label>\n                                <\/span>\n                                <span id='input_1_5_2_container' class='ginput_right gform-grid-col gform-grid-col--size-auto'>\n                                    <input class='' type='email' name='input_5_2' id='input_1_5_2' value=''    aria-required=\"true\" aria-invalid=\"false\"  \/>\n                                    <label for='input_1_5_2' class='gform-field-label gform-field-label--type-sub '>Confirm Email<\/label>\n                                <\/span>\n                                <div class='gf_clear gf_clear_complex'><\/div>\n                            <\/div><\/li><li id=\"field_1_9\" class=\"gfield gfield--type-checkbox gfield--type-choice gfield--input-type-checkbox field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label gfield_label_before_complex' >Would you like to signup for a mailing list using the above email?<\/label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_1_9'><li class='gchoice gchoice_1_9_1'>\n\t\t\t\t\t\t\t\t<input class='gfield-choice-input' name='input_9.1' type='checkbox'  value='Yes'  id='choice_1_9_1'   \/>\n\t\t\t\t\t\t\t\t<label for='choice_1_9_1' id='label_1_9_1' class='gform-field-label gform-field-label--type-inline'>Yes<\/label>\n\t\t\t\t\t\t\t<\/li><\/ul><\/div><\/li><li id=\"field_1_12\" class=\"gfield gfield--type-number gfield--input-type-number gfield--width-full field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_1_12'>Please provide the numerical offset of your timezone from GMT (e.g., US Central Time is GMT-6 so one would enter &quot;-6&quot;  here). We will use this to schedule virtual meetings that maximize participation from interested parties.<\/label><div class='ginput_container ginput_container_number'><input name='input_12' id='input_1_12' type='number' step='any' min='-12' max='12' value='' class='large'      aria-invalid=\"false\" aria-describedby=\"gfield_instruction_1_12\" \/><div class='gfield_description instruction ' id='gfield_instruction_1_12'>Please enter a number from <strong>-12<\/strong> to <strong>12<\/strong>.<\/div><\/div><\/li><li id=\"field_1_6\" class=\"gfield gfield--type-captcha gfield--input-type-captcha field_sublabel_below gfield--no-description field_description_below field_validation_below gfield_visibility_visible\"  ><label class='gfield_label gform-field-label' for='input_1_6'>reCAPTCHA<\/label><div id='input_1_6' class='ginput_container ginput_recaptcha' data-sitekey='6LcsssoZAAAAAHqkDhsM3eJIS2mhDCb0X3mzdiyb'  data-theme='light' data-tabindex='-1' data-size='invisible' data-badge='inline'><\/div><\/li><\/ul><\/div>\n        <div class='gform-footer gform_footer top_label'> <input type='submit' id='gform_submit_button_1' class='gform_button button' onclick='gform.submission.handleButtonClick(this);' data-submission-type='submit' value='Submit'  \/> \n            <input type='hidden' class='gform_hidden' name='gform_submission_method' data-js='gform_submission_method_1' value='postback' \/>\n            <input type='hidden' class='gform_hidden' name='gform_theme' data-js='gform_theme_1' id='gform_theme_1' value='legacy' \/>\n            <input type='hidden' class='gform_hidden' name='gform_style_settings' data-js='gform_style_settings_1' id='gform_style_settings_1' value='[]' \/>\n            <input type='hidden' class='gform_hidden' name='is_submit_1' value='1' \/>\n            <input type='hidden' class='gform_hidden' name='gform_submit' value='1' \/>\n            \n            <input type='hidden' class='gform_hidden' name='gform_currency' data-currency='USD' value='KktTMjRN+suxqGJ0lPESU0j8bH7JiZACRYxIADX1nGEvDrMOcSWe4MhemWEE4x5xgyrD4fmgwKYji62gMObQV6KucEeKO7Auwj5sppeKXWD1OeA=' \/>\n            <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' \/>\n            <input type='hidden' class='gform_hidden' name='state_1' value='WyJbXSIsIjNmZDE4MWZmNzQ5N2ZjNDhjMmUxYWMwNjc5MTc1OTU4Il0=' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_target_page_number_1' id='gform_target_page_number_1' value='0' \/>\n            <input type='hidden' autocomplete='off' class='gform_hidden' name='gform_source_page_number_1' id='gform_source_page_number_1' value='1' \/>\n            <input type='hidden' name='gform_field_values' value='' \/>\n            \n        <\/div>\n                        <\/form>\n                        <\/div><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n gform.initializeOnLoaded( function() {gformInitSpinner( 1, 'https:\/\/www.aere.iastate.edu\/modelchecker\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery('#gform_ajax_frame_1').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_1');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_1').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_1').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_1').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_1').removeClass('gform_validation_error');}setTimeout( function() { \/* delay the scroll by 50 milliseconds to fix a bug in chrome *\/  }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_1').val();gformInitSpinner( 1, 'https:\/\/www.aere.iastate.edu\/modelchecker\/wp-content\/plugins\/gravityforms\/images\/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [1, current_page]);window['gf_submitting_1'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}jQuery('#gform_wrapper_1').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [1]);window['gf_submitting_1'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_1').text());}else{jQuery('#gform_1').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger(\"gform_pre_post_render\", [{ formId: \"1\", currentPage: \"current_page\", abort: function() { this.preventDefault(); } }]);        if (event && event.defaultPrevented) {                return;        }        const gformWrapperDiv = document.getElementById( \"gform_wrapper_1\" );        if ( gformWrapperDiv ) {            const visibilitySpan = document.createElement( \"span\" );            visibilitySpan.id = \"gform_visibility_test_1\";            gformWrapperDiv.insertAdjacentElement( \"afterend\", visibilitySpan );        }        const visibilityTestDiv = document.getElementById( \"gform_visibility_test_1\" );        let postRenderFired = false;        function triggerPostRender() {            if ( postRenderFired ) {                return;            }            postRenderFired = true;            gform.core.triggerPostRenderEvents( 1, current_page );            if ( visibilityTestDiv ) {                visibilityTestDiv.parentNode.removeChild( visibilityTestDiv );            }        }        function debounce( func, wait, immediate ) {            var timeout;            return function() {                var context = this, args = arguments;                var later = function() {                    timeout = null;                    if ( !immediate ) func.apply( context, args );                };                var callNow = immediate && !timeout;                clearTimeout( timeout );                timeout = setTimeout( later, wait );                if ( callNow ) func.apply( context, args );            };        }        const debouncedTriggerPostRender = debounce( function() {            triggerPostRender();        }, 200 );        if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) {            const observer = new MutationObserver( ( mutations ) => {                mutations.forEach( ( mutation ) => {                    if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) {                        debouncedTriggerPostRender();                        observer.disconnect();                    }                });            });            observer.observe( document.body, {                attributes: true,                childList: false,                subtree: true,                attributeFilter: [ 'style', 'class' ],            });        } else {            triggerPostRender();        }    } );} ); \n\/* ]]> *\/\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>MoXI (Model eXchange Interlingua): An Intermediate Language to Spur Reproducible and Comparable Model Checking Research Resource Links Home: https:\/\/modelchecker.temporallogic.org GitHub Organization: https:\/\/modelchecker.github.io\/ MoXI Language Definition: https:\/\/github.com\/ModelChecker\/IL\/blob\/main\/description.md CAV 2024 Workshop: OSSyM: https:\/\/laboratory.temporallogic.org\/ossym\/ FMCAD 2023 Workshop: https:\/\/github.com\/ModelChecker\/FMCAD23-Tutorial SPIN 2024 paper: MoXI semantics: https:\/\/research.temporallogic.org\/papers\/SPIN2024.pdf CAV 2024 tool paper: MoXI translators: https:\/\/research.temporallogic.org\/papers\/CAV2024.pdf artifact: https:\/\/zenodo.org\/records\/10946779 Model Checkers That Natively Use &hellip; <a href=\"https:\/\/www.aere.iastate.edu\/modelchecker\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">An Open-Source, State-of-the-Art Symbolic Model-Checking Framework for the Model-Checking Research Community<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-7","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.aere.iastate.edu\/modelchecker\/wp-json\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aere.iastate.edu\/modelchecker\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.aere.iastate.edu\/modelchecker\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.aere.iastate.edu\/modelchecker\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aere.iastate.edu\/modelchecker\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":36,"href":"https:\/\/www.aere.iastate.edu\/modelchecker\/wp-json\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":48,"href":"https:\/\/www.aere.iastate.edu\/modelchecker\/wp-json\/wp\/v2\/pages\/7\/revisions\/48"}],"wp:attachment":[{"href":"https:\/\/www.aere.iastate.edu\/modelchecker\/wp-json\/wp\/v2\/media?parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}