File: basic_rewrites.doc

package info (click to toggle)
hol88 2.02.19940316dfsg-5
  • links: PTS
  • area: main
  • in suites: bookworm
  • size: 65,816 kB
  • sloc: ml: 199,939; ansic: 9,666; sh: 6,913; makefile: 6,032; lisp: 2,747; yacc: 894; sed: 201; cpp: 87; awk: 5
file content (74 lines) | stat: -rw-r--r-- 1,901 bytes parent folder | download | duplicates (11)
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
\DOC basic_rewrites

\TYPE {basic_rewrites: thm list}

\SYNOPSIS
Contains a number of built-in tautologies used, by default, in rewriting.

\DESCRIBE
The variable {basic_rewrites} contains polymorphic tautologies which
are often used for simplifying and solving a goal through rewriting.
They include the clause for reflexivity:
{
   |- !x. (x = x) = T;
}
\noindent as well as rules to reason about equality:
{
   |- !t.
      ((T = t) = t) /\ ((t = T) = t) /\ ((F = t) = ~t) /\ ((t = F) = ~t);
}
Negations are manipulated by the following clauses:
{
   |- (!t. ~~t = t) /\ (~T = F) /\ (~F = T);
}
The set of tautologies includes truth tables for conjunctions,
disjunctions, and implications:
{
   |- !t.
       (T /\ t = t) /\
       (t /\ T = t) /\
       (F /\ t = F) /\
       (t /\ F = F) /\
       (t /\ t = t);
   |- !t.
       (T \/ t = T) /\
       (t \/ T = T) /\
       (F \/ t = t) /\
       (t \/ F = t) /\
       (t \/ t = t);
   |- !t.
       (T ==> t = t) /\
       (t ==> T = T) /\
       (F ==> t = T) /\
       (t ==> t = T) /\
       (t ==> F = ~t);
}
Simple rules for reasoning about conditionals are given by:
{
   |- !t1 t2. ((T => t1 | t2) = t1) /\ ((F => t1 | t2) = t2);
}
Rewriting with the following tautologies allows simplification of
universally and existentially quantified variables and abstractions:
{
   |- !t. (!x. t) = t;
   |- !t. (?x. t) = t;
   |- !t1 t2. (\x. t1)t2 = t1;
}
The list {basic_rewrites} also includes rules for reasoning about
pairs in HOL:
{
   |- !x. FST x,SND x = x;
   |- !x y. FST(x,y) = x;
   |- !x y. SND(x,y) = y]
}
\USES
The {basic_rewrites} are included in the set of equations used by some
of the rewriting tools.

\SEEALSO
ABS_SIMP, AND_CLAUSES, COND_CLAUSES, EQ_CLAUSES, EXISTS_SIMP,
FORALL_SIMP, FST, GEN_REWRITE_RULE, GEN_REWRITE_TAC, IMP_CLAUSES,
NOT_CLAUSES, OR_CLAUSES, PAIR, REFL_CLAUSE, REWRITE_RULE, REWRITE_TAC,
SND.

\ENDDOC