File: CONJ_LIST.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 (52 lines) | stat: -rw-r--r-- 1,396 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
\DOC CONJ_LIST

\TYPE {CONJ_LIST : (int -> thm -> thm list)}

\SYNOPSIS
Extracts a list of conjuncts from a theorem (non-flattening version).

\KEYWORDS
rule, conjunction.

\DESCRIBE
{CONJ_LIST} is the proper inverse of {LIST_CONJ}. Unlike {CONJUNCTS} which
recursively splits as many conjunctions as possible both to the left and to
the right, {CONJ_LIST} splits the top-level conjunction and then splits
(recursively) only the right conjunct. The integer argument is required
because the term {tn} may itself be a conjunction. A list of {n} theorems is
returned.
{
    A |- t1 /\ (t2 /\ ( ... /\ tn)...)
   ------------------------------------  CONJ_LIST n (A |- t1 /\ ... /\ tn)
    A |- t1   A |- t2   ...   A |- tn
}
\FAILURE
Fails if the integer argument ({n}) is less than one, or if the input theorem
has less than {n} conjuncts.

\EXAMPLE
Suppose the identifier {th} is bound to the theorem:
{
   A |- (x /\ y) /\ z /\ w
}
\noindent Here are some applications of {CONJ_LIST} to {th}:
{
   #CONJ_LIST 0 th;;
   evaluation failed     CONJ_LIST

   #CONJ_LIST 1 th;;
   [A |- (x /\ y) /\ z /\ w] : thm list

   #CONJ_LIST 2 th;;
   [A |- x /\ y; A |- z /\ w] : thm list

   #CONJ_LIST 3 th;;
   [A |- x /\ y; A |- z; A |- w] : thm list

   #CONJ_LIST 4 th;;
   evaluation failed     CONJ_LIST
}
\SEEALSO
BODY_CONJUNCTS, LIST_CONJ, CONJUNCTS, CONJ, CONJUNCT1, CONJUNCT2, CONJ_PAIR.

\ENDDOC