-
Notifications
You must be signed in to change notification settings - Fork 0
/
SfLib.html
71 lines (54 loc) · 3.25 KB
/
SfLib.html
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link href="coqdoc.css" rel="stylesheet" type="text/css"/>
<title>SfLib: Software Foundations Library</title>
<script type="text/javascript" src="jquery-1.8.3.js"></script>
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<div id="page">
<div id="header">
</div>
<div id="main">
<h1 class="libtitle">SfLib<span class="subtitle">Software Foundations Library</span></h1>
<div class="code code-tight">
</div>
<div class="doc">
<div class="paragraph"> </div>
Here we collect together a few useful definitions from earlier
chapters that are not provided as part of the Coq standard
library. Later chapters will <span class="inlinecode"><span class="id" type="keyword">Import</span></span> or <span class="inlinecode"><span class="id" type="keyword">Export</span></span> just this file,
instead of cluttering the top-level environment with all the
examples and false starts in those files.
</div>
<div class="code code-tight">
<br/>
<span class="id" type="keyword">Tactic Notation</span> "solve_by_inversion_step" <span class="id" type="var">tactic</span>(<span class="id" type="var">t</span>) :=<br/>
<span class="id" type="keyword">match</span> <span class="id" type="var">goal</span> <span class="id" type="keyword">with</span><br/>
| <span class="id" type="var">H</span> : <span class="id" type="var">_</span> <span style="font-family: arial;">⊢</span> <span class="id" type="var">_</span> ⇒ <span class="id" type="var">solve</span> [ <span class="id" type="tactic">inversion</span> <span class="id" type="var">H</span>; <span class="id" type="tactic">subst</span>; <span class="id" type="var">t</span> ]<br/>
<span class="id" type="keyword">end</span><br/>
|| <span class="id" type="tactic">fail</span> "because the goal is not solvable by inversion.".<br/>
<br/>
<span class="id" type="keyword">Tactic Notation</span> "solve" "by" "inversion" "1" :=<br/>
<span class="id" type="var">solve_by_inversion_step</span> <span class="id" type="var">idtac</span>.<br/>
<span class="id" type="keyword">Tactic Notation</span> "solve" "by" "inversion" "2" :=<br/>
<span class="id" type="var">solve_by_inversion_step</span> (<span class="id" type="var">solve</span> <span class="id" type="tactic">by</span> <span class="id" type="tactic">inversion</span> 1).<br/>
<span class="id" type="keyword">Tactic Notation</span> "solve" "by" "inversion" "3" :=<br/>
<span class="id" type="var">solve_by_inversion_step</span> (<span class="id" type="var">solve</span> <span class="id" type="tactic">by</span> <span class="id" type="tactic">inversion</span> 2).<br/>
<span class="id" type="keyword">Tactic Notation</span> "solve" "by" "inversion" :=<br/>
<span class="id" type="var">solve</span> <span class="id" type="tactic">by</span> <span class="id" type="tactic">inversion</span> 1.<br/>
<br/>
</div>
<div class="doc">
</div>
<div class="code code-tight">
</div>
</div>
<div id="footer">
<hr/><a href="coqindex.html">Index</a></div>
</div>
</body>
</html>