File: PSTACK.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-- 3,140 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>PSTACK.html  --  ACL2 Version 3.1</title></head>
<body text=#000000 bgcolor="#FFFFFF">
<h2>PSTACK</h2>seeing what is the prover up to
<pre>Major Section:  <a href="OTHER.html">OTHER</a>
</pre><p>


<pre>
General Forms:
(pstack)      ; inspect break
(pstack t)    ; inspect break, printing all calls in abbreviated form
(pstack :all) ; as above, but only abbreviating the ACL2 world
</pre>
<p>

When the form <code>(pstack)</code> is executed during a break from a proof, or at the
end of a proof that the user has aborted, a ``process stack'' (or ``prover
stack'') will be printed that gives some idea of what the theorem prover has
been doing.  Moreover, by evaluating <code>(verbose-pstack t)</code> before
starting a proof (see <a href="VERBOSE-PSTACK.html">verbose-pstack</a>) one can get trace-like information
about prover functions, including time summaries, printed to the screen
during a proof.  This feature is currently quite raw and may be refined
considerably as time goes on, based on user suggestions.  For example, the
usual control of printing given by <a href="SET-INHIBIT-OUTPUT-LST.html">set-inhibit-output-lst</a> is irrelevant
for printing the pstack.<p>

The use of <code>(pstack t)</code> or <code>(pstack :all)</code> should only be used
by those who are comfortable looking at functions in the ACL2 source code.
Otherwise, simply use <code>(pstack)</code>.
<p>
<ul>
<li><h3><a href="VERBOSE-PSTACK.html">VERBOSE-PSTACK</a> -- seeing what is the prover up to (for advanced users)
</h3>
</li>

</ul>

Entries in the pstack include the following (listed here alphabetically,
except for the first).<p>

<code>preprocess-clause</code>, <code>simplify-clause</code>, etc. (in general,<code>xxx-clause</code>):
top-level processes in the prover ``waterfall''<p>

<code>clausify</code>: splitting a goal into subgoals<p>

<code>ev-fncall</code>: evaluating a function on explicit arguments<p>

<code>ev-fncall-meta</code>:  evaluating a metafunction<p>

<code>forward-chain</code>: building a context for the current goal using
<code><a href="FORWARD-CHAINING.html">forward-chaining</a></code> rules<p>

<code>induct</code>: finding an induction scheme<p>

<code>pop-clause</code>:  getting the next goal to prove by induction<p>

<code>process-assumptions</code>:  creating forcing rounds<p>

<code>remove-built-in-clauses</code>: removing built-in clauses (see <a href="BUILT-IN-CLAUSES.html">built-in-clauses</a>)<p>

<code>process-equational-polys</code>:  deducing interesting equations<p>

<code>remove-trivial-equivalences</code>:  removing trivial equalities (and
equivalences) from the current goal<p>

<code>rewrite-atm</code>:  rewriting a top-level term in the current goal<p>

<code>setup-simplify-clause-pot-lst</code>:  building the linear arithmetic database
for the current goal<p>

<code>strip-branches</code>,  <code>subsumption-replacement-loop</code>:  subroutines of
<code>clausify</code><p>

<code>waterfall</code>: top-level proof control<p>


<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>