author | paulson <lp15@cam.ac.uk> |
Sat, 04 Dec 2021 20:30:16 +0000 | |
changeset 74878 | 0263787a06b4 |
parent 74337 | 9c1ad2f04660 |
child 76224 | 64e8d4afcf10 |
permissions | -rw-r--r-- |
65553 | 1 |
section \<open>Main HOL\<close> |
2 |
||
3 |
text \<open> |
|
4 |
Classical Higher-order Logic -- only ``Main'', excluding real and |
|
5 |
complex numbers etc. |
|
6 |
\<close> |
|
7 |
||
8 |
theory Main |
|
66817 | 9 |
imports |
10 |
Predicate_Compile |
|
70078 | 11 |
Quickcheck_Narrowing |
73691
2f9877db82a1
reimplemented Mirabelle as Isabelle/ML presentation hook + Isabelle/Scala tool, but sledgehammer is still inactive;
wenzelm
parents:
70336
diff
changeset
|
12 |
Mirabelle |
66817 | 13 |
Extraction |
14 |
Nunchaku |
|
69275 | 15 |
BNF_Greatest_Fixpoint |
16 |
Filter |
|
66817 | 17 |
Conditionally_Complete_Lattices |
18 |
Binomial |
|
19 |
GCD |
|
65553 | 20 |
begin |
21 |
||
74334
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
22 |
subsection \<open>Namespace cleanup\<close> |
69275 | 23 |
|
24 |
hide_const (open) |
|
25 |
czero cinfinite cfinite csum cone ctwo Csum cprod cexp image2 image2p vimage2p Gr Grp collect |
|
26 |
fsts snds setl setr convol pick_middlep fstOp sndOp csquare relImage relInvImage Succ Shift |
|
27 |
shift proj id_bnf |
|
28 |
||
29 |
hide_fact (open) id_bnf_def type_definition_id_bnf_UNIV |
|
30 |
||
31 |
||
74334
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
32 |
subsection \<open>Syntax cleanup\<close> |
69275 | 33 |
|
65814 | 34 |
no_notation |
35 |
ordLeq2 (infix "<=o" 50) and |
|
36 |
ordLeq3 (infix "\<le>o" 50) and |
|
37 |
ordLess2 (infix "<o" 50) and |
|
38 |
ordIso2 (infix "=o" 50) and |
|
39 |
card_of ("|_|") and |
|
69275 | 40 |
BNF_Cardinal_Arithmetic.csum (infixr "+c" 65) and |
41 |
BNF_Cardinal_Arithmetic.cprod (infixr "*c" 80) and |
|
42 |
BNF_Cardinal_Arithmetic.cexp (infixr "^c" 90) and |
|
43 |
BNF_Def.convol ("\<langle>(_,/ _)\<rangle>") |
|
65814 | 44 |
|
74334
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
45 |
bundle cardinal_syntax |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
46 |
begin |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
47 |
|
70078 | 48 |
notation |
49 |
ordLeq2 (infix "<=o" 50) and |
|
50 |
ordLeq3 (infix "\<le>o" 50) and |
|
51 |
ordLess2 (infix "<o" 50) and |
|
52 |
ordIso2 (infix "=o" 50) and |
|
53 |
card_of ("|_|") and |
|
54 |
BNF_Cardinal_Arithmetic.csum (infixr "+c" 65) and |
|
55 |
BNF_Cardinal_Arithmetic.cprod (infixr "*c" 80) and |
|
56 |
BNF_Cardinal_Arithmetic.cexp (infixr "^c" 90) |
|
57 |
||
58 |
alias cinfinite = BNF_Cardinal_Arithmetic.cinfinite |
|
59 |
alias czero = BNF_Cardinal_Arithmetic.czero |
|
60 |
alias cone = BNF_Cardinal_Arithmetic.cone |
|
61 |
alias ctwo = BNF_Cardinal_Arithmetic.ctwo |
|
74334
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
62 |
|
70078 | 63 |
end |
64 |
||
74334
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
65 |
|
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
66 |
subsection \<open>Lattice syntax\<close> |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
67 |
|
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
68 |
bundle lattice_syntax |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
69 |
begin |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
70 |
|
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
71 |
notation |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
72 |
bot ("\<bottom>") and |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
73 |
top ("\<top>") and |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
74 |
inf (infixl "\<sqinter>" 70) and |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
75 |
sup (infixl "\<squnion>" 65) and |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
76 |
Inf ("\<Sqinter> _" [900] 900) and |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
77 |
Sup ("\<Squnion> _" [900] 900) |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
78 |
|
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
79 |
syntax |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
80 |
"_INF1" :: "pttrns \<Rightarrow> 'b \<Rightarrow> 'b" ("(3\<Sqinter>_./ _)" [0, 10] 10) |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
81 |
"_INF" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'b \<Rightarrow> 'b" ("(3\<Sqinter>_\<in>_./ _)" [0, 0, 10] 10) |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
82 |
"_SUP1" :: "pttrns \<Rightarrow> 'b \<Rightarrow> 'b" ("(3\<Squnion>_./ _)" [0, 10] 10) |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
83 |
"_SUP" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'b \<Rightarrow> 'b" ("(3\<Squnion>_\<in>_./ _)" [0, 0, 10] 10) |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
84 |
|
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
85 |
end |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
86 |
|
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
87 |
bundle no_lattice_syntax |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
88 |
begin |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
89 |
|
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
90 |
no_notation |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
91 |
bot ("\<bottom>") and |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
92 |
top ("\<top>") and |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
93 |
inf (infixl "\<sqinter>" 70) and |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
94 |
sup (infixl "\<squnion>" 65) and |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
95 |
Inf ("\<Sqinter> _" [900] 900) and |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
96 |
Sup ("\<Squnion> _" [900] 900) |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
97 |
|
65814 | 98 |
no_syntax |
99 |
"_INF1" :: "pttrns \<Rightarrow> 'b \<Rightarrow> 'b" ("(3\<Sqinter>_./ _)" [0, 10] 10) |
|
100 |
"_INF" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'b \<Rightarrow> 'b" ("(3\<Sqinter>_\<in>_./ _)" [0, 0, 10] 10) |
|
101 |
"_SUP1" :: "pttrns \<Rightarrow> 'b \<Rightarrow> 'b" ("(3\<Squnion>_./ _)" [0, 10] 10) |
|
102 |
"_SUP" :: "pttrn \<Rightarrow> 'a set \<Rightarrow> 'b \<Rightarrow> 'b" ("(3\<Squnion>_\<in>_./ _)" [0, 0, 10] 10) |
|
103 |
||
65553 | 104 |
end |
74334
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
105 |
|
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
106 |
unbundle no_lattice_syntax |
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
107 |
|
ead56ad40e15
bundle lattice_syntax / no_lattice_syntax supersedes theory HOL-Library.Lattice_Syntax;
wenzelm
parents:
74102
diff
changeset
|
108 |
end |