Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MURPHI2UCLID(1) 	     General Commands Manual		 MURPHI2UCLID(1)

NAME
     murphi2uclid - translate a Murphi model to Uclid5

SYNOPSIS
     murphi2uclid [--output FILE | -o FILE] FILE

DESCRIPTION
     The utility murphi2uclid is bundled with the model checker Rumur and can be
     used to translate a Murphi model into a Uclid5 model. See rumur(1) for more
     information about Rumur or Murphi.

OPTIONS
     --help or -?
	    Display usage information.

     --module NAME or -m NAME
	    Set  the  name to use for the generated Uclid5 module. If you do not
	    supply this, it defaults to main.

     --numeric-type TYPER or -n TYPE
	    Set the Uclid5 type used for ranges, scalarsets and  numeric  liter-
	    als.  This	can be either integer or a bit-vector type, for example,
	    bv8. If this option is omitted, either integer or bv64 is chosen au-
	    tomatically based on the content of the input model.

     --output FILE or -o FILE
	    Set the path to write the output Uclid5 model to. If  this	argument
	    is omitted, output is written to standard out.

     --quiet or -q
	    Silence warning diagnostics.

     --verbose or -v
	    Report extra debugging information.

     --version
	    Display version information and exit.

NOTES
     Translation  to  Uclid5  is  imprecise in the case where there is no direct
     Uclid5 equivalent for a Murphi concept. For example, an undefine  statement
     in Murphi has no equivalent in Uclid5. This is translated to a havoc state-
     ment. Obviously this is not exactly equivalent. However the hope is that in
     real  world  models  this achieves a similar effect. Namely, any read of an
     undefined variable results in the verifier exploring  unintended  behavior.
     To get reasonable utility out of translation of a model using undefine, you
     will  likely  need an assertion-heavy model. Or, put another way, defensive
     programming is advised.

LIMITATIONS
     The following Murphi concepts have no translation to  Uclid5  and	are  re-
     jected by murphi2uclid:

	    * Aliases, in the form of declarations statements or rules

	    * The isundefined operator

	    * The modulo operator, %

	    * The left and shift shift operators, << and >>

	    * Early return statements, with or without an expression

	    * Cover properties

	    * Liveness properties inside rulesets

	    * Cover and liveness statements

	    * A clear statement with a value of complex type as its argument

	    * Step sizes other than 1 in exists or forall expressions

     Function  calls  within expressions are translated as if they were calls to
     uninterpreted functions. Uclid5 does not support calling interpreted  func-
     tions  (procedures,  in Uclid5 terminology) this way. The desirable mapping
     (uninterpreted function vs rephrasing the call site) cannot  be  determined
     automatically.  So it is left to the user to tweak or post-process the out-
     put, as it will not be accepted by Uclid5 as-is.

SEE ALSO
     rumur(1)

AUTHOR
     All comments, questions and complaints should be directed to  Matthew  Fer-
     nandez <matthew.fernandez@gmail.com>.

LICENSE
     This is free and unencumbered software released into the public domain.

     Anyone  is free to copy, modify, publish, use, compile, sell, or distribute
     this software, either in source code form or as a compiled binary, for  any
     purpose, commercial or non-commercial, and by any means.

     In  jurisdictions	that  recognize copyright laws, the author or authors of
     this software dedicate any and all copyright interest in  the  software  to
     the public domain. We make this dedication for the benefit of the public at
     large and to the detriment of our heirs and successors. We intend this ded-
     ication  to  be an overt act of relinquishment in perpetuity of all present
     and future rights to this software under copyright law.

     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  OR
     IMPLIED,  INCLUDING  BUT  NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN	NO  EVENT  SHALL
     THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
     AN  ACTION  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
     NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

     For more information, please refer to <http://unlicense.org>

								 MURPHI2UCLID(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=murphi2uclid&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help