File: MUST-BE-EQUAL.html

package info (click to toggle)
acl2 3.1-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 36,712 kB
  • ctags: 38,396
  • sloc: lisp: 464,023; makefile: 5,470; sh: 86; csh: 47; cpp: 25; ansic: 22
file content (18 lines) | stat: -rw-r--r-- 950 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<head><title>MUST-BE-EQUAL.html  --  ACL2 Version 3.1</title></head>
<body text=#000000 bgcolor="#FFFFFF">
<h2>MUST-BE-EQUAL</h2>attach code for execution
<pre>Major Section:  <a href="PROGRAMMING.html">PROGRAMMING</a>
</pre><p>
<p>
The form <code>(must-be-equal logic exec)</code> evaluates to <code>logic</code> in the ACL2
logic but evaluates to <code>exec</code> in raw Lisp.  The point is to be able to
write one definition to reason about logically but another for evaluation.
Please see <a href="MBE.html">mbe</a> and see <a href="MBT.html">mbt</a> for appropriate macros to use, rather than
calling <code>must-be-equal</code> directly, since it is easy to commute the arguments
of <code>must-be-equal</code> by accident.<p>

The guard for <code>(must-be-equal x y)</code> is <code>(equal x y)</code>.
<br><br><br><a href="acl2-doc.html"><img src="llogo.gif"></a> <a href="acl2-doc-index.html"><img src="index.gif"></a>
</body>
</html>