author | wenzelm |
Mon, 05 May 2008 15:23:59 +0200 | |
changeset 26783 | 1651ff6a34b5 |
parent 26580 | c3e597a476fd |
child 26956 | 1309a6a0a29f |
permissions | -rw-r--r-- |
1268 | 1 |
(* Title: FOL/IFOL.thy |
35 | 2 |
ID: $Id$ |
11677 | 3 |
Author: Lawrence C Paulson and Markus Wenzel |
4 |
*) |
|
35 | 5 |
|
11677 | 6 |
header {* Intuitionistic first-order logic *} |
35 | 7 |
|
15481 | 8 |
theory IFOL |
9 |
imports Pure |
|
23155 | 10 |
uses |
11 |
"~~/src/Provers/splitter.ML" |
|
12 |
"~~/src/Provers/hypsubst.ML" |
|
23171 | 13 |
"~~/src/Tools/IsaPlanner/zipper.ML" |
14 |
"~~/src/Tools/IsaPlanner/isand.ML" |
|
15 |
"~~/src/Tools/IsaPlanner/rw_tools.ML" |
|
16 |
"~~/src/Tools/IsaPlanner/rw_inst.ML" |
|
23155 | 17 |
"~~/src/Provers/eqsubst.ML" |
18 |
"~~/src/Provers/quantifier1.ML" |
|
19 |
"~~/src/Provers/project_rule.ML" |
|
26580
c3e597a476fd
Generic conversion and tactic "atomize_elim" to convert elimination rules
krauss
parents:
26286
diff
changeset
|
20 |
"~~/src/Tools/atomize_elim.ML" |
23155 | 21 |
("fologic.ML") |
22 |
("hypsubstdata.ML") |
|
23 |
("intprover.ML") |
|
15481 | 24 |
begin |
7355
4c43090659ca
proper bootstrap of IFOL/FOL theories and packages;
wenzelm
parents:
6340
diff
changeset
|
25 |
|
0 | 26 |
|
11677 | 27 |
subsection {* Syntax and axiomatic basis *} |
28 |
||
3906 | 29 |
global |
30 |
||
14854 | 31 |
classes "term" |
7355
4c43090659ca
proper bootstrap of IFOL/FOL theories and packages;
wenzelm
parents:
6340
diff
changeset
|
32 |
defaultsort "term" |
0 | 33 |
|
7355
4c43090659ca
proper bootstrap of IFOL/FOL theories and packages;
wenzelm
parents:
6340
diff
changeset
|
34 |
typedecl o |
79 | 35 |
|
11747 | 36 |
judgment |
37 |
Trueprop :: "o => prop" ("(_)" 5) |
|
0 | 38 |
|
11747 | 39 |
consts |
7355
4c43090659ca
proper bootstrap of IFOL/FOL theories and packages;
wenzelm
parents:
6340
diff
changeset
|
40 |
True :: o |
4c43090659ca
proper bootstrap of IFOL/FOL theories and packages;
wenzelm
parents:
6340
diff
changeset
|
41 |
False :: o |
79 | 42 |
|
43 |
(* Connectives *) |
|
44 |
||
17276 | 45 |
"op =" :: "['a, 'a] => o" (infixl "=" 50) |
35 | 46 |
|
7355
4c43090659ca
proper bootstrap of IFOL/FOL theories and packages;
wenzelm
parents:
6340
diff
changeset
|
47 |
Not :: "o => o" ("~ _" [40] 40) |
17276 | 48 |
"op &" :: "[o, o] => o" (infixr "&" 35) |
49 |
"op |" :: "[o, o] => o" (infixr "|" 30) |
|
50 |
"op -->" :: "[o, o] => o" (infixr "-->" 25) |
|
51 |
"op <->" :: "[o, o] => o" (infixr "<->" 25) |
|
79 | 52 |
|
53 |
(* Quantifiers *) |
|
54 |
||
7355
4c43090659ca
proper bootstrap of IFOL/FOL theories and packages;
wenzelm
parents:
6340
diff
changeset
|
55 |
All :: "('a => o) => o" (binder "ALL " 10) |
4c43090659ca
proper bootstrap of IFOL/FOL theories and packages;
wenzelm
parents:
6340
diff
changeset
|
56 |
Ex :: "('a => o) => o" (binder "EX " 10) |
4c43090659ca
proper bootstrap of IFOL/FOL theories and packages;
wenzelm
parents:
6340
diff
changeset
|
57 |
Ex1 :: "('a => o) => o" (binder "EX! " 10) |
79 | 58 |
|
0 | 59 |
|
19363 | 60 |
abbreviation |
21404
eb85850d3eb7
more robust syntax for definition/abbreviation/notation;
wenzelm
parents:
21210
diff
changeset
|
61 |
not_equal :: "['a, 'a] => o" (infixl "~=" 50) where |
19120
353d349740de
not_equal: replaced syntax translation by abbreviation;
wenzelm
parents:
18861
diff
changeset
|
62 |
"x ~= y == ~ (x = y)" |
79 | 63 |
|
21210 | 64 |
notation (xsymbols) |
19656
09be06943252
tuned concrete syntax -- abbreviation/const_syntax;
wenzelm
parents:
19380
diff
changeset
|
65 |
not_equal (infixl "\<noteq>" 50) |
19363 | 66 |
|
21210 | 67 |
notation (HTML output) |
19656
09be06943252
tuned concrete syntax -- abbreviation/const_syntax;
wenzelm
parents:
19380
diff
changeset
|
68 |
not_equal (infixl "\<noteq>" 50) |
19363 | 69 |
|
21524 | 70 |
notation (xsymbols) |
21539 | 71 |
Not ("\<not> _" [40] 40) and |
72 |
"op &" (infixr "\<and>" 35) and |
|
73 |
"op |" (infixr "\<or>" 30) and |
|
74 |
All (binder "\<forall>" 10) and |
|
75 |
Ex (binder "\<exists>" 10) and |
|
76 |
Ex1 (binder "\<exists>!" 10) and |
|
21524 | 77 |
"op -->" (infixr "\<longrightarrow>" 25) and |