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  ru-
       mur(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 lit-
	      erals. This can be either	integer	or a bit-vector	type, for  ex-
	      ample, bv8. If this option is omitted, either integer or bv64 is
	      chosen automatically 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 argu-
	      ment 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	state-
       ment in Murphi has no equivalent	in Uclid5. This	 is  translated	 to  a
       havoc  statement. 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 ex-
       ploring unintended behavior. To get reasonable utility out of  transla-
       tion 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
       functions (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 output, 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
       Fernandez <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  dis-
       tribute	this software, either in source	code form or as	a compiled bi-
       nary, 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 soft-
       ware 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 dedication to be an overt	act of relinquishment in  per-
       petuity	of  all	present	and future rights to this software under copy-
       right law.

       THE SOFTWARE IS PROVIDED	"AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
       OR IMPLIED, INCLUDING  BUT  NOT	LIMITED	 TO  THE  WARRANTIES  OF  MER-
       CHANTABILITY, 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 CONNECTION 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+14.3.quarterly>

home | help