File: ACL2-PC_colon__colon_S.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 (80 lines) | stat: -rw-r--r-- 2,935 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<html>
<head><title>ACL2-PC_colon__colon_S.html  --  ACL2 Version 3.1</title></head>
<body text=#000000 bgcolor="#FFFFFF">
<h3>ACL2-PC::S</h3>(primitive)
<code>   </code>simplify the current subterm
<pre>Major Section:  <a href="PROOF-CHECKER-COMMANDS.html">PROOF-CHECKER-COMMANDS</a>
</pre><p>


<pre>
Examples:
S  -- simplify the current subterm
(S :backchain-limit 2 :normalize t :expand (append x z))
   -- simplify the current subterm, but during the rewriting
      process first ``normalize'' it by pushing IFs to the
      top-level, and also force the term (append x z) to be
      expanded during the rewriting process
<p>
General Form:
(s &amp;key rewrite normalize backchain-limit repeat in-theory hands-off
        expand)
</pre>

Simplify the current subterm according to the keyword parameters
supplied.  First if-normalization is applied (unless the <code>normalize</code>
argument is <code>nil</code>), i.e., each subterm of the form
<code>(f ... (if test x y) ...)</code>  is replaced by the term
<code>(if test (f ... x ...) (f ... y ...))</code>  except, of course, when
<code>f</code> is <code>if</code> and the indicated <code>if</code> subterm is in the second or
third argument position.  Then rewriting is applied (unless the
rewrite argument is <code>nil</code>).  Finally this pair of actions is
repeated -- until the rewriting step causes no change in the term.
A description of each parameter follows.

<pre>
:rewrite -- default t
</pre>

When non-<code>nil</code>, instructs the system to use ACL2's rewriter (or,
something close to it) during simplification.

<pre>
:normalize -- default t
</pre>

When non-<code>nil</code>, instructs the system to use if-normalization (as
described above) during simplification.

<pre>
:backchain-limit -- default 0
</pre>

Sets the number of recursive calls to the rewriter that are
allowed for backchaining.  Even with the default of 0, some
reasoning is allowed (technically speaking, type-set reasoning is
allowed) in the relieving of hypotheses.

<pre>
:repeat -- default 0
</pre>

Sets the number of times the current term is to be rewritten.  If
this value is <code>t</code>, then the default is used (as specified by the
constant <code>*default-s-repeat-limit*</code>).

<pre>
:in-theory, :hands-off, :expand
</pre>

These have their usual meaning; see <a href="HINTS.html">hints</a>.<p>

<strong>Note:</strong>  if conditional rewrite rules are used that cause case splits
because of the use of <code>force</code>, then appropriate new subgoals will be
created, i.e., with the same current subterm (and address) but with
each new (forced) hypothesis being negated and then used to create a
corresponding new subgoal.  In that case, the current goal will have
all such new hypotheses added to the list of top-level hypotheses.
<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>