| author | blanchet |
| Fri, 26 Aug 2011 10:25:13 +0200 | |
| changeset 44509 | 369e8c28a61a |
| parent 43843 | 16f2fd9103bd |
| child 44633 | 8a2fd7418435 |
| permissions | -rw-r--r-- |
| 17644 | 1 |
(* AUTOMATICALLY GENERATED, DO NOT EDIT! *) |
2 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3 |
theory HOLLight imports "../HOLLightCompat" "../HOL4Syntax" begin |
| 17644 | 4 |
|
5 |
;setup_theory hollight |
|
6 |
||
7 |
consts |
|
8 |
"_FALSITY_" :: "bool" ("'_FALSITY'_")
|
|
9 |
||
10 |
defs |
|
11 |
"_FALSITY__def": "_FALSITY_ == False" |
|
12 |
||
13 |
lemma DEF__FALSITY_: "_FALSITY_ = False" |
|
14 |
by (import hollight DEF__FALSITY_) |
|
15 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
16 |
lemma CONJ_ACI: "(p & q) = (q & p) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
17 |
((p & q) & r) = (p & q & r) & |
| 17644 | 18 |
(p & q & r) = (q & p & r) & (p & p) = p & (p & p & q) = (p & q)" |
19 |
by (import hollight CONJ_ACI) |
|
20 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
21 |
lemma DISJ_ACI: "(p | q) = (q | p) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
22 |
((p | q) | r) = (p | q | r) & |
| 17644 | 23 |
(p | q | r) = (q | p | r) & (p | p) = p & (p | p | q) = (p | q)" |
24 |
by (import hollight DISJ_ACI) |
|
25 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
26 |
lemma IMP_CONJ_ALT: "(p & q --> r) = (q --> p --> r)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
27 |
by (import hollight IMP_CONJ_ALT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
28 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
29 |
lemma EQ_CLAUSES: "(True = t) = t & (t = True) = t & (False = t) = (~ t) & (t = False) = (~ t)" |
| 17644 | 30 |
by (import hollight EQ_CLAUSES) |
31 |
||
32 |
lemma NOT_CLAUSES_WEAK: "(~ True) = False & (~ False) = True" |
|
33 |
by (import hollight NOT_CLAUSES_WEAK) |
|
34 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
35 |
lemma AND_CLAUSES: "(True & t) = t & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
36 |
(t & True) = t & (False & t) = False & (t & False) = False & (t & t) = t" |
| 17644 | 37 |
by (import hollight AND_CLAUSES) |
38 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
39 |
lemma OR_CLAUSES: "(True | t) = True & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
40 |
(t | True) = True & (False | t) = t & (t | False) = t & (t | t) = t" |
| 17644 | 41 |
by (import hollight OR_CLAUSES) |
42 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
43 |
lemma IMP_CLAUSES: "(True --> t) = t & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
44 |
(t --> True) = True & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
45 |
(False --> t) = True & (t --> t) = True & (t --> False) = (~ t)" |
| 17644 | 46 |
by (import hollight IMP_CLAUSES) |
47 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
48 |
lemma IMP_EQ_CLAUSE: "((x::'q_851) = x --> (p::bool)) = p" |
| 17644 | 49 |
by (import hollight IMP_EQ_CLAUSE) |
50 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
51 |
lemma TRIV_EXISTS_AND_THM: "(EX x::'A. (P::bool) & (Q::bool)) = ((EX x::'A. P) & (EX x::'A. Q))" |
| 17644 | 52 |
by (import hollight TRIV_EXISTS_AND_THM) |
53 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
54 |
lemma TRIV_AND_EXISTS_THM: "((EX x::'A. (P::bool)) & (EX x::'A. (Q::bool))) = (EX x::'A. P & Q)" |
| 17644 | 55 |
by (import hollight TRIV_AND_EXISTS_THM) |
56 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
57 |
lemma TRIV_FORALL_OR_THM: "(ALL x::'A. (P::bool) | (Q::bool)) = ((ALL x::'A. P) | (ALL x::'A. Q))" |
| 17644 | 58 |
by (import hollight TRIV_FORALL_OR_THM) |
59 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
60 |
lemma TRIV_OR_FORALL_THM: "((ALL x::'A. (P::bool)) | (ALL x::'A. (Q::bool))) = (ALL x::'A. P | Q)" |
| 17644 | 61 |
by (import hollight TRIV_OR_FORALL_THM) |
62 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
63 |
lemma TRIV_FORALL_IMP_THM: "(ALL x::'A. (P::bool) --> (Q::bool)) = ((EX x::'A. P) --> (ALL x::'A. Q))" |
| 17644 | 64 |
by (import hollight TRIV_FORALL_IMP_THM) |
65 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
66 |
lemma TRIV_EXISTS_IMP_THM: "(EX x::'A. (P::bool) --> (Q::bool)) = ((ALL x::'A. P) --> (EX x::'A. Q))" |
| 17644 | 67 |
by (import hollight TRIV_EXISTS_IMP_THM) |
68 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
69 |
lemma EXISTS_UNIQUE_ALT: "Ex1 (P::'A => bool) = (EX x::'A. ALL y::'A. P y = (x = y))" |
| 17644 | 70 |
by (import hollight EXISTS_UNIQUE_ALT) |
71 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
72 |
lemma SELECT_UNIQUE: "(!!y::'A. (P::'A => bool) y = (y = (x::'A))) ==> Eps P = x" |
| 17644 | 73 |
by (import hollight SELECT_UNIQUE) |
74 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
75 |
lemma EXCLUDED_MIDDLE: "t | ~ t" |
| 17644 | 76 |
by (import hollight EXCLUDED_MIDDLE) |
77 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
78 |
lemma COND_CLAUSES: "(if True then x::'A else (xa::'A)) = x & (if False then x else xa) = xa" |
| 17644 | 79 |
by (import hollight COND_CLAUSES) |
80 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
81 |
lemma COND_EXPAND: "(if b then t1 else t2) = ((~ b | t1) & (b | t2))" |
| 17644 | 82 |
by (import hollight COND_EXPAND) |
83 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
84 |
lemma COND_RATOR: "(if b::bool then f::'A => 'B else (g::'A => 'B)) (x::'A) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
85 |
(if b then f x else g x)" |
| 17644 | 86 |
by (import hollight COND_RATOR) |
87 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
88 |
lemma COND_ABS: "(%x::'A. if b::bool then (f::'A => 'B) x else (g::'A => 'B) x) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
89 |
(if b then f else g)" |
| 17644 | 90 |
by (import hollight COND_ABS) |
91 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
92 |
lemma MONO_COND: "[| (A --> B) & (C --> D); if b then A else C |] ==> if b then B else D" |
| 17644 | 93 |
by (import hollight MONO_COND) |
94 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
95 |
lemma SKOLEM_THM: "(ALL x::'A. Ex ((P::'A => 'B => bool) x)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
96 |
(EX x::'A => 'B. ALL xa::'A. P xa (x xa))" |
| 17644 | 97 |
by (import hollight SKOLEM_THM) |
98 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
99 |
lemma UNIQUE_SKOLEM_ALT: "(ALL x::'A. Ex1 ((P::'A => 'B => bool) x)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
100 |
(EX f::'A => 'B. ALL (x::'A) y::'B. P x y = (f x = y))" |
| 17644 | 101 |
by (import hollight UNIQUE_SKOLEM_ALT) |
102 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
103 |
lemma COND_EQ_CLAUSE: "(if (x::'q_2963) = x then y::'q_2956 else (z::'q_2956)) = y" |
| 17644 | 104 |
by (import hollight COND_EQ_CLAUSE) |
105 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
106 |
lemma bool_RECURSION: "EX x::bool => 'A. x False = (a::'A) & x True = (b::'A)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
107 |
by (import hollight bool_RECURSION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
108 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
109 |
lemma o_ASSOC: "(f::'C => 'D) o ((g::'B => 'C) o (h::'A => 'B)) = f o g o h" |
| 17644 | 110 |
by (import hollight o_ASSOC) |
111 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
112 |
lemma I_O_ID: "id o (f::'A => 'B) = f & f o id = f" |
| 17644 | 113 |
by (import hollight I_O_ID) |
114 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
115 |
lemma EXISTS_ONE_REP: "EX x. x" |
| 17644 | 116 |
by (import hollight EXISTS_ONE_REP) |
117 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
118 |
lemma one_axiom: "(f::'A => unit) = (x::'A => unit)" |
| 17644 | 119 |
by (import hollight one_axiom) |
120 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
121 |
lemma one_RECURSION: "EX x::unit => 'A. x () = (e::'A)" |
| 17644 | 122 |
by (import hollight one_RECURSION) |
123 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
124 |
lemma one_Axiom: "EX! fn::unit => 'A. fn () = (e::'A)" |
| 17644 | 125 |
by (import hollight one_Axiom) |
126 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
127 |
lemma th_cond: "(b = False --> x = x0) & (b = True --> x = x1) ==> x = (b & x1 | ~ b & x0)" |
| 17644 | 128 |
by (import hollight th_cond) |
129 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
130 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
131 |
LET_END :: "'A => 'A" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
132 |
"LET_END == %t::'A. t" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
133 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
134 |
lemma DEF_LET_END: "LET_END = (%t::'A. t)" |
| 17644 | 135 |
by (import hollight DEF_LET_END) |
136 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
137 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
138 |
"_SEQPATTERN" :: "('q_4007 => 'q_4004 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
139 |
=> ('q_4007 => 'q_4004 => bool) => 'q_4007 => 'q_4004 => bool" ("'_SEQPATTERN")
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
140 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
141 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
142 |
"_SEQPATTERN_def": "_SEQPATTERN == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
143 |
%(r::'q_4007 => 'q_4004 => bool) (s::'q_4007 => 'q_4004 => bool) x::'q_4007. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
144 |
if Ex (r x) then r x else s x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
145 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
146 |
lemma DEF__SEQPATTERN: "_SEQPATTERN = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
147 |
(%(r::'q_4007 => 'q_4004 => bool) (s::'q_4007 => 'q_4004 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
148 |
x::'q_4007. if Ex (r x) then r x else s x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
149 |
by (import hollight DEF__SEQPATTERN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
150 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
151 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
152 |
"_UNGUARDED_PATTERN" :: "bool => bool => bool" ("'_UNGUARDED'_PATTERN")
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
153 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
154 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
155 |
"_UNGUARDED_PATTERN_def": "_UNGUARDED_PATTERN == op &" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
156 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
157 |
lemma DEF__UNGUARDED_PATTERN: "_UNGUARDED_PATTERN = op &" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
158 |
by (import hollight DEF__UNGUARDED_PATTERN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
159 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
160 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
161 |
"_GUARDED_PATTERN" :: "bool => bool => bool => bool" ("'_GUARDED'_PATTERN")
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
162 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
163 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
164 |
"_GUARDED_PATTERN_def": "_GUARDED_PATTERN == %p g r. p & g & r" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
165 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
166 |
lemma DEF__GUARDED_PATTERN: "_GUARDED_PATTERN = (%p g r. p & g & r)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
167 |
by (import hollight DEF__GUARDED_PATTERN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
168 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
169 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
170 |
"_MATCH" :: "'q_4049 => ('q_4049 => 'q_4053 => bool) => 'q_4053" ("'_MATCH")
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
171 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
172 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
173 |
"_MATCH_def": "_MATCH == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
174 |
%(e::'q_4049) r::'q_4049 => 'q_4053 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
175 |
if Ex1 (r e) then Eps (r e) else SOME z::'q_4053. False" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
176 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
177 |
lemma DEF__MATCH: "_MATCH = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
178 |
(%(e::'q_4049) r::'q_4049 => 'q_4053 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
179 |
if Ex1 (r e) then Eps (r e) else SOME z::'q_4053. False)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
180 |
by (import hollight DEF__MATCH) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
181 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
182 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
183 |
"_FUNCTION" :: "('q_4071 => 'q_4075 => bool) => 'q_4071 => 'q_4075" ("'_FUNCTION")
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
184 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
185 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
186 |
"_FUNCTION_def": "_FUNCTION == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
187 |
%(r::'q_4071 => 'q_4075 => bool) x::'q_4071. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
188 |
if Ex1 (r x) then Eps (r x) else SOME z::'q_4075. False" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
189 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
190 |
lemma DEF__FUNCTION: "_FUNCTION = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
191 |
(%(r::'q_4071 => 'q_4075 => bool) x::'q_4071. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
192 |
if Ex1 (r x) then Eps (r x) else SOME z::'q_4075. False)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
193 |
by (import hollight DEF__FUNCTION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
194 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
195 |
lemma PAIR_EXISTS_THM: "EX (x::'A => 'B => bool) (a::'A) b::'B. x = Pair_Rep a b" |
| 17644 | 196 |
by (import hollight PAIR_EXISTS_THM) |
197 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
198 |
lemma pair_RECURSION: "EX x::'A * 'B => 'C. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
199 |
ALL (a0::'A) a1::'B. x (a0, a1) = (PAIR'::'A => 'B => 'C) a0 a1" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
200 |
by (import hollight pair_RECURSION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
201 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
202 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
203 |
UNCURRY :: "('A => 'B => 'C) => 'A * 'B => 'C" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
204 |
"UNCURRY == %(u::'A => 'B => 'C) ua::'A * 'B. u (fst ua) (snd ua)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
205 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
206 |
lemma DEF_UNCURRY: "UNCURRY = (%(u::'A => 'B => 'C) ua::'A * 'B. u (fst ua) (snd ua))" |
| 17644 | 207 |
by (import hollight DEF_UNCURRY) |
208 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
209 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
210 |
PASSOC :: "(('A * 'B) * 'C => 'D) => 'A * 'B * 'C => 'D" where
|
| 17644 | 211 |
"PASSOC == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
212 |
%(u::('A * 'B) * 'C => 'D) ua::'A * 'B * 'C.
|
| 17644 | 213 |
u ((fst ua, fst (snd ua)), snd (snd ua))" |
214 |
||
215 |
lemma DEF_PASSOC: "PASSOC = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
216 |
(%(u::('A * 'B) * 'C => 'D) ua::'A * 'B * 'C.
|
| 17644 | 217 |
u ((fst ua, fst (snd ua)), snd (snd ua)))" |
218 |
by (import hollight DEF_PASSOC) |
|
219 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
220 |
lemma LAMBDA_PAIR_THM: "(x::'q_4547 * 'q_4546 => 'q_4539) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
221 |
(SOME f::'q_4547 * 'q_4546 => 'q_4539. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
222 |
ALL (xa::'q_4547) y::'q_4546. f (xa, y) = x (xa, y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
223 |
by (import hollight LAMBDA_PAIR_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
224 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
225 |
lemma FORALL_PAIRED_THM: "All (SOME f::'q_4576 * 'q_4575 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
226 |
ALL (x::'q_4576) y::'q_4575. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
227 |
f (x, y) = (P::'q_4576 => 'q_4575 => bool) x y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
228 |
(ALL x::'q_4576. All (P x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
229 |
by (import hollight FORALL_PAIRED_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
230 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
231 |
lemma EXISTS_PAIRED_THM: "Ex (SOME f::'q_4612 * 'q_4611 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
232 |
ALL (x::'q_4612) y::'q_4611. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
233 |
f (x, y) = (P::'q_4612 => 'q_4611 => bool) x y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
234 |
(EX x::'q_4612. Ex (P x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
235 |
by (import hollight EXISTS_PAIRED_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
236 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
237 |
lemma FORALL_TRIPLED_THM: "All (SOME f::'q_4649 * 'q_4648 * 'q_4647 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
238 |
ALL (x::'q_4649) (y::'q_4648) z::'q_4647. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
239 |
f (x, y, z) = (P::'q_4649 => 'q_4648 => 'q_4647 => bool) x y z) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
240 |
(ALL (x::'q_4649) y::'q_4648. All (P x y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
241 |
by (import hollight FORALL_TRIPLED_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
242 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
243 |
lemma EXISTS_TRIPLED_THM: "Ex (SOME f::'q_4695 * 'q_4694 * 'q_4693 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
244 |
ALL (x::'q_4695) (y::'q_4694) z::'q_4693. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
245 |
f (x, y, z) = (P::'q_4695 => 'q_4694 => 'q_4693 => bool) x y z) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
246 |
(EX (x::'q_4695) y::'q_4694. Ex (P x y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
247 |
by (import hollight EXISTS_TRIPLED_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
248 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
249 |
lemma IND_SUC_0_EXISTS: "EX (x::ind => ind) z::ind. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
250 |
(ALL (x1::ind) x2::ind. (x x1 = x x2) = (x1 = x2)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
251 |
(ALL xa::ind. x xa ~= z)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
252 |
by (import hollight IND_SUC_0_EXISTS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
253 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
254 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
255 |
IND_SUC :: "ind => ind" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
256 |
"IND_SUC == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
257 |
SOME f. EX z. (ALL x1 x2. (f x1 = f x2) = (x1 = x2)) & (ALL x. f x ~= z)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
258 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
259 |
lemma DEF_IND_SUC: "IND_SUC = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
260 |
(SOME f. EX z. (ALL x1 x2. (f x1 = f x2) = (x1 = x2)) & (ALL x. f x ~= z))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
261 |
by (import hollight DEF_IND_SUC) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
262 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
263 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
264 |
IND_0 :: "ind" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
265 |
"IND_0 == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
266 |
SOME z. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
267 |
(ALL x1 x2. (IND_SUC x1 = IND_SUC x2) = (x1 = x2)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
268 |
(ALL x. IND_SUC x ~= z)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
269 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
270 |
lemma DEF_IND_0: "IND_0 = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
271 |
(SOME z. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
272 |
(ALL x1 x2. (IND_SUC x1 = IND_SUC x2) = (x1 = x2)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
273 |
(ALL x. IND_SUC x ~= z))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
274 |
by (import hollight DEF_IND_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
275 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
276 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
277 |
NUM_REP :: "ind => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
278 |
"NUM_REP == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
279 |
%a. ALL NUM_REP'. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
280 |
(ALL a. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
281 |
a = IND_0 | (EX i. a = IND_SUC i & NUM_REP' i) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
282 |
NUM_REP' a) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
283 |
NUM_REP' a" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
284 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
285 |
lemma DEF_NUM_REP: "NUM_REP = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
286 |
(%a. ALL NUM_REP'. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
287 |
(ALL a. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
288 |
a = IND_0 | (EX i. a = IND_SUC i & NUM_REP' i) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
289 |
NUM_REP' a) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
290 |
NUM_REP' a)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
291 |
by (import hollight DEF_NUM_REP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
292 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
293 |
lemma num_RECURSION_STD: "EX fn::nat => 'Z. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
294 |
fn (0::nat) = (e::'Z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
295 |
(ALL n::nat. fn (Suc n) = (f::nat => 'Z => 'Z) n (fn n))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
296 |
by (import hollight num_RECURSION_STD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
297 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
298 |
lemma ADD_CLAUSES: "(ALL x::nat. (0::nat) + x = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
299 |
(ALL x::nat. x + (0::nat) = x) & |
| 17644 | 300 |
(ALL (x::nat) xa::nat. Suc x + xa = Suc (x + xa)) & |
301 |
(ALL (x::nat) xa::nat. x + Suc xa = Suc (x + xa))" |
|
302 |
by (import hollight ADD_CLAUSES) |
|
303 |
||
304 |
lemma ADD_AC: "(m::nat) + (n::nat) = n + m & |
|
305 |
m + n + (p::nat) = m + (n + p) & m + (n + p) = n + (m + p)" |
|
306 |
by (import hollight ADD_AC) |
|
307 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
308 |
lemma EQ_ADD_LCANCEL_0: "((m::nat) + (n::nat) = m) = (n = (0::nat))" |
| 17644 | 309 |
by (import hollight EQ_ADD_LCANCEL_0) |
310 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
311 |
lemma EQ_ADD_RCANCEL_0: "((x::nat) + (xa::nat) = xa) = (x = (0::nat))" |
| 17644 | 312 |
by (import hollight EQ_ADD_RCANCEL_0) |
313 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
314 |
lemma BIT1: "2 * x + 1 = Suc (x + x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
315 |
by (import hollight BIT1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
316 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
317 |
lemma BIT1_THM: "2 * x + 1 = Suc (x + x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
318 |
by (import hollight BIT1_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
319 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
320 |
lemma TWO: "2 = Suc 1" |
| 17644 | 321 |
by (import hollight TWO) |
322 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
323 |
lemma MULT_CLAUSES: "(ALL x::nat. (0::nat) * x = (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
324 |
(ALL x::nat. x * (0::nat) = (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
325 |
(ALL x::nat. (1::nat) * x = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
326 |
(ALL x::nat. x * (1::nat) = x) & |
| 17644 | 327 |
(ALL (x::nat) xa::nat. Suc x * xa = x * xa + xa) & |
328 |
(ALL (x::nat) xa::nat. x * Suc xa = x + x * xa)" |
|
329 |
by (import hollight MULT_CLAUSES) |
|
330 |
||
331 |
lemma MULT_AC: "(m::nat) * (n::nat) = n * m & |
|
332 |
m * n * (p::nat) = m * (n * p) & m * (n * p) = n * (m * p)" |
|
333 |
by (import hollight MULT_AC) |
|
334 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
335 |
lemma EXP_EQ_1: "((x::nat) ^ (n::nat) = (1::nat)) = (x = (1::nat) | n = (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
336 |
by (import hollight EXP_EQ_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
337 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
338 |
lemma LT_ANTISYM: "~ ((m::nat) < (n::nat) & n < m)" |
| 17644 | 339 |
by (import hollight LT_ANTISYM) |
340 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
341 |
lemma LET_ANTISYM: "~ ((m::nat) <= (n::nat) & n < m)" |
| 17644 | 342 |
by (import hollight LET_ANTISYM) |
343 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
344 |
lemma LTE_ANTISYM: "~ ((x::nat) < (xa::nat) & xa <= x)" |
| 17644 | 345 |
by (import hollight LTE_ANTISYM) |
346 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
347 |
lemma LT_CASES: "(m::nat) < (n::nat) | n < m | m = n" |
| 17644 | 348 |
by (import hollight LT_CASES) |
349 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
350 |
lemma LTE_CASES: "(x::nat) < (xa::nat) | xa <= x" |
| 17644 | 351 |
by (import hollight LTE_CASES) |
352 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
353 |
lemma LE_1: "(ALL x::nat. x ~= (0::nat) --> (0::nat) < x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
354 |
(ALL x::nat. x ~= (0::nat) --> (1::nat) <= x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
355 |
(ALL x>0::nat. x ~= (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
356 |
(ALL x>0::nat. (1::nat) <= x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
357 |
(ALL x>=1::nat. (0::nat) < x) & (ALL x>=1::nat. x ~= (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
358 |
by (import hollight LE_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
359 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
360 |
lemma LT_EXISTS: "(m < n) = (EX d. n = m + Suc d)" |
| 17644 | 361 |
by (import hollight LT_EXISTS) |
362 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
363 |
lemma LT_ADD: "((m::nat) < m + (n::nat)) = ((0::nat) < n)" |
| 17644 | 364 |
by (import hollight LT_ADD) |
365 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
366 |
lemma LT_ADDR: "((xa::nat) < (x::nat) + xa) = ((0::nat) < x)" |
| 17644 | 367 |
by (import hollight LT_ADDR) |
368 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
369 |
lemma LT_LMULT: "(m::nat) ~= (0::nat) & (n::nat) < (p::nat) ==> m * n < m * p" |
| 17644 | 370 |
by (import hollight LT_LMULT) |
371 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
372 |
lemma LE_MULT_LCANCEL: "((m::nat) * (n::nat) <= m * (p::nat)) = (m = (0::nat) | n <= p)" |
| 17644 | 373 |
by (import hollight LE_MULT_LCANCEL) |
374 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
375 |
lemma LE_MULT_RCANCEL: "((x::nat) * (xb::nat) <= (xa::nat) * xb) = (x <= xa | xb = (0::nat))" |
| 17644 | 376 |
by (import hollight LE_MULT_RCANCEL) |
377 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
378 |
lemma LT_MULT_LCANCEL: "((m::nat) * (n::nat) < m * (p::nat)) = (m ~= (0::nat) & n < p)" |
| 17644 | 379 |
by (import hollight LT_MULT_LCANCEL) |
380 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
381 |
lemma LT_MULT_RCANCEL: "((x::nat) * (xb::nat) < (xa::nat) * xb) = (x < xa & xb ~= (0::nat))" |
| 17644 | 382 |
by (import hollight LT_MULT_RCANCEL) |
383 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
384 |
lemma LT_MULT2: "(m::nat) < (n::nat) & (p::nat) < (q::nat) ==> m * p < n * q" |
| 17644 | 385 |
by (import hollight LT_MULT2) |
386 |
||
387 |
lemma WLOG_LE: "(ALL (m::nat) n::nat. (P::nat => nat => bool) m n = P n m) & |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
388 |
(ALL (m::nat) n::nat. m <= n --> P m n) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
389 |
==> P (m::nat) (x::nat)" |
| 17644 | 390 |
by (import hollight WLOG_LE) |
391 |
||
392 |
lemma WLOG_LT: "(ALL m::nat. (P::nat => nat => bool) m m) & |
|
393 |
(ALL (m::nat) n::nat. P m n = P n m) & |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
394 |
(ALL (m::nat) n::nat. m < n --> P m n) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
395 |
==> P (m::nat) (x::nat)" |
| 17644 | 396 |
by (import hollight WLOG_LT) |
397 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
398 |
lemma num_WOP: "Ex (P::nat => bool) = (EX n::nat. P n & (ALL m<n. ~ P m))" |
| 17644 | 399 |
by (import hollight num_WOP) |
400 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
401 |
lemma num_MAX: "(Ex (P::nat => bool) & (EX M::nat. ALL x::nat. P x --> x <= M)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
402 |
(EX m::nat. P m & (ALL x::nat. P x --> x <= m))" |
| 17644 | 403 |
by (import hollight num_MAX) |
404 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
405 |
lemma NOT_EVEN: "odd (n::nat) = odd n" |
| 17644 | 406 |
by (import hollight NOT_EVEN) |
407 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
408 |
lemma NOT_ODD: "(~ odd (n::nat)) = even n" |
| 17644 | 409 |
by (import hollight NOT_ODD) |
410 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
411 |
lemma EVEN_OR_ODD: "even (n::nat) | odd n" |
| 17644 | 412 |
by (import hollight EVEN_OR_ODD) |
413 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
414 |
lemma EVEN_AND_ODD: "~ (even (x::nat) & odd x)" |
| 17644 | 415 |
by (import hollight EVEN_AND_ODD) |
416 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
417 |
lemma EVEN_EXP: "even ((m::nat) ^ (n::nat)) = (even m & n ~= (0::nat))" |
| 17644 | 418 |
by (import hollight EVEN_EXP) |
419 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
420 |
lemma ODD_MULT: "odd ((m::nat) * (n::nat)) = (odd m & odd n)" |
| 17644 | 421 |
by (import hollight ODD_MULT) |
422 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
423 |
lemma ODD_EXP: "odd ((m::nat) ^ (n::nat)) = (odd m | n = (0::nat))" |
| 17644 | 424 |
by (import hollight ODD_EXP) |
425 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
426 |
lemma EVEN_DOUBLE: "even ((2::nat) * (n::nat))" |
| 17644 | 427 |
by (import hollight EVEN_DOUBLE) |
428 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
429 |
lemma ODD_DOUBLE: "odd (Suc (2 * x))" |
| 17644 | 430 |
by (import hollight ODD_DOUBLE) |
431 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
432 |
lemma EVEN_EXISTS_LEMMA: "(even n --> (EX m. n = 2 * m)) & (odd n --> (EX m. n = Suc (2 * m)))" |
| 17644 | 433 |
by (import hollight EVEN_EXISTS_LEMMA) |
434 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
435 |
lemma EVEN_ODD_DECOMPOSITION: "(EX (k::nat) m::nat. odd m & (n::nat) = (2::nat) ^ k * m) = (n ~= (0::nat))" |
| 17644 | 436 |
by (import hollight EVEN_ODD_DECOMPOSITION) |
437 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
438 |
lemma SUB_0: "(0::nat) - (x::nat) = (0::nat) & x - (0::nat) = x" |
| 17644 | 439 |
by (import hollight SUB_0) |
440 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
441 |
lemma SUB_PRESUC: "Suc m - n - Suc 0 = m - n" |
| 17644 | 442 |
by (import hollight SUB_PRESUC) |
443 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
444 |
lemma ADD_SUBR: "(xa::nat) - ((x::nat) + xa) = (0::nat)" |
| 17644 | 445 |
by (import hollight ADD_SUBR) |
446 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
447 |
lemma EVEN_SUB: "even ((m::nat) - (n::nat)) = (m <= n | even m = even n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
448 |
by (import hollight EVEN_SUB) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
449 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
450 |
lemma ODD_SUB: "odd ((x::nat) - (xa::nat)) = (xa < x & odd x ~= odd xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
451 |
by (import hollight ODD_SUB) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
452 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
453 |
lemma EXP_LT_0: "((0::nat) < (xa::nat) ^ (x::nat)) = (xa ~= (0::nat) | x = (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
454 |
by (import hollight EXP_LT_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
455 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
456 |
lemma LT_EXP: "((x::nat) ^ (m::nat) < x ^ (n::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
457 |
((2::nat) <= x & m < n | x = (0::nat) & m ~= (0::nat) & n = (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
458 |
by (import hollight LT_EXP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
459 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
460 |
lemma LE_EXP: "((x::nat) ^ (m::nat) <= x ^ (n::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
461 |
(if x = (0::nat) then m = (0::nat) --> n = (0::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
462 |
else x = (1::nat) | m <= n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
463 |
by (import hollight LE_EXP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
464 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
465 |
lemma EQ_EXP: "((x::nat) ^ (m::nat) = x ^ (n::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
466 |
(if x = (0::nat) then (m = (0::nat)) = (n = (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
467 |
else x = (1::nat) | m = n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
468 |
by (import hollight EQ_EXP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
469 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
470 |
lemma EXP_MONO_LE_IMP: "(x::nat) <= (xa::nat) ==> x ^ (xb::nat) <= xa ^ xb" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
471 |
by (import hollight EXP_MONO_LE_IMP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
472 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
473 |
lemma EXP_MONO_LT_IMP: "(x::nat) < (y::nat) & (n::nat) ~= (0::nat) ==> x ^ n < y ^ n" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
474 |
by (import hollight EXP_MONO_LT_IMP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
475 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
476 |
lemma EXP_MONO_LE: "((x::nat) ^ (n::nat) <= (y::nat) ^ n) = (x <= y | n = (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
477 |
by (import hollight EXP_MONO_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
478 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
479 |
lemma EXP_MONO_LT: "((x::nat) ^ (xb::nat) < (xa::nat) ^ xb) = (x < xa & xb ~= (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
480 |
by (import hollight EXP_MONO_LT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
481 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
482 |
lemma EXP_MONO_EQ: "((x::nat) ^ (xb::nat) = (xa::nat) ^ xb) = (x = xa | xb = (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
483 |
by (import hollight EXP_MONO_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
484 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
485 |
lemma DIVMOD_EXIST: "(n::nat) ~= (0::nat) ==> EX (q::nat) r::nat. (m::nat) = q * n + r & r < n" |
| 17644 | 486 |
by (import hollight DIVMOD_EXIST) |
487 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
488 |
lemma DIVMOD_EXIST_0: "EX (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
489 |
if (n::nat) = (0::nat) then x = (0::nat) & xa = (m::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
490 |
else m = x * n + xa & xa < n" |
| 17644 | 491 |
by (import hollight DIVMOD_EXIST_0) |
492 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
493 |
lemma DIVISION: "(n::nat) ~= (0::nat) ==> (m::nat) = m div n * n + m mod n & m mod n < n" |
| 17644 | 494 |
by (import hollight DIVISION) |
495 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
496 |
lemma DIVMOD_UNIQ_LEMMA: "((m::nat) = (q1::nat) * (n::nat) + (r1::nat) & r1 < n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
497 |
m = (q2::nat) * n + (r2::nat) & r2 < n |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
498 |
==> q1 = q2 & r1 = r2" |
| 17644 | 499 |
by (import hollight DIVMOD_UNIQ_LEMMA) |
500 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
501 |
lemma DIVMOD_UNIQ: "(m::nat) = (q::nat) * (n::nat) + (r::nat) & r < n |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
502 |
==> m div n = q & m mod n = r" |
| 17644 | 503 |
by (import hollight DIVMOD_UNIQ) |
504 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
505 |
lemma MOD_UNIQ: "(m::nat) = (q::nat) * (n::nat) + (r::nat) & r < n ==> m mod n = r" |
| 17644 | 506 |
by (import hollight MOD_UNIQ) |
507 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
508 |
lemma DIV_UNIQ: "(m::nat) = (q::nat) * (n::nat) + (r::nat) & r < n ==> m div n = q" |
| 17644 | 509 |
by (import hollight DIV_UNIQ) |
510 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
511 |
lemma MOD_EQ: "(m::nat) = (n::nat) + (q::nat) * (p::nat) ==> m mod p = n mod p" |
| 17644 | 512 |
by (import hollight MOD_EQ) |
513 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
514 |
lemma DIV_LE: "(n::nat) ~= (0::nat) ==> (m::nat) div n <= m" |
| 17644 | 515 |
by (import hollight DIV_LE) |
516 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
517 |
lemma DIV_MUL_LE: "(n::nat) * ((m::nat) div n) <= m" |
| 17644 | 518 |
by (import hollight DIV_MUL_LE) |
519 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
520 |
lemma MOD_MOD: "(n::nat) * (p::nat) ~= (0::nat) ==> (m::nat) mod (n * p) mod n = m mod n" |
| 17644 | 521 |
by (import hollight MOD_MOD) |
522 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
523 |
lemma MOD_MOD_REFL: "(n::nat) ~= (0::nat) ==> (m::nat) mod n mod n = m mod n" |
| 17644 | 524 |
by (import hollight MOD_MOD_REFL) |
525 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
526 |
lemma DIV_MULT2: "(x::nat) * (xb::nat) ~= (0::nat) ==> x * (xa::nat) div (x * xb) = xa div xb" |
| 17644 | 527 |
by (import hollight DIV_MULT2) |
528 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
529 |
lemma MOD_MULT2: "(x::nat) * (xb::nat) ~= (0::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
530 |
==> x * (xa::nat) mod (x * xb) = x * (xa mod xb)" |
| 17644 | 531 |
by (import hollight MOD_MULT2) |
532 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
533 |
lemma MOD_EXISTS: "(EX q::nat. (m::nat) = (n::nat) * q) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
534 |
(if n = (0::nat) then m = (0::nat) else m mod n = (0::nat))" |
| 17644 | 535 |
by (import hollight MOD_EXISTS) |
536 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
537 |
lemma LE_RDIV_EQ: "(a::nat) ~= (0::nat) ==> ((n::nat) <= (b::nat) div a) = (a * n <= b)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
538 |
by (import hollight LE_RDIV_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
539 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
540 |
lemma LE_LDIV_EQ: "(a::nat) ~= (0::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
541 |
==> ((b::nat) div a <= (n::nat)) = (b < a * (n + (1::nat)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
542 |
by (import hollight LE_LDIV_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
543 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
544 |
lemma LE_LDIV: "(x::nat) ~= (0::nat) & (xa::nat) <= x * (xb::nat) ==> xa div x <= xb" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
545 |
by (import hollight LE_LDIV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
546 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
547 |
lemma DIV_MONO: "(p::nat) ~= (0::nat) & (m::nat) <= (n::nat) ==> m div p <= n div p" |
| 17644 | 548 |
by (import hollight DIV_MONO) |
549 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
550 |
lemma DIV_MONO_LT: "(p::nat) ~= (0::nat) & (m::nat) + p <= (n::nat) ==> m div p < n div p" |
| 17644 | 551 |
by (import hollight DIV_MONO_LT) |
552 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
553 |
lemma DIV_EQ_0: "(n::nat) ~= (0::nat) ==> ((m::nat) div n = (0::nat)) = (m < n)" |
| 17644 | 554 |
by (import hollight DIV_EQ_0) |
555 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
556 |
lemma MOD_EQ_0: "(n::nat) ~= (0::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
557 |
==> ((m::nat) mod n = (0::nat)) = (EX q::nat. m = q * n)" |
| 17644 | 558 |
by (import hollight MOD_EQ_0) |
559 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
560 |
lemma EVEN_MOD: "even (n::nat) = (n mod (2::nat) = (0::nat))" |
| 17644 | 561 |
by (import hollight EVEN_MOD) |
562 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
563 |
lemma ODD_MOD: "odd (n::nat) = (n mod (2::nat) = (1::nat))" |
| 17644 | 564 |
by (import hollight ODD_MOD) |
565 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
566 |
lemma MOD_MULT_RMOD: "(n::nat) ~= (0::nat) ==> (m::nat) * ((p::nat) mod n) mod n = m * p mod n" |
| 17644 | 567 |
by (import hollight MOD_MULT_RMOD) |
568 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
569 |
lemma MOD_MULT_LMOD: "(xa::nat) ~= (0::nat) ==> (x::nat) mod xa * (xb::nat) mod xa = x * xb mod xa" |
| 17644 | 570 |
by (import hollight MOD_MULT_LMOD) |
571 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
572 |
lemma MOD_MULT_MOD2: "(xa::nat) ~= (0::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
573 |
==> (x::nat) mod xa * ((xb::nat) mod xa) mod xa = x * xb mod xa" |
| 17644 | 574 |
by (import hollight MOD_MULT_MOD2) |
575 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
576 |
lemma MOD_EXP_MOD: "(n::nat) ~= (0::nat) ==> ((m::nat) mod n) ^ (p::nat) mod n = m ^ p mod n" |
| 17644 | 577 |
by (import hollight MOD_EXP_MOD) |
578 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
579 |
lemma MOD_ADD_MOD: "(n::nat) ~= (0::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
580 |
==> ((a::nat) mod n + (b::nat) mod n) mod n = (a + b) mod n" |
| 17644 | 581 |
by (import hollight MOD_ADD_MOD) |
582 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
583 |
lemma DIV_ADD_MOD: "(n::nat) ~= (0::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
584 |
==> (((a::nat) + (b::nat)) mod n = a mod n + b mod n) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
585 |
((a + b) div n = a div n + b div n)" |
| 17644 | 586 |
by (import hollight DIV_ADD_MOD) |
587 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
588 |
lemma MOD_LE: "(n::nat) ~= (0::nat) ==> (m::nat) mod n <= m" |
| 17644 | 589 |
by (import hollight MOD_LE) |
590 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
591 |
lemma DIV_MONO2: "(p::nat) ~= (0::nat) & p <= (m::nat) ==> (n::nat) div m <= n div p" |
| 17644 | 592 |
by (import hollight DIV_MONO2) |
593 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
594 |
lemma DIV_LE_EXCLUSION: "(b::nat) ~= (0::nat) & b * (c::nat) < ((a::nat) + (1::nat)) * (d::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
595 |
==> c div d <= a div b" |
| 17644 | 596 |
by (import hollight DIV_LE_EXCLUSION) |
597 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
598 |
lemma DIV_EQ_EXCLUSION: "(b::nat) * (c::nat) < ((a::nat) + (1::nat)) * (d::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
599 |
a * d < (c + (1::nat)) * b |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
600 |
==> a div b = c div d" |
| 17644 | 601 |
by (import hollight DIV_EQ_EXCLUSION) |
602 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
603 |
lemma MULT_DIV_LE: "(p::nat) ~= (0::nat) ==> (m::nat) * ((n::nat) div p) <= m * n div p" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
604 |
by (import hollight MULT_DIV_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
605 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
606 |
lemma DIV_DIV: "(xa::nat) * (xb::nat) ~= (0::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
607 |
==> (x::nat) div xa div xb = x div (xa * xb)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
608 |
by (import hollight DIV_DIV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
609 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
610 |
lemma DIV_MOD: "(xa::nat) * (xb::nat) ~= (0::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
611 |
==> (x::nat) div xa mod xb = x mod (xa * xb) div xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
612 |
by (import hollight DIV_MOD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
613 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
614 |
lemma PRE_ELIM_THM: "P (n - Suc 0) = (ALL m. n = Suc m | m = 0 & n = 0 --> P m)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
615 |
by (import hollight PRE_ELIM_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
616 |
|
| 17644 | 617 |
lemma SUB_ELIM_THM: "(P::nat => bool) ((a::nat) - (b::nat)) = |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
618 |
(ALL d::nat. a = b + d | a < b & d = (0::nat) --> P d)" |
| 17644 | 619 |
by (import hollight SUB_ELIM_THM) |
620 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
621 |
lemma DIVMOD_ELIM_THM: "(P::nat => nat => bool) ((m::nat) div (n::nat)) (m mod n) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
622 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
623 |
n = (0::nat) & x = (0::nat) & xa = m | m = x * n + xa & xa < n --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
624 |
P x xa)" |
| 17644 | 625 |
by (import hollight DIVMOD_ELIM_THM) |
626 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
627 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
628 |
minimal :: "(nat => bool) => nat" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
629 |
"minimal == %u. SOME n. u n & (ALL m<n. ~ u m)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
630 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
631 |
lemma DEF_minimal: "minimal = (%u. SOME n. u n & (ALL m<n. ~ u m))" |
| 17644 | 632 |
by (import hollight DEF_minimal) |
633 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
634 |
lemma MINIMAL: "Ex P = (P (minimal P) & (ALL x<minimal P. ~ P x))" |
| 17644 | 635 |
by (import hollight MINIMAL) |
636 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
637 |
lemma TRANSITIVE_STEPWISE_LT_EQ: "(!!x y z. R x y & R y z ==> R x z) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
638 |
==> (ALL m n. m < n --> R m n) = (ALL n. R n (Suc n))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
639 |
by (import hollight TRANSITIVE_STEPWISE_LT_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
640 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
641 |
lemma TRANSITIVE_STEPWISE_LT: "[| (ALL x y z. R x y & R y z --> R x z) & (ALL n. R n (Suc n)); m < n |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
642 |
==> R m n" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
643 |
by (import hollight TRANSITIVE_STEPWISE_LT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
644 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
645 |
lemma TRANSITIVE_STEPWISE_LE_EQ: "(ALL x. R x x) & (ALL x y z. R x y & R y z --> R x z) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
646 |
==> (ALL m n. m <= n --> R m n) = (ALL n. R n (Suc n))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
647 |
by (import hollight TRANSITIVE_STEPWISE_LE_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
648 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
649 |
lemma TRANSITIVE_STEPWISE_LE: "[| (ALL x. R x x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
650 |
(ALL x y z. R x y & R y z --> R x z) & (ALL n. R n (Suc n)); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
651 |
m <= n |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
652 |
==> R m n" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
653 |
by (import hollight TRANSITIVE_STEPWISE_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
654 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
655 |
lemma WF_EQ: "wfP (u_556::'A => 'A => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
656 |
(ALL P::'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
657 |
Ex P = (EX x::'A. P x & (ALL y::'A. u_556 y x --> ~ P y)))" |
| 17644 | 658 |
by (import hollight WF_EQ) |
659 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
660 |
lemma WF_IND: "wfP (u_556::'A => 'A => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
661 |
(ALL P::'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
662 |
(ALL x::'A. (ALL y::'A. u_556 y x --> P y) --> P x) --> All P)" |
| 17644 | 663 |
by (import hollight WF_IND) |
664 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
665 |
lemma WF_DCHAIN: "wfP (u_556::'A => 'A => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
666 |
(~ (EX s::nat => 'A. ALL n::nat. u_556 (s (Suc n)) (s n)))" |
| 17644 | 667 |
by (import hollight WF_DCHAIN) |
668 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
669 |
lemma WF_UREC: "[| wfP (u_556::'A => 'A => bool); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
670 |
!!(f::'A => 'B) (g::'A => 'B) x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
671 |
(!!z::'A. u_556 z x ==> f z = g z) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
672 |
==> (H::('A => 'B) => 'A => 'B) f x = H g x;
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
673 |
(ALL x::'A. (f::'A => 'B) x = H f x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
674 |
(ALL x::'A. (g::'A => 'B) x = H g x) |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
675 |
==> f = g" |
| 17644 | 676 |
by (import hollight WF_UREC) |
677 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
678 |
lemma WF_UREC_WF: "(!!(H::('A => bool) => 'A => bool) (f::'A => bool) g::'A => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
679 |
[| !!(f::'A => bool) (g::'A => bool) x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
680 |
(!!z::'A. (u_556::'A => 'A => bool) z x ==> f z = g z) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
681 |
==> H f x = H g x; |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
682 |
(ALL x::'A. f x = H f x) & (ALL x::'A. g x = H g x) |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
683 |
==> f = g) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
684 |
==> wfP u_556" |
| 17644 | 685 |
by (import hollight WF_UREC_WF) |
686 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
687 |
lemma WF_REC_INVARIANT: "[| wfP (u_556::'A => 'A => bool); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
688 |
!!(f::'A => 'B) (g::'A => 'B) x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
689 |
(!!z::'A. u_556 z x ==> f z = g z & (S::'A => 'B => bool) z (f z)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
690 |
==> (H::('A => 'B) => 'A => 'B) f x = H g x & S x (H f x) |]
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
691 |
==> EX f::'A => 'B. ALL x::'A. f x = H f x" |
| 17644 | 692 |
by (import hollight WF_REC_INVARIANT) |
693 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
694 |
lemma WF_REC: "[| wfP (u_556::'A => 'A => bool); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
695 |
!!(f::'A => 'B) (g::'A => 'B) x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
696 |
(!!z::'A. u_556 z x ==> f z = g z) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
697 |
==> (H::('A => 'B) => 'A => 'B) f x = H g x |]
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
698 |
==> EX f::'A => 'B. ALL x::'A. f x = H f x" |
| 17644 | 699 |
by (import hollight WF_REC) |
700 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
701 |
lemma WF_REC_WF: "(!!H::('A => nat) => 'A => nat.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
702 |
(!!(f::'A => nat) (g::'A => nat) x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
703 |
(!!z::'A. (u_556::'A => 'A => bool) z x ==> f z = g z) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
704 |
==> H f x = H g x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
705 |
==> EX f::'A => nat. ALL x::'A. f x = H f x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
706 |
==> wfP u_556" |
| 17644 | 707 |
by (import hollight WF_REC_WF) |
708 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
709 |
lemma WF_EREC: "[| wfP (u_556::'A => 'A => bool); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
710 |
!!(f::'A => 'B) (g::'A => 'B) x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
711 |
(!!z::'A. u_556 z x ==> f z = g z) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
712 |
==> (H::('A => 'B) => 'A => 'B) f x = H g x |]
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
713 |
==> EX! f::'A => 'B. ALL x::'A. f x = H f x" |
| 17644 | 714 |
by (import hollight WF_EREC) |
715 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
716 |
lemma WF_SUBSET: "(ALL (x::'A) y::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
717 |
(u_556::'A => 'A => bool) x y --> (u_670::'A => 'A => bool) x y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
718 |
wfP u_670 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
719 |
==> wfP u_556" |
| 17644 | 720 |
by (import hollight WF_SUBSET) |
721 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
722 |
lemma WF_MEASURE_GEN: "wfP (u_556::'B => 'B => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
723 |
==> wfP (%(x::'A) x'::'A. u_556 ((m::'A => 'B) x) (m x'))" |
| 17644 | 724 |
by (import hollight WF_MEASURE_GEN) |
725 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
726 |
lemma WF_LEX_DEPENDENT: "wfP (R::'A => 'A => bool) & (ALL x::'A. wfP ((S::'A => 'B => 'B => bool) x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
727 |
==> wfP (SOME f::'A * 'B => 'A * 'B => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
728 |
ALL (r1::'A) s1::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
729 |
f (r1, s1) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
730 |
(SOME f::'A * 'B => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
731 |
ALL (r2::'A) s2::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
732 |
f (r2, s2) = (R r1 r2 | r1 = r2 & S r1 s1 s2)))" |
| 17644 | 733 |
by (import hollight WF_LEX_DEPENDENT) |
734 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
735 |
lemma WF_LEX: "wfP (x::'A => 'A => bool) & wfP (xa::'B => 'B => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
736 |
==> wfP (SOME f::'A * 'B => 'A * 'B => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
737 |
ALL (r1::'A) s1::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
738 |
f (r1, s1) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
739 |
(SOME f::'A * 'B => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
740 |
ALL (r2::'A) s2::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
741 |
f (r2, s2) = (x r1 r2 | r1 = r2 & xa s1 s2)))" |
| 17644 | 742 |
by (import hollight WF_LEX) |
743 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
744 |
lemma WF_POINTWISE: "wfP (u_556::'A => 'A => bool) & wfP (u_670::'B => 'B => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
745 |
==> wfP (SOME f::'A * 'B => 'A * 'B => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
746 |
ALL (x1::'A) y1::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
747 |
f (x1, y1) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
748 |
(SOME f::'A * 'B => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
749 |
ALL (x2::'A) y2::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
750 |
f (x2, y2) = (u_556 x1 x2 & u_670 y1 y2)))" |
| 17644 | 751 |
by (import hollight WF_POINTWISE) |
752 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
753 |
lemma WF_num: "(wfP::(nat => nat => bool) => bool) (op <::nat => nat => bool)" |
| 17644 | 754 |
by (import hollight WF_num) |
755 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
756 |
lemma WF_REC_num: "(!!(f::nat => 'A) (g::nat => 'A) x::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
757 |
(!!z::nat. z < x ==> f z = g z) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
758 |
==> (H::(nat => 'A) => nat => 'A) f x = H g x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
759 |
==> EX f::nat => 'A. ALL x::nat. f x = H f x" |
| 17644 | 760 |
by (import hollight WF_REC_num) |
761 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
762 |
lemma WF_MEASURE: "wfP (%(a::'A) b::'A. measure (m::'A => nat) (a, b))" |
| 17644 | 763 |
by (import hollight WF_MEASURE) |
764 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
765 |
lemma MEASURE_LE: "(ALL x::'q_12099. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
766 |
measure (m::'q_12099 => nat) (x, a::'q_12099) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
767 |
measure m (x, b::'q_12099)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
768 |
(m a <= m b)" |
| 17644 | 769 |
by (import hollight MEASURE_LE) |
770 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
771 |
lemma WF_REFL: "wfP (u_556::'A => 'A => bool) ==> ~ u_556 (x::'A) x" |
| 17644 | 772 |
by (import hollight WF_REFL) |
773 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
774 |
lemma WF_REC_TAIL: "EX f::'A => 'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
775 |
ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
776 |
f x = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
777 |
(if (P::'A => bool) x then f ((g::'A => 'A) x) else (h::'A => 'B) x)" |
| 17644 | 778 |
by (import hollight WF_REC_TAIL) |
779 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
780 |
lemma WF_REC_TAIL_GENERAL: "wfP (u_556::'A => 'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
781 |
(ALL (f::'A => 'B) (g::'A => 'B) x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
782 |
(ALL z::'A. u_556 z x --> f z = g z) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
783 |
(P::('A => 'B) => 'A => bool) f x = P g x &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
784 |
(G::('A => 'B) => 'A => 'A) f x = G g x &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
785 |
(H::('A => 'B) => 'A => 'B) f x = H g x) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
786 |
(ALL (f::'A => 'B) (g::'A => 'B) x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
787 |
(ALL z::'A. u_556 z x --> f z = g z) --> H f x = H g x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
788 |
(ALL (f::'A => 'B) (x::'A) y::'A. P f x & u_556 y (G f x) --> u_556 y x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
789 |
==> EX f::'A => 'B. ALL x::'A. f x = (if P f x then f (G f x) else H f x)" |
| 17644 | 790 |
by (import hollight WF_REC_TAIL_GENERAL) |
791 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
792 |
lemma ARITH_ZERO: "(0::nat) = (0::nat) & (0::nat) = (0::nat)" |
| 17644 | 793 |
by (import hollight ARITH_ZERO) |
794 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
795 |
lemma ARITH_SUC: "(ALL x. Suc x = Suc x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
796 |
Suc 0 = 1 & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
797 |
(ALL x. Suc (2 * x) = 2 * x + 1) & (ALL x. Suc (2 * x + 1) = 2 * Suc x)" |
| 17644 | 798 |
by (import hollight ARITH_SUC) |
799 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
800 |
lemma ARITH_PRE: "(ALL x. x - Suc 0 = x - Suc 0) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
801 |
0 - Suc 0 = 0 & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
802 |
(ALL x. 2 * x - Suc 0 = (if x = 0 then 0 else 2 * (x - Suc 0) + 1)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
803 |
(ALL x. 2 * x + 1 - Suc 0 = 2 * x)" |
| 17644 | 804 |
by (import hollight ARITH_PRE) |
805 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
806 |
lemma ARITH_ADD: "(ALL (x::nat) xa::nat. x + xa = x + xa) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
807 |
(0::nat) + (0::nat) = (0::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
808 |
(ALL x::nat. (0::nat) + (2::nat) * x = (2::nat) * x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
809 |
(ALL x::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
810 |
(0::nat) + ((2::nat) * x + (1::nat)) = (2::nat) * x + (1::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
811 |
(ALL x::nat. (2::nat) * x + (0::nat) = (2::nat) * x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
812 |
(ALL x::nat. (2::nat) * x + (1::nat) + (0::nat) = (2::nat) * x + (1::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
813 |
(ALL (x::nat) xa::nat. (2::nat) * x + (2::nat) * xa = (2::nat) * (x + xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
814 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
815 |
(2::nat) * x + ((2::nat) * xa + (1::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
816 |
(2::nat) * (x + xa) + (1::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
817 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
818 |
(2::nat) * x + (1::nat) + (2::nat) * xa = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
819 |
(2::nat) * (x + xa) + (1::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
820 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
821 |
(2::nat) * x + (1::nat) + ((2::nat) * xa + (1::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
822 |
(2::nat) * Suc (x + xa))" |
| 17644 | 823 |
by (import hollight ARITH_ADD) |
824 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
825 |
lemma ARITH_MULT: "(ALL (x::nat) xa::nat. x * xa = x * xa) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
826 |
(0::nat) * (0::nat) = (0::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
827 |
(ALL x::nat. (0::nat) * ((2::nat) * x) = (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
828 |
(ALL x::nat. (0::nat) * ((2::nat) * x + (1::nat)) = (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
829 |
(ALL x::nat. (2::nat) * x * (0::nat) = (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
830 |
(ALL x::nat. ((2::nat) * x + (1::nat)) * (0::nat) = (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
831 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
832 |
(2::nat) * x * ((2::nat) * xa) = (2::nat) * ((2::nat) * (x * xa))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
833 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
834 |
(2::nat) * x * ((2::nat) * xa + (1::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
835 |
(2::nat) * x + (2::nat) * ((2::nat) * (x * xa))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
836 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
837 |
((2::nat) * x + (1::nat)) * ((2::nat) * xa) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
838 |
(2::nat) * xa + (2::nat) * ((2::nat) * (x * xa))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
839 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
840 |
((2::nat) * x + (1::nat)) * ((2::nat) * xa + (1::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
841 |
(2::nat) * x + (1::nat) + |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
842 |
((2::nat) * xa + (2::nat) * ((2::nat) * (x * xa))))" |
| 17644 | 843 |
by (import hollight ARITH_MULT) |
844 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
845 |
lemma ARITH_EXP: "(ALL (x::nat) xa::nat. x ^ xa = x ^ xa) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
846 |
(0::nat) ^ (0::nat) = (1::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
847 |
(ALL m::nat. ((2::nat) * m) ^ (0::nat) = (1::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
848 |
(ALL m::nat. ((2::nat) * m + (1::nat)) ^ (0::nat) = (1::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
849 |
(ALL n::nat. (0::nat) ^ ((2::nat) * n) = (0::nat) ^ n * (0::nat) ^ n) & |
| 17644 | 850 |
(ALL (m::nat) n::nat. |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
851 |
((2::nat) * m) ^ ((2::nat) * n) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
852 |
((2::nat) * m) ^ n * ((2::nat) * m) ^ n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
853 |
(ALL (m::nat) n::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
854 |
((2::nat) * m + (1::nat)) ^ ((2::nat) * n) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
855 |
((2::nat) * m + (1::nat)) ^ n * ((2::nat) * m + (1::nat)) ^ n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
856 |
(ALL n::nat. (0::nat) ^ ((2::nat) * n + (1::nat)) = (0::nat)) & |
| 17644 | 857 |
(ALL (m::nat) n::nat. |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
858 |
((2::nat) * m) ^ ((2::nat) * n + (1::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
859 |
(2::nat) * m * (((2::nat) * m) ^ n * ((2::nat) * m) ^ n)) & |
| 17644 | 860 |
(ALL (m::nat) n::nat. |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
861 |
((2::nat) * m + (1::nat)) ^ ((2::nat) * n + (1::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
862 |
((2::nat) * m + (1::nat)) * |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
863 |
(((2::nat) * m + (1::nat)) ^ n * ((2::nat) * m + (1::nat)) ^ n))" |
| 17644 | 864 |
by (import hollight ARITH_EXP) |
865 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
866 |
lemma ARITH_EVEN: "(ALL x::nat. even x = even x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
867 |
even (0::nat) = True & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
868 |
(ALL x::nat. even ((2::nat) * x) = True) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
869 |
(ALL x::nat. even ((2::nat) * x + (1::nat)) = False)" |
| 17644 | 870 |
by (import hollight ARITH_EVEN) |
871 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
872 |
lemma ARITH_ODD: "(ALL x::nat. odd x = odd x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
873 |
odd (0::nat) = False & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
874 |
(ALL x::nat. odd ((2::nat) * x) = False) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
875 |
(ALL x::nat. odd ((2::nat) * x + (1::nat)) = True)" |
| 17644 | 876 |
by (import hollight ARITH_ODD) |
877 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
878 |
lemma ARITH_LE: "(ALL (x::nat) xa::nat. (x <= xa) = (x <= xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
879 |
((0::nat) <= (0::nat)) = True & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
880 |
(ALL x::nat. ((2::nat) * x <= (0::nat)) = (x <= (0::nat))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
881 |
(ALL x::nat. ((2::nat) * x + (1::nat) <= (0::nat)) = False) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
882 |
(ALL x::nat. ((0::nat) <= (2::nat) * x) = True) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
883 |
(ALL x::nat. ((0::nat) <= (2::nat) * x + (1::nat)) = True) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
884 |
(ALL (x::nat) xa::nat. ((2::nat) * x <= (2::nat) * xa) = (x <= xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
885 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
886 |
((2::nat) * x <= (2::nat) * xa + (1::nat)) = (x <= xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
887 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
888 |
((2::nat) * x + (1::nat) <= (2::nat) * xa) = (x < xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
889 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
890 |
((2::nat) * x + (1::nat) <= (2::nat) * xa + (1::nat)) = (x <= xa))" |
| 17644 | 891 |
by (import hollight ARITH_LE) |
892 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
893 |
lemma ARITH_LT: "(ALL (x::nat) xa::nat. (x < xa) = (x < xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
894 |
((0::nat) < (0::nat)) = False & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
895 |
(ALL x::nat. ((2::nat) * x < (0::nat)) = False) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
896 |
(ALL x::nat. ((2::nat) * x + (1::nat) < (0::nat)) = False) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
897 |
(ALL x::nat. ((0::nat) < (2::nat) * x) = ((0::nat) < x)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
898 |
(ALL x::nat. ((0::nat) < (2::nat) * x + (1::nat)) = True) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
899 |
(ALL (x::nat) xa::nat. ((2::nat) * x < (2::nat) * xa) = (x < xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
900 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
901 |
((2::nat) * x < (2::nat) * xa + (1::nat)) = (x <= xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
902 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
903 |
((2::nat) * x + (1::nat) < (2::nat) * xa) = (x < xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
904 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
905 |
((2::nat) * x + (1::nat) < (2::nat) * xa + (1::nat)) = (x < xa))" |
| 17644 | 906 |
by (import hollight ARITH_LT) |
907 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
908 |
lemma ARITH_EQ: "(ALL (x::nat) xa::nat. (x = xa) = (x = xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
909 |
((0::nat) = (0::nat)) = True & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
910 |
(ALL x::nat. ((2::nat) * x = (0::nat)) = (x = (0::nat))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
911 |
(ALL x::nat. ((2::nat) * x + (1::nat) = (0::nat)) = False) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
912 |
(ALL x::nat. ((0::nat) = (2::nat) * x) = ((0::nat) = x)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
913 |
(ALL x::nat. ((0::nat) = (2::nat) * x + (1::nat)) = False) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
914 |
(ALL (x::nat) xa::nat. ((2::nat) * x = (2::nat) * xa) = (x = xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
915 |
(ALL (x::nat) xa::nat. ((2::nat) * x = (2::nat) * xa + (1::nat)) = False) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
916 |
(ALL (x::nat) xa::nat. ((2::nat) * x + (1::nat) = (2::nat) * xa) = False) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
917 |
(ALL (x::nat) xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
918 |
((2::nat) * x + (1::nat) = (2::nat) * xa + (1::nat)) = (x = xa))" |
| 17644 | 919 |
by (import hollight ARITH_EQ) |
920 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
921 |
lemma ARITH_SUB: "(ALL (x::nat) xa::nat. x - xa = x - xa) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
922 |
(0::nat) - (0::nat) = (0::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
923 |
(ALL x::nat. (0::nat) - (2::nat) * x = (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
924 |
(ALL x::nat. (0::nat) - ((2::nat) * x + (1::nat)) = (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
925 |
(ALL x::nat. (2::nat) * x - (0::nat) = (2::nat) * x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
926 |
(ALL x::nat. (2::nat) * x + (1::nat) - (0::nat) = (2::nat) * x + (1::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
927 |
(ALL (m::nat) n::nat. (2::nat) * m - (2::nat) * n = (2::nat) * (m - n)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
928 |
(ALL (m::nat) n::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
929 |
(2::nat) * m - ((2::nat) * n + (1::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
930 |
(2::nat) * (m - n) - Suc (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
931 |
(ALL (m::nat) n::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
932 |
(2::nat) * m + (1::nat) - (2::nat) * n = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
933 |
(if n <= m then (2::nat) * (m - n) + (1::nat) else (0::nat))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
934 |
(ALL (m::nat) n::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
935 |
(2::nat) * m + (1::nat) - ((2::nat) * n + (1::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
936 |
(2::nat) * (m - n))" |
| 17644 | 937 |
by (import hollight ARITH_SUB) |
938 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
939 |
lemma right_th: "(s::nat) * ((2::nat) * (x::nat) + (1::nat)) = s + (2::nat) * (s * x)" |
| 17644 | 940 |
by (import hollight right_th) |
941 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
942 |
lemma SEMIRING_PTHS: "(ALL (x::'A) (y::'A) z::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
943 |
(add::'A => 'A => 'A) x (add y z) = add (add x y) z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
944 |
(ALL (x::'A) y::'A. add x y = add y x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
945 |
(ALL x::'A. add (r0::'A) x = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
946 |
(ALL (x::'A) (y::'A) z::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
947 |
(mul::'A => 'A => 'A) x (mul y z) = mul (mul x y) z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
948 |
(ALL (x::'A) y::'A. mul x y = mul y x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
949 |
(ALL x::'A. mul (r1::'A) x = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
950 |
(ALL x::'A. mul r0 x = r0) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
951 |
(ALL (x::'A) (y::'A) z::'A. mul x (add y z) = add (mul x y) (mul x z)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
952 |
(ALL x::'A. (pwr::'A => nat => 'A) x (0::nat) = r1) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
953 |
(ALL (x::'A) n::nat. pwr x (Suc n) = mul x (pwr x n)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
954 |
==> mul r1 (x::'A) = x & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
955 |
add (mul (a::'A) (m::'A)) (mul (b::'A) m) = mul (add a b) m & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
956 |
add (mul a m) m = mul (add a r1) m & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
957 |
add m (mul a m) = mul (add a r1) m & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
958 |
add m m = mul (add r1 r1) m & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
959 |
mul r0 m = r0 & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
960 |
add r0 a = a & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
961 |
add a r0 = a & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
962 |
mul a b = mul b a & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
963 |
mul (add a b) (c::'A) = add (mul a c) (mul b c) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
964 |
mul r0 a = r0 & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
965 |
mul a r0 = r0 & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
966 |
mul r1 a = a & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
967 |
mul a r1 = a & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
968 |
mul (mul (lx::'A) (ly::'A)) (mul (rx::'A) (ry::'A)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
969 |
mul (mul lx rx) (mul ly ry) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
970 |
mul (mul lx ly) (mul rx ry) = mul lx (mul ly (mul rx ry)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
971 |
mul (mul lx ly) (mul rx ry) = mul rx (mul (mul lx ly) ry) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
972 |
mul (mul lx ly) rx = mul (mul lx rx) ly & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
973 |
mul (mul lx ly) rx = mul lx (mul ly rx) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
974 |
mul lx rx = mul rx lx & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
975 |
mul lx (mul rx ry) = mul (mul lx rx) ry & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
976 |
mul lx (mul rx ry) = mul rx (mul lx ry) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
977 |
add (add a b) (add c (d::'A)) = add (add a c) (add b d) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
978 |
add (add a b) c = add a (add b c) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
979 |
add a (add c d) = add c (add a d) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
980 |
add (add a b) c = add (add a c) b & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
981 |
add a c = add c a & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
982 |
add a (add c d) = add (add a c) d & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
983 |
mul (pwr x (p::nat)) (pwr x (q::nat)) = pwr x (p + q) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
984 |
mul x (pwr x q) = pwr x (Suc q) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
985 |
mul (pwr x q) x = pwr x (Suc q) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
986 |
mul x x = pwr x (2::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
987 |
pwr (mul x (y::'A)) q = mul (pwr x q) (pwr y q) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
988 |
pwr (pwr x p) q = pwr x (p * q) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
989 |
pwr x (0::nat) = r1 & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
990 |
pwr x (1::nat) = x & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
991 |
mul x (add y (z::'A)) = add (mul x y) (mul x z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
992 |
pwr x (Suc q) = mul x (pwr x q)" |
| 17644 | 993 |
by (import hollight SEMIRING_PTHS) |
994 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
995 |
lemma NUM_INTEGRAL_LEMMA: "(w::nat) = (x::nat) + (d::nat) & (y::nat) = (z::nat) + (e::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
996 |
==> (w * y + x * z = w * z + x * y) = (w = x | y = z)" |
| 17644 | 997 |
by (import hollight NUM_INTEGRAL_LEMMA) |
998 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
999 |
lemma NUM_INTEGRAL: "(ALL x::nat. (0::nat) * x = (0::nat)) & |
| 17644 | 1000 |
(ALL (x::nat) (xa::nat) xb::nat. (x + xa = x + xb) = (xa = xb)) & |
1001 |
(ALL (w::nat) (x::nat) (y::nat) z::nat. |
|
1002 |
(w * y + x * z = w * z + x * y) = (w = x | y = z))" |
|
1003 |
by (import hollight NUM_INTEGRAL) |
|
1004 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1005 |
lemma INJ_INVERSE2: "(!!(x1::'A) (y1::'B) (x2::'A) y2::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1006 |
((P::'A => 'B => 'C) x1 y1 = P x2 y2) = (x1 = x2 & y1 = y2)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1007 |
==> EX (x::'C => 'A) Y::'C => 'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1008 |
ALL (xa::'A) y::'B. x (P xa y) = xa & Y (P xa y) = y" |
| 17644 | 1009 |
by (import hollight INJ_INVERSE2) |
1010 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1011 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1012 |
NUMPAIR :: "nat => nat => nat" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1013 |
"NUMPAIR == %u ua. 2 ^ u * (2 * ua + 1)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1014 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1015 |
lemma DEF_NUMPAIR: "NUMPAIR = (%u ua. 2 ^ u * (2 * ua + 1))" |
| 17644 | 1016 |
by (import hollight DEF_NUMPAIR) |
1017 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1018 |
lemma NUMPAIR_INJ_LEMMA: "NUMPAIR x xa = NUMPAIR xb xc ==> x = xb" |
| 17644 | 1019 |
by (import hollight NUMPAIR_INJ_LEMMA) |
1020 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1021 |
lemma NUMPAIR_INJ: "(NUMPAIR x1 y1 = NUMPAIR x2 y2) = (x1 = x2 & y1 = y2)" |
| 17644 | 1022 |
by (import hollight NUMPAIR_INJ) |
1023 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1024 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1025 |
NUMFST :: "nat => nat" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1026 |
"NUMFST == SOME X. EX Y. ALL x y. X (NUMPAIR x y) = x & Y (NUMPAIR x y) = y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1027 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1028 |
lemma DEF_NUMFST: "NUMFST = (SOME X. EX Y. ALL x y. X (NUMPAIR x y) = x & Y (NUMPAIR x y) = y)" |
| 17644 | 1029 |
by (import hollight DEF_NUMFST) |
1030 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1031 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1032 |
NUMSND :: "nat => nat" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1033 |
"NUMSND == SOME Y. ALL x y. NUMFST (NUMPAIR x y) = x & Y (NUMPAIR x y) = y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1034 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1035 |
lemma DEF_NUMSND: "NUMSND = (SOME Y. ALL x y. NUMFST (NUMPAIR x y) = x & Y (NUMPAIR x y) = y)" |
| 17644 | 1036 |
by (import hollight DEF_NUMSND) |
1037 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1038 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1039 |
NUMSUM :: "bool => nat => nat" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1040 |
"NUMSUM == %u ua. if u then Suc (2 * ua) else 2 * ua" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1041 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1042 |
lemma DEF_NUMSUM: "NUMSUM = (%u ua. if u then Suc (2 * ua) else 2 * ua)" |
| 17644 | 1043 |
by (import hollight DEF_NUMSUM) |
1044 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1045 |
lemma NUMSUM_INJ: "(NUMSUM b1 x1 = NUMSUM b2 x2) = (b1 = b2 & x1 = x2)" |
| 17644 | 1046 |
by (import hollight NUMSUM_INJ) |
1047 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1048 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1049 |
NUMLEFT :: "nat => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1050 |
"NUMLEFT == SOME X. EX Y. ALL x y. X (NUMSUM x y) = x & Y (NUMSUM x y) = y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1051 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1052 |
lemma DEF_NUMLEFT: "NUMLEFT = (SOME X. EX Y. ALL x y. X (NUMSUM x y) = x & Y (NUMSUM x y) = y)" |
| 17644 | 1053 |
by (import hollight DEF_NUMLEFT) |
1054 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1055 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1056 |
NUMRIGHT :: "nat => nat" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1057 |
"NUMRIGHT == SOME Y. ALL x y. NUMLEFT (NUMSUM x y) = x & Y (NUMSUM x y) = y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1058 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1059 |
lemma DEF_NUMRIGHT: "NUMRIGHT = (SOME Y. ALL x y. NUMLEFT (NUMSUM x y) = x & Y (NUMSUM x y) = y)" |
| 17644 | 1060 |
by (import hollight DEF_NUMRIGHT) |
1061 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1062 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1063 |
INJN :: "nat => nat => 'A => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1064 |
"INJN == %(u::nat) (n::nat) a::'A. n = u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1065 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1066 |
lemma DEF_INJN: "INJN = (%(u::nat) (n::nat) a::'A. n = u)" |
| 17644 | 1067 |
by (import hollight DEF_INJN) |
1068 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1069 |
lemma INJN_INJ: "(op =::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1070 |
((op =::(nat => 'A::type => bool) => (nat => 'A::type => bool) => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1071 |
((INJN::nat => nat => 'A::type => bool) (n1::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1072 |
((INJN::nat => nat => 'A::type => bool) (n2::nat))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1073 |
((op =::nat => nat => bool) n1 n2)" |
| 17644 | 1074 |
by (import hollight INJN_INJ) |
1075 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1076 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1077 |
INJA :: "'A => nat => 'A => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1078 |
"INJA == %(u::'A) (n::nat) b::'A. b = u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1079 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1080 |
lemma DEF_INJA: "INJA = (%(u::'A) (n::nat) b::'A. b = u)" |
| 17644 | 1081 |
by (import hollight DEF_INJA) |
1082 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1083 |
lemma INJA_INJ: "(INJA (a1::'A) = INJA (a2::'A)) = (a1 = a2)" |
| 17644 | 1084 |
by (import hollight INJA_INJ) |
1085 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1086 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1087 |
INJF :: "(nat => nat => 'A => bool) => nat => 'A => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1088 |
"INJF == %(u::nat => nat => 'A => bool) n::nat. u (NUMFST n) (NUMSND n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1089 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1090 |
lemma DEF_INJF: "INJF = (%(u::nat => nat => 'A => bool) n::nat. u (NUMFST n) (NUMSND n))" |
| 17644 | 1091 |
by (import hollight DEF_INJF) |
1092 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1093 |
lemma INJF_INJ: "(INJF (f1::nat => nat => 'A => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1094 |
INJF (f2::nat => nat => 'A => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1095 |
(f1 = f2)" |
| 17644 | 1096 |
by (import hollight INJF_INJ) |
1097 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1098 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1099 |
INJP :: "(nat => 'A => bool) => (nat => 'A => bool) => nat => 'A => bool" where |
| 17644 | 1100 |
"INJP == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1101 |
%(u::nat => 'A => bool) (ua::nat => 'A => bool) (n::nat) a::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1102 |
if NUMLEFT n then u (NUMRIGHT n) a else ua (NUMRIGHT n) a" |
| 17644 | 1103 |
|
1104 |
lemma DEF_INJP: "INJP = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1105 |
(%(u::nat => 'A => bool) (ua::nat => 'A => bool) (n::nat) a::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1106 |
if NUMLEFT n then u (NUMRIGHT n) a else ua (NUMRIGHT n) a)" |
| 17644 | 1107 |
by (import hollight DEF_INJP) |
1108 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1109 |
lemma INJP_INJ: "(INJP (f1::nat => 'A => bool) (f2::nat => 'A => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1110 |
INJP (f1'::nat => 'A => bool) (f2'::nat => 'A => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1111 |
(f1 = f1' & f2 = f2')" |
| 17644 | 1112 |
by (import hollight INJP_INJ) |
1113 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1114 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1115 |
ZCONSTR :: "nat => 'A => (nat => nat => 'A => bool) => nat => 'A => bool" where |
| 17644 | 1116 |
"ZCONSTR == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1117 |
%(u::nat) (ua::'A) ub::nat => nat => 'A => bool. |
| 17644 | 1118 |
INJP (INJN (Suc u)) (INJP (INJA ua) (INJF ub))" |
1119 |
||
1120 |
lemma DEF_ZCONSTR: "ZCONSTR = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1121 |
(%(u::nat) (ua::'A) ub::nat => nat => 'A => bool. |
| 17644 | 1122 |
INJP (INJN (Suc u)) (INJP (INJA ua) (INJF ub)))" |
1123 |
by (import hollight DEF_ZCONSTR) |
|
1124 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1125 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1126 |
ZBOT :: "nat => 'A => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1127 |
"ZBOT == INJP (INJN (0::nat)) (SOME z::nat => 'A => bool. True)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1128 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1129 |
lemma DEF_ZBOT: "ZBOT = INJP (INJN (0::nat)) (SOME z::nat => 'A => bool. True)" |
| 17644 | 1130 |
by (import hollight DEF_ZBOT) |
1131 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1132 |
lemma ZCONSTR_ZBOT: "ZCONSTR (x::nat) (xa::'A) (xb::nat => nat => 'A => bool) ~= ZBOT" |
| 17644 | 1133 |
by (import hollight ZCONSTR_ZBOT) |
1134 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1135 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1136 |
ZRECSPACE :: "(nat => 'A => bool) => bool" where |
| 17644 | 1137 |
"ZRECSPACE == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1138 |
%a::nat => 'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1139 |
ALL ZRECSPACE'::(nat => 'A => bool) => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1140 |
(ALL a::nat => 'A => bool. |
| 17644 | 1141 |
a = ZBOT | |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1142 |
(EX (c::nat) (i::'A) r::nat => nat => 'A => bool. |
| 17644 | 1143 |
a = ZCONSTR c i r & (ALL n::nat. ZRECSPACE' (r n))) --> |
1144 |
ZRECSPACE' a) --> |
|
1145 |
ZRECSPACE' a" |
|
1146 |
||
1147 |
lemma DEF_ZRECSPACE: "ZRECSPACE = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1148 |
(%a::nat => 'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1149 |
ALL ZRECSPACE'::(nat => 'A => bool) => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1150 |
(ALL a::nat => 'A => bool. |
| 17644 | 1151 |
a = ZBOT | |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1152 |
(EX (c::nat) (i::'A) r::nat => nat => 'A => bool. |
| 17644 | 1153 |
a = ZCONSTR c i r & (ALL n::nat. ZRECSPACE' (r n))) --> |
1154 |
ZRECSPACE' a) --> |
|
1155 |
ZRECSPACE' a)" |
|
1156 |
by (import hollight DEF_ZRECSPACE) |
|
1157 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1158 |
typedef (open) ('A) recspace = "Collect ZRECSPACE" morphisms "_dest_rec" "_mk_rec"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1159 |
apply (rule light_ex_imp_nonempty[where t="ZBOT"]) |
| 17644 | 1160 |
by (import hollight TYDEF_recspace) |
1161 |
||
1162 |
syntax |
|
1163 |
"_dest_rec" :: _ ("'_dest'_rec")
|
|
1164 |
||
1165 |
syntax |
|
1166 |
"_mk_rec" :: _ ("'_mk'_rec")
|
|
1167 |
||
1168 |
lemmas "TYDEF_recspace_@intern" = typedef_hol2hollight |
|
| 17652 | 1169 |
[where a="a :: 'A recspace" and r=r , |
| 17644 | 1170 |
OF type_definition_recspace] |
1171 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1172 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1173 |
BOTTOM :: "'A recspace" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1174 |
"BOTTOM == _mk_rec ZBOT" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1175 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1176 |
lemma DEF_BOTTOM: "BOTTOM = _mk_rec ZBOT" |
| 17644 | 1177 |
by (import hollight DEF_BOTTOM) |
1178 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1179 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1180 |
CONSTR :: "nat => 'A => (nat => 'A recspace) => 'A recspace" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1181 |
"CONSTR == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1182 |
%(u::nat) (ua::'A::type) ub::nat => 'A::type recspace. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1183 |
_mk_rec (ZCONSTR u ua (%n::nat. _dest_rec (ub n)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1184 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1185 |
lemma DEF_CONSTR: "CONSTR = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1186 |
(%(u::nat) (ua::'A::type) ub::nat => 'A::type recspace. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1187 |
_mk_rec (ZCONSTR u ua (%n::nat. _dest_rec (ub n))))" |
| 17644 | 1188 |
by (import hollight DEF_CONSTR) |
1189 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1190 |
lemma MK_REC_INJ: "[| _mk_rec (x::nat => 'A::type => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1191 |
_mk_rec (y::nat => 'A::type => bool); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1192 |
ZRECSPACE x & ZRECSPACE y |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1193 |
==> x = y" |
| 17644 | 1194 |
by (import hollight MK_REC_INJ) |
1195 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1196 |
lemma CONSTR_BOT: "CONSTR (c::nat) (i::'A) (r::nat => 'A recspace) ~= BOTTOM" |
| 17644 | 1197 |
by (import hollight CONSTR_BOT) |
1198 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1199 |
lemma CONSTR_INJ: "(CONSTR (c1::nat) (i1::'A) (r1::nat => 'A recspace) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1200 |
CONSTR (c2::nat) (i2::'A) (r2::nat => 'A recspace)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1201 |
(c1 = c2 & i1 = i2 & r1 = r2)" |
| 17644 | 1202 |
by (import hollight CONSTR_INJ) |
1203 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1204 |
lemma CONSTR_IND: "(P::'A recspace => bool) BOTTOM & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1205 |
(ALL (c::nat) (i::'A) r::nat => 'A recspace. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1206 |
(ALL n::nat. P (r n)) --> P (CONSTR c i r)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1207 |
==> P (x::'A recspace)" |
| 17644 | 1208 |
by (import hollight CONSTR_IND) |
1209 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1210 |
lemma CONSTR_REC: "EX f::'A recspace => 'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1211 |
ALL (c::nat) (i::'A) r::nat => 'A recspace. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1212 |
f (CONSTR c i r) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1213 |
(Fn::nat => 'A => (nat => 'A recspace) => (nat => 'B) => 'B) c i r |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1214 |
(%n::nat. f (r n))" |
| 17644 | 1215 |
by (import hollight CONSTR_REC) |
1216 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1217 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1218 |
FCONS :: "'A => (nat => 'A) => nat => 'A" where |
| 17644 | 1219 |
"FCONS == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1220 |
SOME FCONS::'A => (nat => 'A) => nat => 'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1221 |
(ALL (a::'A) f::nat => 'A. FCONS a f (0::nat) = a) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1222 |
(ALL (a::'A) (f::nat => 'A) n::nat. FCONS a f (Suc n) = f n)" |
| 17644 | 1223 |
|
1224 |
lemma DEF_FCONS: "FCONS = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1225 |
(SOME FCONS::'A => (nat => 'A) => nat => 'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1226 |
(ALL (a::'A) f::nat => 'A. FCONS a f (0::nat) = a) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1227 |
(ALL (a::'A) (f::nat => 'A) n::nat. FCONS a f (Suc n) = f n))" |
| 17644 | 1228 |
by (import hollight DEF_FCONS) |
1229 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1230 |
lemma FCONS_UNDO: "(f::nat => 'A) = FCONS (f (0::nat)) (f o Suc)" |
| 17644 | 1231 |
by (import hollight FCONS_UNDO) |
1232 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1233 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1234 |
FNIL :: "nat => 'A" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1235 |
"FNIL == %u::nat. SOME x::'A. True" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1236 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1237 |
lemma DEF_FNIL: "FNIL = (%u::nat. SOME x::'A. True)" |
| 17644 | 1238 |
by (import hollight DEF_FNIL) |
1239 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1240 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1241 |
ISO :: "('A => 'B) => ('B => 'A) => bool" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1242 |
"ISO == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1243 |
%(u::'A => 'B) ua::'B => 'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1244 |
(ALL x::'B. u (ua x) = x) & (ALL y::'A. ua (u y) = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1245 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1246 |
lemma DEF_ISO: "ISO = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1247 |
(%(u::'A => 'B) ua::'B => 'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1248 |
(ALL x::'B. u (ua x) = x) & (ALL y::'A. ua (u y) = y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1249 |
by (import hollight DEF_ISO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1250 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1251 |
lemma ISO_REFL: "ISO (%x::'A. x) (%x::'A. x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1252 |
by (import hollight ISO_REFL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1253 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1254 |
lemma ISO_FUN: "ISO (f::'A => 'A') (f'::'A' => 'A) & ISO (g::'B => 'B') (g'::'B' => 'B) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1255 |
==> ISO (%(h::'A => 'B) a'::'A'. g (h (f' a'))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1256 |
(%(h::'A' => 'B') a::'A. g' (h (f a)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1257 |
by (import hollight ISO_FUN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1258 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1259 |
lemma ISO_USAGE: "ISO (f::'q_17485 => 'q_17482) (g::'q_17482 => 'q_17485) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1260 |
==> (ALL P::'q_17485 => bool. All P = (ALL x::'q_17482. P (g x))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1261 |
(ALL P::'q_17485 => bool. Ex P = (EX x::'q_17482. P (g x))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1262 |
(ALL (a::'q_17485) b::'q_17482. (a = g b) = (f a = b))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1263 |
by (import hollight ISO_USAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1264 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1265 |
typedef (open) char = "{a. ALL char'.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1266 |
(ALL a. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1267 |
(EX a0 a1 a2 a3 a4 a5 a6 a7. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1268 |
a = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1269 |
CONSTR (NUMERAL 0) (a0, a1, a2, a3, a4, a5, a6, a7) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1270 |
(%n. BOTTOM)) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1271 |
char' a) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1272 |
char' a}" morphisms "_dest_char" "_mk_char" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1273 |
apply (rule light_ex_imp_nonempty[where t="CONSTR (NUMERAL 0) (a0, a1, a2, a3, a4, a5, a6, a7) (%n. BOTTOM)"]) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1274 |
by (import hollight TYDEF_char) |
| 17644 | 1275 |
|
1276 |
syntax |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1277 |
"_dest_char" :: _ ("'_dest'_char")
|
| 17644 | 1278 |
|
1279 |
syntax |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1280 |
"_mk_char" :: _ ("'_mk'_char")
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1281 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1282 |
lemmas "TYDEF_char_@intern" = typedef_hol2hollight |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1283 |
[where a="a :: hollight.char" and r=r , |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1284 |
OF type_definition_char] |
| 17644 | 1285 |
|
1286 |
consts |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1287 |
"_11937" :: "bool |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1288 |
=> bool => bool => bool => bool => bool => bool => bool => hollight.char" ("'_11937")
|
| 17644 | 1289 |
|
1290 |
defs |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1291 |
"_11937_def": "_11937 == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1292 |
%(a0::bool) (a1::bool) (a2::bool) (a3::bool) (a4::bool) (a5::bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1293 |
(a6::bool) a7::bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1294 |
_mk_char |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1295 |
(CONSTR (0::nat) (a0, a1, a2, a3, a4, a5, a6, a7) (%n::nat. BOTTOM))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1296 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1297 |
lemma DEF__11937: "_11937 = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1298 |
(%(a0::bool) (a1::bool) (a2::bool) (a3::bool) (a4::bool) (a5::bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1299 |
(a6::bool) a7::bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1300 |
_mk_char |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1301 |
(CONSTR (0::nat) (a0, a1, a2, a3, a4, a5, a6, a7) (%n::nat. BOTTOM)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1302 |
by (import hollight DEF__11937) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1303 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1304 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1305 |
ASCII :: "bool |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1306 |
=> bool => bool => bool => bool => bool => bool => bool => hollight.char" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1307 |
"ASCII == _11937" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1308 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1309 |
lemma DEF_ASCII: "ASCII = _11937" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1310 |
by (import hollight DEF_ASCII) |
| 17644 | 1311 |
|
1312 |
consts |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1313 |
dist :: "nat * nat => nat" |
| 17644 | 1314 |
|
1315 |
defs |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1316 |
dist_def: "hollight.dist == %u. fst u - snd u + (snd u - fst u)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1317 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1318 |
lemma DEF_dist: "hollight.dist = (%u. fst u - snd u + (snd u - fst u))" |
| 17644 | 1319 |
by (import hollight DEF_dist) |
1320 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1321 |
lemma DIST_REFL: "hollight.dist (x, x) = 0" |
| 17644 | 1322 |
by (import hollight DIST_REFL) |
1323 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1324 |
lemma DIST_LZERO: "hollight.dist (0, x) = x" |
| 17644 | 1325 |
by (import hollight DIST_LZERO) |
1326 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1327 |
lemma DIST_RZERO: "hollight.dist (x, 0) = x" |
| 17644 | 1328 |
by (import hollight DIST_RZERO) |
1329 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1330 |
lemma DIST_SYM: "hollight.dist (x, xa) = hollight.dist (xa, x)" |
| 17644 | 1331 |
by (import hollight DIST_SYM) |
1332 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1333 |
lemma DIST_LADD: "hollight.dist (x + xb, x + xa) = hollight.dist (xb, xa)" |
| 17644 | 1334 |
by (import hollight DIST_LADD) |
1335 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1336 |
lemma DIST_RADD: "hollight.dist (x + xa, xb + xa) = hollight.dist (x, xb)" |
| 17644 | 1337 |
by (import hollight DIST_RADD) |
1338 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1339 |
lemma DIST_LADD_0: "hollight.dist (x + xa, x) = xa" |
| 17644 | 1340 |
by (import hollight DIST_LADD_0) |
1341 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1342 |
lemma DIST_RADD_0: "hollight.dist (x, x + xa) = xa" |
| 17644 | 1343 |
by (import hollight DIST_RADD_0) |
1344 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1345 |
lemma DIST_LMUL: "x * hollight.dist (xa, xb) = hollight.dist (x * xa, x * xb)" |
| 17644 | 1346 |
by (import hollight DIST_LMUL) |
1347 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1348 |
lemma DIST_RMUL: "hollight.dist (x, xa) * xb = hollight.dist (x * xb, xa * xb)" |
| 17644 | 1349 |
by (import hollight DIST_RMUL) |
1350 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1351 |
lemma DIST_EQ_0: "(hollight.dist (x, xa) = 0) = (x = xa)" |
| 17644 | 1352 |
by (import hollight DIST_EQ_0) |
1353 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1354 |
lemma DIST_ELIM_THM: "P (hollight.dist (x, y)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1355 |
(ALL d. (x = y + d --> P d) & (y = x + d --> P d))" |
| 17644 | 1356 |
by (import hollight DIST_ELIM_THM) |
1357 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1358 |
lemma DIST_LE_CASES: "(hollight.dist (m, n) <= p) = (m <= n + p & n <= m + p)" |
| 17644 | 1359 |
by (import hollight DIST_LE_CASES) |
1360 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1361 |
lemma DIST_TRIANGLE_LE: "hollight.dist (m, n) + hollight.dist (n, p) <= q |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1362 |
==> hollight.dist (m, p) <= q" |
| 17644 | 1363 |
by (import hollight DIST_TRIANGLE_LE) |
1364 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1365 |
lemma DIST_TRIANGLES_LE: "hollight.dist (m, n) <= r & hollight.dist (p, q) <= s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1366 |
==> hollight.dist (m, p) <= hollight.dist (n, q) + (r + s)" |
| 17644 | 1367 |
by (import hollight DIST_TRIANGLES_LE) |
1368 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1369 |
lemma BOUNDS_LINEAR: "(ALL n::nat. (A::nat) * n <= (B::nat) * n + (C::nat)) = (A <= B)" |
| 17644 | 1370 |
by (import hollight BOUNDS_LINEAR) |
1371 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1372 |
lemma BOUNDS_LINEAR_0: "(ALL n::nat. (A::nat) * n <= (B::nat)) = (A = (0::nat))" |
| 17644 | 1373 |
by (import hollight BOUNDS_LINEAR_0) |
1374 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1375 |
lemma BOUNDS_DIVIDED: "(EX B::nat. ALL n::nat. (P::nat => nat) n <= B) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1376 |
(EX (x::nat) B::nat. ALL n::nat. n * P n <= x * n + B)" |
| 17644 | 1377 |
by (import hollight BOUNDS_DIVIDED) |
1378 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1379 |
lemma BOUNDS_NOTZERO: "(P::nat => nat => nat) (0::nat) (0::nat) = (0::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1380 |
(ALL (m::nat) n::nat. P m n <= (A::nat) * (m + n) + (B::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1381 |
==> EX x::nat. ALL (m::nat) n::nat. P m n <= x * (m + n)" |
| 17644 | 1382 |
by (import hollight BOUNDS_NOTZERO) |
1383 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1384 |
lemma BOUNDS_IGNORE: "(EX B::nat. ALL i::nat. (P::nat => nat) i <= (Q::nat => nat) i + B) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1385 |
(EX (x::nat) N::nat. ALL i>=N. P i <= Q i + x)" |
| 17644 | 1386 |
by (import hollight BOUNDS_IGNORE) |
1387 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1388 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1389 |
is_nadd :: "(nat => nat) => bool" where |
| 17644 | 1390 |
"is_nadd == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1391 |
%u. EX B. ALL m n. hollight.dist (m * u n, n * u m) <= B * (m + n)" |
| 17644 | 1392 |
|
1393 |
lemma DEF_is_nadd: "is_nadd = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1394 |
(%u. EX B. ALL m n. hollight.dist (m * u n, n * u m) <= B * (m + n))" |
| 17644 | 1395 |
by (import hollight DEF_is_nadd) |
1396 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1397 |
lemma is_nadd_0: "is_nadd (%n. 0)" |
| 17644 | 1398 |
by (import hollight is_nadd_0) |
1399 |
||
1400 |
typedef (open) nadd = "Collect is_nadd" morphisms "dest_nadd" "mk_nadd" |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1401 |
apply (rule light_ex_imp_nonempty[where t="%n. NUMERAL 0"]) |
| 17644 | 1402 |
by (import hollight TYDEF_nadd) |
1403 |
||
1404 |
syntax |
|
1405 |
dest_nadd :: _ |
|
1406 |
||
1407 |
syntax |
|
1408 |
mk_nadd :: _ |
|
1409 |
||
1410 |
lemmas "TYDEF_nadd_@intern" = typedef_hol2hollight |
|
1411 |
[where a="a :: nadd" and r=r , |
|
1412 |
OF type_definition_nadd] |
|
1413 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1414 |
lemma NADD_CAUCHY: "EX xa. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1415 |
ALL xb xc. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1416 |
hollight.dist (xb * dest_nadd x xc, xc * dest_nadd x xb) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1417 |
<= xa * (xb + xc)" |
| 17644 | 1418 |
by (import hollight NADD_CAUCHY) |
1419 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1420 |
lemma NADD_BOUND: "EX xa B. ALL n. dest_nadd x n <= xa * n + B" |
| 17644 | 1421 |
by (import hollight NADD_BOUND) |
1422 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1423 |
lemma NADD_MULTIPLICATIVE: "EX xa. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1424 |
ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1425 |
hollight.dist (dest_nadd x (m * n), m * dest_nadd x n) <= xa * m + xa" |
| 17644 | 1426 |
by (import hollight NADD_MULTIPLICATIVE) |
1427 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1428 |
lemma NADD_ADDITIVE: "EX xa. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1429 |
ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1430 |
hollight.dist (dest_nadd x (m + n), dest_nadd x m + dest_nadd x n) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1431 |
<= xa" |
| 17644 | 1432 |
by (import hollight NADD_ADDITIVE) |
1433 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1434 |
lemma NADD_SUC: "EX xa. ALL n. hollight.dist (dest_nadd x (Suc n), dest_nadd x n) <= xa" |
| 17644 | 1435 |
by (import hollight NADD_SUC) |
1436 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1437 |
lemma NADD_DIST_LEMMA: "EX xa. ALL m n. hollight.dist (dest_nadd x (m + n), dest_nadd x m) <= xa * n" |
| 17644 | 1438 |
by (import hollight NADD_DIST_LEMMA) |
1439 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1440 |
lemma NADD_DIST: "EX xa. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1441 |
ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1442 |
hollight.dist (dest_nadd x m, dest_nadd x n) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1443 |
<= xa * hollight.dist (m, n)" |
| 17644 | 1444 |
by (import hollight NADD_DIST) |
1445 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1446 |
lemma NADD_ALTMUL: "EX A B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1447 |
ALL n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1448 |
hollight.dist |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1449 |
(n * dest_nadd x (dest_nadd y n), dest_nadd x n * dest_nadd y n) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1450 |
<= A * n + B" |
| 17644 | 1451 |
by (import hollight NADD_ALTMUL) |
1452 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1453 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1454 |
nadd_eq :: "nadd => nadd => bool" where |
| 17644 | 1455 |
"nadd_eq == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1456 |
%u ua. EX B. ALL n. hollight.dist (dest_nadd u n, dest_nadd ua n) <= B" |
| 17644 | 1457 |
|
1458 |
lemma DEF_nadd_eq: "nadd_eq = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1459 |
(%u ua. EX B. ALL n. hollight.dist (dest_nadd u n, dest_nadd ua n) <= B)" |
| 17644 | 1460 |
by (import hollight DEF_nadd_eq) |
1461 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1462 |
lemma NADD_EQ_REFL: "nadd_eq x x" |
| 17644 | 1463 |
by (import hollight NADD_EQ_REFL) |
1464 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1465 |
lemma NADD_EQ_SYM: "nadd_eq x y = nadd_eq y x" |
| 17644 | 1466 |
by (import hollight NADD_EQ_SYM) |
1467 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1468 |
lemma NADD_EQ_TRANS: "nadd_eq x y & nadd_eq y z ==> nadd_eq x z" |
| 17644 | 1469 |
by (import hollight NADD_EQ_TRANS) |
1470 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1471 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1472 |
nadd_of_num :: "nat => nadd" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1473 |
"nadd_of_num == %u. mk_nadd (op * u)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1474 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1475 |
lemma DEF_nadd_of_num: "nadd_of_num = (%u. mk_nadd (op * u))" |
| 17644 | 1476 |
by (import hollight DEF_nadd_of_num) |
1477 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1478 |
lemma NADD_OF_NUM: "dest_nadd (nadd_of_num x) = op * x" |
| 17644 | 1479 |
by (import hollight NADD_OF_NUM) |
1480 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1481 |
lemma NADD_OF_NUM_WELLDEF: "m = n ==> nadd_eq (nadd_of_num m) (nadd_of_num n)" |
| 17644 | 1482 |
by (import hollight NADD_OF_NUM_WELLDEF) |
1483 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1484 |
lemma NADD_OF_NUM_EQ: "nadd_eq (nadd_of_num m) (nadd_of_num n) = (m = n)" |
| 17644 | 1485 |
by (import hollight NADD_OF_NUM_EQ) |
1486 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1487 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1488 |
nadd_le :: "nadd => nadd => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1489 |
"nadd_le == %u ua. EX B. ALL n. dest_nadd u n <= dest_nadd ua n + B" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1490 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1491 |
lemma DEF_nadd_le: "nadd_le = (%u ua. EX B. ALL n. dest_nadd u n <= dest_nadd ua n + B)" |
| 17644 | 1492 |
by (import hollight DEF_nadd_le) |
1493 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1494 |
lemma NADD_LE_WELLDEF_LEMMA: "nadd_eq x x' & nadd_eq y y' & nadd_le x y ==> nadd_le x' y'" |
| 17644 | 1495 |
by (import hollight NADD_LE_WELLDEF_LEMMA) |
1496 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1497 |
lemma NADD_LE_WELLDEF: "nadd_eq x x' & nadd_eq y y' ==> nadd_le x y = nadd_le x' y'" |
| 17644 | 1498 |
by (import hollight NADD_LE_WELLDEF) |
1499 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1500 |
lemma NADD_LE_REFL: "nadd_le x x" |
| 17644 | 1501 |
by (import hollight NADD_LE_REFL) |
1502 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1503 |
lemma NADD_LE_TRANS: "nadd_le x y & nadd_le y z ==> nadd_le x z" |
| 17644 | 1504 |
by (import hollight NADD_LE_TRANS) |
1505 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1506 |
lemma NADD_LE_ANTISYM: "(nadd_le x y & nadd_le y x) = nadd_eq x y" |
| 17644 | 1507 |
by (import hollight NADD_LE_ANTISYM) |
1508 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1509 |
lemma NADD_LE_TOTAL_LEMMA: "~ nadd_le x y ==> EX n. n ~= 0 & dest_nadd y n + B < dest_nadd x n" |
| 17644 | 1510 |
by (import hollight NADD_LE_TOTAL_LEMMA) |
1511 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1512 |
lemma NADD_LE_TOTAL: "nadd_le x y | nadd_le y x" |
| 17644 | 1513 |
by (import hollight NADD_LE_TOTAL) |
1514 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1515 |
lemma NADD_ARCH: "EX xa. nadd_le x (nadd_of_num xa)" |
| 17644 | 1516 |
by (import hollight NADD_ARCH) |
1517 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1518 |
lemma NADD_OF_NUM_LE: "nadd_le (nadd_of_num m) (nadd_of_num n) = (m <= n)" |
| 17644 | 1519 |
by (import hollight NADD_OF_NUM_LE) |
1520 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1521 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1522 |
nadd_add :: "nadd => nadd => nadd" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1523 |
"nadd_add == %u ua. mk_nadd (%n. dest_nadd u n + dest_nadd ua n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1524 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1525 |
lemma DEF_nadd_add: "nadd_add = (%u ua. mk_nadd (%n. dest_nadd u n + dest_nadd ua n))" |
| 17644 | 1526 |
by (import hollight DEF_nadd_add) |
1527 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1528 |
lemma NADD_ADD: "dest_nadd (nadd_add x y) = (%n. dest_nadd x n + dest_nadd y n)" |
| 17644 | 1529 |
by (import hollight NADD_ADD) |
1530 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1531 |
lemma NADD_ADD_WELLDEF: "nadd_eq x x' & nadd_eq y y' ==> nadd_eq (nadd_add x y) (nadd_add x' y')" |
| 17644 | 1532 |
by (import hollight NADD_ADD_WELLDEF) |
1533 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1534 |
lemma NADD_ADD_SYM: "nadd_eq (nadd_add x y) (nadd_add y x)" |
| 17644 | 1535 |
by (import hollight NADD_ADD_SYM) |
1536 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1537 |
lemma NADD_ADD_ASSOC: "nadd_eq (nadd_add x (nadd_add y z)) (nadd_add (nadd_add x y) z)" |
| 17644 | 1538 |
by (import hollight NADD_ADD_ASSOC) |
1539 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1540 |
lemma NADD_ADD_LID: "nadd_eq (nadd_add (nadd_of_num 0) x) x" |
| 17644 | 1541 |
by (import hollight NADD_ADD_LID) |
1542 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1543 |
lemma NADD_ADD_LCANCEL: "nadd_eq (nadd_add x y) (nadd_add x z) ==> nadd_eq y z" |
| 17644 | 1544 |
by (import hollight NADD_ADD_LCANCEL) |
1545 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1546 |
lemma NADD_LE_ADD: "nadd_le x (nadd_add x y)" |
| 17644 | 1547 |
by (import hollight NADD_LE_ADD) |
1548 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1549 |
lemma NADD_LE_EXISTS: "nadd_le x y ==> EX d. nadd_eq y (nadd_add x d)" |
| 17644 | 1550 |
by (import hollight NADD_LE_EXISTS) |
1551 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1552 |
lemma NADD_OF_NUM_ADD: "nadd_eq (nadd_add (nadd_of_num x) (nadd_of_num xa)) (nadd_of_num (x + xa))" |
| 17644 | 1553 |
by (import hollight NADD_OF_NUM_ADD) |
1554 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1555 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1556 |
nadd_mul :: "nadd => nadd => nadd" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1557 |
"nadd_mul == %u ua. mk_nadd (%n. dest_nadd u (dest_nadd ua n))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1558 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1559 |
lemma DEF_nadd_mul: "nadd_mul = (%u ua. mk_nadd (%n. dest_nadd u (dest_nadd ua n)))" |
| 17644 | 1560 |
by (import hollight DEF_nadd_mul) |
1561 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1562 |
lemma NADD_MUL: "dest_nadd (nadd_mul x y) = (%n. dest_nadd x (dest_nadd y n))" |
| 17644 | 1563 |
by (import hollight NADD_MUL) |
1564 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1565 |
lemma NADD_MUL_SYM: "nadd_eq (nadd_mul x y) (nadd_mul y x)" |
| 17644 | 1566 |
by (import hollight NADD_MUL_SYM) |
1567 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1568 |
lemma NADD_MUL_ASSOC: "nadd_eq (nadd_mul x (nadd_mul y z)) (nadd_mul (nadd_mul x y) z)" |
| 17644 | 1569 |
by (import hollight NADD_MUL_ASSOC) |
1570 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1571 |
lemma NADD_MUL_LID: "nadd_eq (nadd_mul (nadd_of_num 1) x) x" |
| 17644 | 1572 |
by (import hollight NADD_MUL_LID) |
1573 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1574 |
lemma NADD_LDISTRIB: "nadd_eq (nadd_mul x (nadd_add y z)) (nadd_add (nadd_mul x y) (nadd_mul x z))" |
| 17644 | 1575 |
by (import hollight NADD_LDISTRIB) |
1576 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1577 |
lemma NADD_MUL_WELLDEF_LEMMA: "nadd_eq y y' ==> nadd_eq (nadd_mul x y) (nadd_mul x y')" |
| 17644 | 1578 |
by (import hollight NADD_MUL_WELLDEF_LEMMA) |
1579 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1580 |
lemma NADD_MUL_WELLDEF: "nadd_eq x x' & nadd_eq y y' ==> nadd_eq (nadd_mul x y) (nadd_mul x' y')" |
| 17644 | 1581 |
by (import hollight NADD_MUL_WELLDEF) |
1582 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1583 |
lemma NADD_OF_NUM_MUL: "nadd_eq (nadd_mul (nadd_of_num x) (nadd_of_num xa)) (nadd_of_num (x * xa))" |
| 17644 | 1584 |
by (import hollight NADD_OF_NUM_MUL) |
1585 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1586 |
lemma NADD_LE_0: "nadd_le (nadd_of_num 0) x" |
| 17644 | 1587 |
by (import hollight NADD_LE_0) |
1588 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1589 |
lemma NADD_EQ_IMP_LE: "nadd_eq x y ==> nadd_le x y" |
| 17644 | 1590 |
by (import hollight NADD_EQ_IMP_LE) |
1591 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1592 |
lemma NADD_LE_LMUL: "nadd_le y z ==> nadd_le (nadd_mul x y) (nadd_mul x z)" |
| 17644 | 1593 |
by (import hollight NADD_LE_LMUL) |
1594 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1595 |
lemma NADD_LE_RMUL: "nadd_le x y ==> nadd_le (nadd_mul x z) (nadd_mul y z)" |
| 17644 | 1596 |
by (import hollight NADD_LE_RMUL) |
1597 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1598 |
lemma NADD_LE_RADD: "nadd_le (nadd_add x z) (nadd_add y z) = nadd_le x y" |
| 17644 | 1599 |
by (import hollight NADD_LE_RADD) |
1600 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1601 |
lemma NADD_LE_LADD: "nadd_le (nadd_add x y) (nadd_add x z) = nadd_le y z" |
| 17644 | 1602 |
by (import hollight NADD_LE_LADD) |
1603 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1604 |
lemma NADD_RDISTRIB: "nadd_eq (nadd_mul (nadd_add x y) z) (nadd_add (nadd_mul x z) (nadd_mul y z))" |
| 17644 | 1605 |
by (import hollight NADD_RDISTRIB) |
1606 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1607 |
lemma NADD_ARCH_MULT: "~ nadd_eq x (nadd_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1608 |
==> EX xa. nadd_le (nadd_of_num k) (nadd_mul (nadd_of_num xa) x)" |
| 17644 | 1609 |
by (import hollight NADD_ARCH_MULT) |
1610 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1611 |
lemma NADD_ARCH_ZERO: "(!!n. nadd_le (nadd_mul (nadd_of_num n) x) k) ==> nadd_eq x (nadd_of_num 0)" |
| 17644 | 1612 |
by (import hollight NADD_ARCH_ZERO) |
1613 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1614 |
lemma NADD_ARCH_LEMMA: "(!!n. nadd_le (nadd_mul (nadd_of_num n) x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1615 |
(nadd_add (nadd_mul (nadd_of_num n) y) z)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1616 |
==> nadd_le x y" |
| 17644 | 1617 |
by (import hollight NADD_ARCH_LEMMA) |
1618 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1619 |
lemma NADD_COMPLETE: "Ex P & (EX M. ALL x. P x --> nadd_le x M) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1620 |
==> EX M. (ALL x. P x --> nadd_le x M) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1621 |
(ALL M'. (ALL x. P x --> nadd_le x M') --> nadd_le M M')" |
| 17644 | 1622 |
by (import hollight NADD_COMPLETE) |
1623 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1624 |
lemma NADD_UBOUND: "EX xa N. ALL n>=N. dest_nadd x n <= xa * n" |
| 17644 | 1625 |
by (import hollight NADD_UBOUND) |
1626 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1627 |
lemma NADD_NONZERO: "~ nadd_eq x (nadd_of_num 0) ==> EX N. ALL n>=N. dest_nadd x n ~= 0" |
| 17644 | 1628 |
by (import hollight NADD_NONZERO) |
1629 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1630 |
lemma NADD_LBOUND: "~ nadd_eq x (nadd_of_num 0) ==> EX A N. ALL n>=N. n <= A * dest_nadd x n" |
| 17644 | 1631 |
by (import hollight NADD_LBOUND) |
1632 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1633 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1634 |
nadd_rinv :: "nadd => nat => nat" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1635 |
"nadd_rinv == %u n. n * n div dest_nadd u n" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1636 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1637 |
lemma DEF_nadd_rinv: "nadd_rinv = (%u n. n * n div dest_nadd u n)" |
| 17644 | 1638 |
by (import hollight DEF_nadd_rinv) |
1639 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1640 |
lemma NADD_MUL_LINV_LEMMA0: "~ nadd_eq x (nadd_of_num 0) ==> EX xa B. ALL i. nadd_rinv x i <= xa * i + B" |
| 17644 | 1641 |
by (import hollight NADD_MUL_LINV_LEMMA0) |
1642 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1643 |
lemma NADD_MUL_LINV_LEMMA1: "dest_nadd x n ~= 0 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1644 |
==> hollight.dist (dest_nadd x n * nadd_rinv x n, n * n) <= dest_nadd x n" |
| 17644 | 1645 |
by (import hollight NADD_MUL_LINV_LEMMA1) |
1646 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1647 |
lemma NADD_MUL_LINV_LEMMA2: "~ nadd_eq x (nadd_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1648 |
==> EX N. ALL n>=N. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1649 |
hollight.dist (dest_nadd x n * nadd_rinv x n, n * n) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1650 |
<= dest_nadd x n" |
| 17644 | 1651 |
by (import hollight NADD_MUL_LINV_LEMMA2) |
1652 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1653 |
lemma NADD_MUL_LINV_LEMMA3: "~ nadd_eq x (nadd_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1654 |
==> EX N. ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1655 |
N <= n --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1656 |
hollight.dist |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1657 |
(m * (dest_nadd x m * (dest_nadd x n * nadd_rinv x n)), |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1658 |
m * (dest_nadd x m * (n * n))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1659 |
<= m * (dest_nadd x m * dest_nadd x n)" |
| 17644 | 1660 |
by (import hollight NADD_MUL_LINV_LEMMA3) |
1661 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1662 |
lemma NADD_MUL_LINV_LEMMA4: "~ nadd_eq x (nadd_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1663 |
==> EX N. ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1664 |
N <= m & N <= n --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1665 |
dest_nadd x m * dest_nadd x n * |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1666 |
hollight.dist (m * nadd_rinv x n, n * nadd_rinv x m) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1667 |
<= m * n * |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1668 |
hollight.dist (m * dest_nadd x n, n * dest_nadd x m) + |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1669 |
dest_nadd x m * dest_nadd x n * (m + n)" |
| 17644 | 1670 |
by (import hollight NADD_MUL_LINV_LEMMA4) |
1671 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1672 |
lemma NADD_MUL_LINV_LEMMA5: "~ nadd_eq x (nadd_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1673 |
==> EX B N. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1674 |
ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1675 |
N <= m & N <= n --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1676 |
dest_nadd x m * dest_nadd x n * |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1677 |
hollight.dist (m * nadd_rinv x n, n * nadd_rinv x m) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1678 |
<= B * (m * n * (m + n))" |
| 17644 | 1679 |
by (import hollight NADD_MUL_LINV_LEMMA5) |
1680 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1681 |
lemma NADD_MUL_LINV_LEMMA6: "~ nadd_eq x (nadd_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1682 |
==> EX B N. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1683 |
ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1684 |
N <= m & N <= n --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1685 |
m * n * hollight.dist (m * nadd_rinv x n, n * nadd_rinv x m) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1686 |
<= B * (m * n * (m + n))" |
| 17644 | 1687 |
by (import hollight NADD_MUL_LINV_LEMMA6) |
1688 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1689 |
lemma NADD_MUL_LINV_LEMMA7: "~ nadd_eq x (nadd_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1690 |
==> EX B N. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1691 |
ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1692 |
N <= m & N <= n --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1693 |
hollight.dist (m * nadd_rinv x n, n * nadd_rinv x m) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1694 |
<= B * (m + n)" |
| 17644 | 1695 |
by (import hollight NADD_MUL_LINV_LEMMA7) |
1696 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1697 |
lemma NADD_MUL_LINV_LEMMA7a: "~ nadd_eq x (nadd_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1698 |
==> EX A B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1699 |
ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1700 |
m <= N --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1701 |
hollight.dist (m * nadd_rinv x n, n * nadd_rinv x m) <= A * n + B" |
| 17644 | 1702 |
by (import hollight NADD_MUL_LINV_LEMMA7a) |
1703 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1704 |
lemma NADD_MUL_LINV_LEMMA8: "~ nadd_eq x (nadd_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1705 |
==> EX B. ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1706 |
hollight.dist (m * nadd_rinv x n, n * nadd_rinv x m) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1707 |
<= B * (m + n)" |
| 17644 | 1708 |
by (import hollight NADD_MUL_LINV_LEMMA8) |
1709 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1710 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1711 |
nadd_inv :: "nadd => nadd" where |
| 17644 | 1712 |
"nadd_inv == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1713 |
%u. if nadd_eq u (nadd_of_num 0) then nadd_of_num 0 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1714 |
else mk_nadd (nadd_rinv u)" |
| 17644 | 1715 |
|
1716 |
lemma DEF_nadd_inv: "nadd_inv = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1717 |
(%u. if nadd_eq u (nadd_of_num 0) then nadd_of_num 0 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1718 |
else mk_nadd (nadd_rinv u))" |
| 17644 | 1719 |
by (import hollight DEF_nadd_inv) |
1720 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1721 |
lemma NADD_INV: "dest_nadd (nadd_inv x) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1722 |
(if nadd_eq x (nadd_of_num 0) then %n. 0 else nadd_rinv x)" |
| 17644 | 1723 |
by (import hollight NADD_INV) |
1724 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1725 |
lemma NADD_MUL_LINV: "~ nadd_eq x (nadd_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1726 |
==> nadd_eq (nadd_mul (nadd_inv x) x) (nadd_of_num 1)" |
| 17644 | 1727 |
by (import hollight NADD_MUL_LINV) |
1728 |
||
| 17652 | 1729 |
lemma NADD_INV_0: "nadd_eq (nadd_inv (nadd_of_num 0)) (nadd_of_num 0)" |
| 17644 | 1730 |
by (import hollight NADD_INV_0) |
1731 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1732 |
lemma NADD_INV_WELLDEF: "nadd_eq x y ==> nadd_eq (nadd_inv x) (nadd_inv y)" |
| 17644 | 1733 |
by (import hollight NADD_INV_WELLDEF) |
1734 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1735 |
typedef (open) hreal = "{s. EX x. s = nadd_eq x}" morphisms "dest_hreal" "mk_hreal"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1736 |
apply (rule light_ex_imp_nonempty[where t="nadd_eq x"]) |
| 17644 | 1737 |
by (import hollight TYDEF_hreal) |
1738 |
||
1739 |
syntax |
|
1740 |
dest_hreal :: _ |
|
1741 |
||
1742 |
syntax |
|
1743 |
mk_hreal :: _ |
|
1744 |
||
1745 |
lemmas "TYDEF_hreal_@intern" = typedef_hol2hollight |
|
1746 |
[where a="a :: hreal" and r=r , |
|
1747 |
OF type_definition_hreal] |
|
1748 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1749 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1750 |
hreal_of_num :: "nat => hreal" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1751 |
"hreal_of_num == %m. mk_hreal (nadd_eq (nadd_of_num m))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1752 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1753 |
lemma DEF_hreal_of_num: "hreal_of_num = (%m. mk_hreal (nadd_eq (nadd_of_num m)))" |
| 17644 | 1754 |
by (import hollight DEF_hreal_of_num) |
1755 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1756 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1757 |
hreal_add :: "hreal => hreal => hreal" where |
| 17644 | 1758 |
"hreal_add == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1759 |
%x y. mk_hreal |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1760 |
(%u. EX xa ya. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1761 |
nadd_eq (nadd_add xa ya) u & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1762 |
dest_hreal x xa & dest_hreal y ya)" |
| 17644 | 1763 |
|
1764 |
lemma DEF_hreal_add: "hreal_add = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1765 |
(%x y. mk_hreal |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1766 |
(%u. EX xa ya. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1767 |
nadd_eq (nadd_add xa ya) u & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1768 |
dest_hreal x xa & dest_hreal y ya))" |
| 17644 | 1769 |
by (import hollight DEF_hreal_add) |
1770 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1771 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1772 |
hreal_mul :: "hreal => hreal => hreal" where |
| 17644 | 1773 |
"hreal_mul == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1774 |
%x y. mk_hreal |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1775 |
(%u. EX xa ya. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1776 |
nadd_eq (nadd_mul xa ya) u & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1777 |
dest_hreal x xa & dest_hreal y ya)" |
| 17644 | 1778 |
|
1779 |
lemma DEF_hreal_mul: "hreal_mul = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1780 |
(%x y. mk_hreal |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1781 |
(%u. EX xa ya. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1782 |
nadd_eq (nadd_mul xa ya) u & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1783 |
dest_hreal x xa & dest_hreal y ya))" |
| 17644 | 1784 |
by (import hollight DEF_hreal_mul) |
1785 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1786 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1787 |
hreal_le :: "hreal => hreal => bool" where |
| 17644 | 1788 |
"hreal_le == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1789 |
%x y. SOME u. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1790 |
EX xa ya. nadd_le xa ya = u & dest_hreal x xa & dest_hreal y ya" |
| 17644 | 1791 |
|
1792 |
lemma DEF_hreal_le: "hreal_le = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1793 |
(%x y. SOME u. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1794 |
EX xa ya. nadd_le xa ya = u & dest_hreal x xa & dest_hreal y ya)" |
| 17644 | 1795 |
by (import hollight DEF_hreal_le) |
1796 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1797 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1798 |
hreal_inv :: "hreal => hreal" where |
| 17644 | 1799 |
"hreal_inv == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1800 |
%x. mk_hreal (%u. EX xa. nadd_eq (nadd_inv xa) u & dest_hreal x xa)" |
| 17644 | 1801 |
|
1802 |
lemma DEF_hreal_inv: "hreal_inv = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1803 |
(%x. mk_hreal (%u. EX xa. nadd_eq (nadd_inv xa) u & dest_hreal x xa))" |
| 17644 | 1804 |
by (import hollight DEF_hreal_inv) |
1805 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1806 |
lemma HREAL_LE_EXISTS_DEF: "hreal_le m n = (EX d. n = hreal_add m d)" |
| 17644 | 1807 |
by (import hollight HREAL_LE_EXISTS_DEF) |
1808 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1809 |
lemma HREAL_EQ_ADD_LCANCEL: "(hreal_add m n = hreal_add m p) = (n = p)" |
| 17644 | 1810 |
by (import hollight HREAL_EQ_ADD_LCANCEL) |
1811 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1812 |
lemma HREAL_EQ_ADD_RCANCEL: "(hreal_add x xb = hreal_add xa xb) = (x = xa)" |
| 17644 | 1813 |
by (import hollight HREAL_EQ_ADD_RCANCEL) |
1814 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1815 |
lemma HREAL_LE_ADD_LCANCEL: "hreal_le (hreal_add x xa) (hreal_add x xb) = hreal_le xa xb" |
| 17644 | 1816 |
by (import hollight HREAL_LE_ADD_LCANCEL) |
1817 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1818 |
lemma HREAL_LE_ADD_RCANCEL: "hreal_le (hreal_add x xb) (hreal_add xa xb) = hreal_le x xa" |
| 17644 | 1819 |
by (import hollight HREAL_LE_ADD_RCANCEL) |
1820 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1821 |
lemma HREAL_ADD_RID: "hreal_add x (hreal_of_num 0) = x" |
| 17644 | 1822 |
by (import hollight HREAL_ADD_RID) |
1823 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1824 |
lemma HREAL_ADD_RDISTRIB: "hreal_mul (hreal_add x xa) xb = hreal_add (hreal_mul x xb) (hreal_mul xa xb)" |
| 17644 | 1825 |
by (import hollight HREAL_ADD_RDISTRIB) |
1826 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1827 |
lemma HREAL_MUL_LZERO: "hreal_mul (hreal_of_num 0) m = hreal_of_num 0" |
| 17644 | 1828 |
by (import hollight HREAL_MUL_LZERO) |
1829 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1830 |
lemma HREAL_MUL_RZERO: "hreal_mul x (hreal_of_num 0) = hreal_of_num 0" |
| 17644 | 1831 |
by (import hollight HREAL_MUL_RZERO) |
1832 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1833 |
lemma HREAL_ADD_AC: "hreal_add m n = hreal_add n m & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1834 |
hreal_add (hreal_add m n) p = hreal_add m (hreal_add n p) & |
| 17644 | 1835 |
hreal_add m (hreal_add n p) = hreal_add n (hreal_add m p)" |
1836 |
by (import hollight HREAL_ADD_AC) |
|
1837 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1838 |
lemma HREAL_LE_ADD2: "hreal_le a b & hreal_le c d ==> hreal_le (hreal_add a c) (hreal_add b d)" |
| 17644 | 1839 |
by (import hollight HREAL_LE_ADD2) |
1840 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1841 |
lemma HREAL_LE_MUL_RCANCEL_IMP: "hreal_le a b ==> hreal_le (hreal_mul a c) (hreal_mul b c)" |
| 17644 | 1842 |
by (import hollight HREAL_LE_MUL_RCANCEL_IMP) |
1843 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1844 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1845 |
treal_of_num :: "nat => hreal * hreal" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1846 |
"treal_of_num == %u. (hreal_of_num u, hreal_of_num 0)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1847 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1848 |
lemma DEF_treal_of_num: "treal_of_num = (%u. (hreal_of_num u, hreal_of_num 0))" |
| 17644 | 1849 |
by (import hollight DEF_treal_of_num) |
1850 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1851 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1852 |
treal_neg :: "hreal * hreal => hreal * hreal" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1853 |
"treal_neg == %u. (snd u, fst u)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1854 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1855 |
lemma DEF_treal_neg: "treal_neg = (%u. (snd u, fst u))" |
| 17644 | 1856 |
by (import hollight DEF_treal_neg) |
1857 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1858 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1859 |
treal_add :: "hreal * hreal => hreal * hreal => hreal * hreal" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1860 |
"treal_add == %u ua. (hreal_add (fst u) (fst ua), hreal_add (snd u) (snd ua))" |
| 17644 | 1861 |
|
1862 |
lemma DEF_treal_add: "treal_add = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1863 |
(%u ua. (hreal_add (fst u) (fst ua), hreal_add (snd u) (snd ua)))" |
| 17644 | 1864 |
by (import hollight DEF_treal_add) |
1865 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1866 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1867 |
treal_mul :: "hreal * hreal => hreal * hreal => hreal * hreal" where |
| 17644 | 1868 |
"treal_mul == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1869 |
%u ua. |
| 17644 | 1870 |
(hreal_add (hreal_mul (fst u) (fst ua)) (hreal_mul (snd u) (snd ua)), |
1871 |
hreal_add (hreal_mul (fst u) (snd ua)) (hreal_mul (snd u) (fst ua)))" |
|
1872 |
||
1873 |
lemma DEF_treal_mul: "treal_mul = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1874 |
(%u ua. |
| 17644 | 1875 |
(hreal_add (hreal_mul (fst u) (fst ua)) (hreal_mul (snd u) (snd ua)), |
1876 |
hreal_add (hreal_mul (fst u) (snd ua)) (hreal_mul (snd u) (fst ua))))" |
|
1877 |
by (import hollight DEF_treal_mul) |
|
1878 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1879 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1880 |
treal_le :: "hreal * hreal => hreal * hreal => bool" where |
| 17644 | 1881 |
"treal_le == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1882 |
%u ua. hreal_le (hreal_add (fst u) (snd ua)) (hreal_add (fst ua) (snd u))" |
| 17644 | 1883 |
|
1884 |
lemma DEF_treal_le: "treal_le = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1885 |
(%u ua. hreal_le (hreal_add (fst u) (snd ua)) (hreal_add (fst ua) (snd u)))" |
| 17644 | 1886 |
by (import hollight DEF_treal_le) |
1887 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1888 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1889 |
treal_inv :: "hreal * hreal => hreal * hreal" where |
| 17644 | 1890 |
"treal_inv == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1891 |
%u. if fst u = snd u then (hreal_of_num 0, hreal_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1892 |
else if hreal_le (snd u) (fst u) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1893 |
then (hreal_inv (SOME d. fst u = hreal_add (snd u) d), |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1894 |
hreal_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1895 |
else (hreal_of_num 0, |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1896 |
hreal_inv (SOME d. snd u = hreal_add (fst u) d))" |
| 17644 | 1897 |
|
1898 |
lemma DEF_treal_inv: "treal_inv = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1899 |
(%u. if fst u = snd u then (hreal_of_num 0, hreal_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1900 |
else if hreal_le (snd u) (fst u) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1901 |
then (hreal_inv (SOME d. fst u = hreal_add (snd u) d), |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1902 |
hreal_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1903 |
else (hreal_of_num 0, |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1904 |
hreal_inv (SOME d. snd u = hreal_add (fst u) d)))" |
| 17644 | 1905 |
by (import hollight DEF_treal_inv) |
1906 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1907 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1908 |
treal_eq :: "hreal * hreal => hreal * hreal => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1909 |
"treal_eq == %u ua. hreal_add (fst u) (snd ua) = hreal_add (fst ua) (snd u)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1910 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1911 |
lemma DEF_treal_eq: "treal_eq = (%u ua. hreal_add (fst u) (snd ua) = hreal_add (fst ua) (snd u))" |
| 17644 | 1912 |
by (import hollight DEF_treal_eq) |
1913 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1914 |
lemma TREAL_EQ_REFL: "treal_eq x x" |
| 17644 | 1915 |
by (import hollight TREAL_EQ_REFL) |
1916 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1917 |
lemma TREAL_EQ_SYM: "treal_eq x y = treal_eq y x" |
| 17644 | 1918 |
by (import hollight TREAL_EQ_SYM) |
1919 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1920 |
lemma TREAL_EQ_TRANS: "treal_eq x y & treal_eq y z ==> treal_eq x z" |
| 17644 | 1921 |
by (import hollight TREAL_EQ_TRANS) |
1922 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1923 |
lemma TREAL_EQ_AP: "x = xa ==> treal_eq x xa" |
| 17644 | 1924 |
by (import hollight TREAL_EQ_AP) |
1925 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1926 |
lemma TREAL_OF_NUM_EQ: "treal_eq (treal_of_num x) (treal_of_num xa) = (x = xa)" |
| 17644 | 1927 |
by (import hollight TREAL_OF_NUM_EQ) |
1928 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1929 |
lemma TREAL_OF_NUM_LE: "treal_le (treal_of_num x) (treal_of_num xa) = (x <= xa)" |
| 17644 | 1930 |
by (import hollight TREAL_OF_NUM_LE) |
1931 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1932 |
lemma TREAL_OF_NUM_ADD: "treal_eq (treal_add (treal_of_num x) (treal_of_num xa)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1933 |
(treal_of_num (x + xa))" |
| 17644 | 1934 |
by (import hollight TREAL_OF_NUM_ADD) |
1935 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1936 |
lemma TREAL_OF_NUM_MUL: "treal_eq (treal_mul (treal_of_num x) (treal_of_num xa)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1937 |
(treal_of_num (x * xa))" |
| 17644 | 1938 |
by (import hollight TREAL_OF_NUM_MUL) |
1939 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1940 |
lemma TREAL_ADD_SYM_EQ: "treal_add x y = treal_add y x" |
| 17644 | 1941 |
by (import hollight TREAL_ADD_SYM_EQ) |
1942 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1943 |
lemma TREAL_MUL_SYM_EQ: "treal_mul x y = treal_mul y x" |
| 17644 | 1944 |
by (import hollight TREAL_MUL_SYM_EQ) |
1945 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1946 |
lemma TREAL_ADD_SYM: "treal_eq (treal_add x y) (treal_add y x)" |
| 17644 | 1947 |
by (import hollight TREAL_ADD_SYM) |
1948 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1949 |
lemma TREAL_ADD_ASSOC: "treal_eq (treal_add x (treal_add y z)) (treal_add (treal_add x y) z)" |
| 17644 | 1950 |
by (import hollight TREAL_ADD_ASSOC) |
1951 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1952 |
lemma TREAL_ADD_LID: "treal_eq (treal_add (treal_of_num 0) x) x" |
| 17644 | 1953 |
by (import hollight TREAL_ADD_LID) |
1954 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1955 |
lemma TREAL_ADD_LINV: "treal_eq (treal_add (treal_neg x) x) (treal_of_num 0)" |
| 17644 | 1956 |
by (import hollight TREAL_ADD_LINV) |
1957 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1958 |
lemma TREAL_MUL_SYM: "treal_eq (treal_mul x xa) (treal_mul xa x)" |
| 17644 | 1959 |
by (import hollight TREAL_MUL_SYM) |
1960 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1961 |
lemma TREAL_MUL_ASSOC: "treal_eq (treal_mul x (treal_mul y z)) (treal_mul (treal_mul x y) z)" |
| 17644 | 1962 |
by (import hollight TREAL_MUL_ASSOC) |
1963 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1964 |
lemma TREAL_MUL_LID: "treal_eq (treal_mul (treal_of_num 1) x) x" |
| 17644 | 1965 |
by (import hollight TREAL_MUL_LID) |
1966 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1967 |
lemma TREAL_ADD_LDISTRIB: "treal_eq (treal_mul x (treal_add y z)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1968 |
(treal_add (treal_mul x y) (treal_mul x z))" |
| 17644 | 1969 |
by (import hollight TREAL_ADD_LDISTRIB) |
1970 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1971 |
lemma TREAL_LE_REFL: "treal_le x x" |
| 17644 | 1972 |
by (import hollight TREAL_LE_REFL) |
1973 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1974 |
lemma TREAL_LE_ANTISYM: "(treal_le x y & treal_le y x) = treal_eq x y" |
| 17644 | 1975 |
by (import hollight TREAL_LE_ANTISYM) |
1976 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1977 |
lemma TREAL_LE_TRANS: "treal_le x y & treal_le y z ==> treal_le x z" |
| 17644 | 1978 |
by (import hollight TREAL_LE_TRANS) |
1979 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1980 |
lemma TREAL_LE_TOTAL: "treal_le x y | treal_le y x" |
| 17644 | 1981 |
by (import hollight TREAL_LE_TOTAL) |
1982 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1983 |
lemma TREAL_LE_LADD_IMP: "treal_le y z ==> treal_le (treal_add x y) (treal_add x z)" |
| 17644 | 1984 |
by (import hollight TREAL_LE_LADD_IMP) |
1985 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1986 |
lemma TREAL_LE_MUL: "treal_le (treal_of_num 0) x & treal_le (treal_of_num 0) y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1987 |
==> treal_le (treal_of_num 0) (treal_mul x y)" |
| 17644 | 1988 |
by (import hollight TREAL_LE_MUL) |
1989 |
||
| 17652 | 1990 |
lemma TREAL_INV_0: "treal_eq (treal_inv (treal_of_num 0)) (treal_of_num 0)" |
| 17644 | 1991 |
by (import hollight TREAL_INV_0) |
1992 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1993 |
lemma TREAL_MUL_LINV: "~ treal_eq x (treal_of_num 0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1994 |
==> treal_eq (treal_mul (treal_inv x) x) (treal_of_num 1)" |
| 17644 | 1995 |
by (import hollight TREAL_MUL_LINV) |
1996 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
1997 |
lemma TREAL_OF_NUM_WELLDEF: "m = n ==> treal_eq (treal_of_num m) (treal_of_num n)" |
| 17644 | 1998 |
by (import hollight TREAL_OF_NUM_WELLDEF) |
1999 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2000 |
lemma TREAL_NEG_WELLDEF: "treal_eq x1 x2 ==> treal_eq (treal_neg x1) (treal_neg x2)" |
| 17644 | 2001 |
by (import hollight TREAL_NEG_WELLDEF) |
2002 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2003 |
lemma TREAL_ADD_WELLDEFR: "treal_eq x1 x2 ==> treal_eq (treal_add x1 y) (treal_add x2 y)" |
| 17644 | 2004 |
by (import hollight TREAL_ADD_WELLDEFR) |
2005 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2006 |
lemma TREAL_ADD_WELLDEF: "treal_eq x1 x2 & treal_eq y1 y2 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2007 |
==> treal_eq (treal_add x1 y1) (treal_add x2 y2)" |
| 17644 | 2008 |
by (import hollight TREAL_ADD_WELLDEF) |
2009 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2010 |
lemma TREAL_MUL_WELLDEFR: "treal_eq x1 x2 ==> treal_eq (treal_mul x1 y) (treal_mul x2 y)" |
| 17644 | 2011 |
by (import hollight TREAL_MUL_WELLDEFR) |
2012 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2013 |
lemma TREAL_MUL_WELLDEF: "treal_eq x1 x2 & treal_eq y1 y2 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2014 |
==> treal_eq (treal_mul x1 y1) (treal_mul x2 y2)" |
| 17644 | 2015 |
by (import hollight TREAL_MUL_WELLDEF) |
2016 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2017 |
lemma TREAL_EQ_IMP_LE: "treal_eq x y ==> treal_le x y" |
| 17644 | 2018 |
by (import hollight TREAL_EQ_IMP_LE) |
2019 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2020 |
lemma TREAL_LE_WELLDEF: "treal_eq x1 x2 & treal_eq y1 y2 ==> treal_le x1 y1 = treal_le x2 y2" |
| 17644 | 2021 |
by (import hollight TREAL_LE_WELLDEF) |
2022 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2023 |
lemma TREAL_INV_WELLDEF: "treal_eq x y ==> treal_eq (treal_inv x) (treal_inv y)" |
| 17644 | 2024 |
by (import hollight TREAL_INV_WELLDEF) |
2025 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2026 |
typedef (open) real = "{s. EX x. s = treal_eq x}" morphisms "dest_real" "mk_real"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2027 |
apply (rule light_ex_imp_nonempty[where t="treal_eq x"]) |
| 17644 | 2028 |
by (import hollight TYDEF_real) |
2029 |
||
2030 |
syntax |
|
2031 |
dest_real :: _ |
|
2032 |
||
2033 |
syntax |
|
2034 |
mk_real :: _ |
|
2035 |
||
2036 |
lemmas "TYDEF_real_@intern" = typedef_hol2hollight |
|
2037 |
[where a="a :: hollight.real" and r=r , |
|
2038 |
OF type_definition_real] |
|
2039 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2040 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2041 |
real_of_num :: "nat => hollight.real" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2042 |
"real_of_num == %m. mk_real (treal_eq (treal_of_num m))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2043 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2044 |
lemma DEF_real_of_num: "real_of_num = (%m. mk_real (treal_eq (treal_of_num m)))" |
| 17644 | 2045 |
by (import hollight DEF_real_of_num) |
2046 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2047 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2048 |
real_neg :: "hollight.real => hollight.real" where |
| 17644 | 2049 |
"real_neg == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2050 |
%x1. mk_real (%u. EX x1a. treal_eq (treal_neg x1a) u & dest_real x1 x1a)" |
| 17644 | 2051 |
|
2052 |
lemma DEF_real_neg: "real_neg = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2053 |
(%x1. mk_real (%u. EX x1a. treal_eq (treal_neg x1a) u & dest_real x1 x1a))" |
| 17644 | 2054 |
by (import hollight DEF_real_neg) |
2055 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2056 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2057 |
real_add :: "hollight.real => hollight.real => hollight.real" where |
| 17644 | 2058 |
"real_add == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2059 |
%x1 y1. |
| 17644 | 2060 |
mk_real |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2061 |
(%u. EX x1a y1a. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2062 |
treal_eq (treal_add x1a y1a) u & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2063 |
dest_real x1 x1a & dest_real y1 y1a)" |
| 17644 | 2064 |
|
2065 |
lemma DEF_real_add: "real_add = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2066 |
(%x1 y1. |
| 17644 | 2067 |
mk_real |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2068 |
(%u. EX x1a y1a. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2069 |
treal_eq (treal_add x1a y1a) u & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2070 |
dest_real x1 x1a & dest_real y1 y1a))" |
| 17644 | 2071 |
by (import hollight DEF_real_add) |
2072 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2073 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2074 |
real_mul :: "hollight.real => hollight.real => hollight.real" where |
| 17644 | 2075 |
"real_mul == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2076 |
%x1 y1. |
| 17644 | 2077 |
mk_real |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2078 |
(%u. EX x1a y1a. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2079 |
treal_eq (treal_mul x1a y1a) u & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2080 |
dest_real x1 x1a & dest_real y1 y1a)" |
| 17644 | 2081 |
|
2082 |
lemma DEF_real_mul: "real_mul = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2083 |
(%x1 y1. |
| 17644 | 2084 |
mk_real |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2085 |
(%u. EX x1a y1a. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2086 |
treal_eq (treal_mul x1a y1a) u & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2087 |
dest_real x1 x1a & dest_real y1 y1a))" |
| 17644 | 2088 |
by (import hollight DEF_real_mul) |
2089 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2090 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2091 |
real_le :: "hollight.real => hollight.real => bool" where |
| 17644 | 2092 |
"real_le == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2093 |
%x1 y1. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2094 |
SOME u. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2095 |
EX x1a y1a. treal_le x1a y1a = u & dest_real x1 x1a & dest_real y1 y1a" |
| 17644 | 2096 |
|
2097 |
lemma DEF_real_le: "real_le = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2098 |
(%x1 y1. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2099 |
SOME u. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2100 |
EX x1a y1a. |
| 17644 | 2101 |
treal_le x1a y1a = u & dest_real x1 x1a & dest_real y1 y1a)" |
2102 |
by (import hollight DEF_real_le) |
|
2103 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2104 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2105 |
real_inv :: "hollight.real => hollight.real" where |
| 17644 | 2106 |
"real_inv == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2107 |
%x. mk_real (%u. EX xa. treal_eq (treal_inv xa) u & dest_real x xa)" |
| 17644 | 2108 |
|
2109 |
lemma DEF_real_inv: "real_inv = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2110 |
(%x. mk_real (%u. EX xa. treal_eq (treal_inv xa) u & dest_real x xa))" |
| 17644 | 2111 |
by (import hollight DEF_real_inv) |
2112 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2113 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2114 |
real_sub :: "hollight.real => hollight.real => hollight.real" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2115 |
"real_sub == %u ua. real_add u (real_neg ua)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2116 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2117 |
lemma DEF_real_sub: "real_sub = (%u ua. real_add u (real_neg ua))" |
| 17644 | 2118 |
by (import hollight DEF_real_sub) |
2119 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2120 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2121 |
real_lt :: "hollight.real => hollight.real => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2122 |
"real_lt == %u ua. ~ real_le ua u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2123 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2124 |
lemma DEF_real_lt: "real_lt = (%u ua. ~ real_le ua u)" |
| 17644 | 2125 |
by (import hollight DEF_real_lt) |
2126 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2127 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2128 |
real_ge :: "hollight.real => hollight.real => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2129 |
"real_ge == %u ua. real_le ua u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2130 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2131 |
lemma DEF_real_ge: "real_ge = (%u ua. real_le ua u)" |
| 17644 | 2132 |
by (import hollight DEF_real_ge) |
2133 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2134 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2135 |
real_gt :: "hollight.real => hollight.real => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2136 |
"real_gt == %u ua. real_lt ua u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2137 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2138 |
lemma DEF_real_gt: "real_gt = (%u ua. real_lt ua u)" |
| 17644 | 2139 |
by (import hollight DEF_real_gt) |
2140 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2141 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2142 |
real_abs :: "hollight.real => hollight.real" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2143 |
"real_abs == %u. if real_le (real_of_num 0) u then u else real_neg u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2144 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2145 |
lemma DEF_real_abs: "real_abs = (%u. if real_le (real_of_num 0) u then u else real_neg u)" |
| 17644 | 2146 |
by (import hollight DEF_real_abs) |
2147 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2148 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2149 |
real_pow :: "hollight.real => nat => hollight.real" where |
| 17644 | 2150 |
"real_pow == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2151 |
SOME real_pow. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2152 |
(ALL x. real_pow x 0 = real_of_num 1) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2153 |
(ALL x n. real_pow x (Suc n) = real_mul x (real_pow x n))" |
| 17644 | 2154 |
|
2155 |
lemma DEF_real_pow: "real_pow = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2156 |
(SOME real_pow. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2157 |
(ALL x. real_pow x 0 = real_of_num 1) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2158 |
(ALL x n. real_pow x (Suc n) = real_mul x (real_pow x n)))" |
| 17644 | 2159 |
by (import hollight DEF_real_pow) |
2160 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2161 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2162 |
real_div :: "hollight.real => hollight.real => hollight.real" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2163 |
"real_div == %u ua. real_mul u (real_inv ua)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2164 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2165 |
lemma DEF_real_div: "real_div = (%u ua. real_mul u (real_inv ua))" |
| 17644 | 2166 |
by (import hollight DEF_real_div) |
2167 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2168 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2169 |
real_max :: "hollight.real => hollight.real => hollight.real" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2170 |
"real_max == %u ua. if real_le u ua then ua else u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2171 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2172 |
lemma DEF_real_max: "real_max = (%u ua. if real_le u ua then ua else u)" |
| 17644 | 2173 |
by (import hollight DEF_real_max) |
2174 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2175 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2176 |
real_min :: "hollight.real => hollight.real => hollight.real" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2177 |
"real_min == %u ua. if real_le u ua then u else ua" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2178 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2179 |
lemma DEF_real_min: "real_min = (%u ua. if real_le u ua then u else ua)" |
| 17644 | 2180 |
by (import hollight DEF_real_min) |
2181 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2182 |
lemma REAL_HREAL_LEMMA1: "EX x. (ALL xa. real_le (real_of_num 0) xa = (EX y. xa = x y)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2183 |
(ALL y z. hreal_le y z = real_le (x y) (x z))" |
| 17644 | 2184 |
by (import hollight REAL_HREAL_LEMMA1) |
2185 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2186 |
lemma REAL_HREAL_LEMMA2: "EX x r. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2187 |
(ALL xa. x (r xa) = xa) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2188 |
(ALL xa. real_le (real_of_num 0) xa --> r (x xa) = xa) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2189 |
(ALL x. real_le (real_of_num 0) (r x)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2190 |
(ALL x y. hreal_le x y = real_le (r x) (r y))" |
| 17644 | 2191 |
by (import hollight REAL_HREAL_LEMMA2) |
2192 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2193 |
lemma REAL_COMPLETE_SOMEPOS: "(EX x. P x & real_le (real_of_num 0) x) & (EX M. ALL x. P x --> real_le x M) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2194 |
==> EX M. (ALL x. P x --> real_le x M) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2195 |
(ALL M'. (ALL x. P x --> real_le x M') --> real_le M M')" |
| 17644 | 2196 |
by (import hollight REAL_COMPLETE_SOMEPOS) |
2197 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2198 |
lemma REAL_COMPLETE: "Ex P & (EX M. ALL x. P x --> real_le x M) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2199 |
==> EX M. (ALL x. P x --> real_le x M) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2200 |
(ALL M'. (ALL x. P x --> real_le x M') --> real_le M M')" |
| 17644 | 2201 |
by (import hollight REAL_COMPLETE) |
2202 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2203 |
lemma REAL_ADD_AC: "real_add m n = real_add n m & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2204 |
real_add (real_add m n) p = real_add m (real_add n p) & |
| 17644 | 2205 |
real_add m (real_add n p) = real_add n (real_add m p)" |
2206 |
by (import hollight REAL_ADD_AC) |
|
2207 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2208 |
lemma REAL_ADD_RINV: "real_add x (real_neg x) = real_of_num 0" |
| 17644 | 2209 |
by (import hollight REAL_ADD_RINV) |
2210 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2211 |
lemma REAL_EQ_ADD_LCANCEL: "(real_add x y = real_add x z) = (y = z)" |
| 17644 | 2212 |
by (import hollight REAL_EQ_ADD_LCANCEL) |
2213 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2214 |
lemma REAL_EQ_ADD_RCANCEL: "(real_add x z = real_add y z) = (x = y)" |
| 17644 | 2215 |
by (import hollight REAL_EQ_ADD_RCANCEL) |
2216 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2217 |
lemma REAL_MUL_RZERO: "real_mul x (real_of_num 0) = real_of_num 0" |
| 19093 | 2218 |
by (import hollight REAL_MUL_RZERO) |
2219 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2220 |
lemma REAL_MUL_LZERO: "real_mul (real_of_num 0) x = real_of_num 0" |
| 19093 | 2221 |
by (import hollight REAL_MUL_LZERO) |
2222 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2223 |
lemma REAL_NEG_NEG: "real_neg (real_neg x) = x" |
| 17644 | 2224 |
by (import hollight REAL_NEG_NEG) |
2225 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2226 |
lemma REAL_MUL_RNEG: "real_mul x (real_neg y) = real_neg (real_mul x y)" |
| 17644 | 2227 |
by (import hollight REAL_MUL_RNEG) |
2228 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2229 |
lemma REAL_MUL_LNEG: "real_mul (real_neg x) y = real_neg (real_mul x y)" |
| 17644 | 2230 |
by (import hollight REAL_MUL_LNEG) |
2231 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2232 |
lemma REAL_NEG_ADD: "real_neg (real_add x y) = real_add (real_neg x) (real_neg y)" |
| 19093 | 2233 |
by (import hollight REAL_NEG_ADD) |
2234 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2235 |
lemma REAL_ADD_RID: "real_add x (real_of_num 0) = x" |
| 17644 | 2236 |
by (import hollight REAL_ADD_RID) |
2237 |
||
| 19093 | 2238 |
lemma REAL_NEG_0: "real_neg (real_of_num 0) = real_of_num 0" |
2239 |
by (import hollight REAL_NEG_0) |
|
2240 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2241 |
lemma REAL_LE_LNEG: "real_le (real_neg x) y = real_le (real_of_num 0) (real_add x y)" |
| 17644 | 2242 |
by (import hollight REAL_LE_LNEG) |
2243 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2244 |
lemma REAL_LE_NEG2: "real_le (real_neg x) (real_neg y) = real_le y x" |
| 17644 | 2245 |
by (import hollight REAL_LE_NEG2) |
2246 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2247 |
lemma REAL_LE_RNEG: "real_le x (real_neg y) = real_le (real_add x y) (real_of_num 0)" |
| 17644 | 2248 |
by (import hollight REAL_LE_RNEG) |
2249 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2250 |
lemma REAL_OF_NUM_POW: "real_pow (real_of_num x) n = real_of_num (x ^ n)" |
| 17644 | 2251 |
by (import hollight REAL_OF_NUM_POW) |
2252 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2253 |
lemma REAL_POW_NEG: "real_pow (real_neg x) n = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2254 |
(if even n then real_pow x n else real_neg (real_pow x n))" |
| 17644 | 2255 |
by (import hollight REAL_POW_NEG) |
2256 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2257 |
lemma REAL_ABS_NUM: "real_abs (real_of_num x) = real_of_num x" |
| 17644 | 2258 |
by (import hollight REAL_ABS_NUM) |
2259 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2260 |
lemma REAL_ABS_NEG: "real_abs (real_neg x) = real_abs x" |
| 17644 | 2261 |
by (import hollight REAL_ABS_NEG) |
2262 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2263 |
lemma REAL_LTE_TOTAL: "real_lt x xa | real_le xa x" |
| 17644 | 2264 |
by (import hollight REAL_LTE_TOTAL) |
2265 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2266 |
lemma REAL_LET_TOTAL: "real_le x xa | real_lt xa x" |
| 17644 | 2267 |
by (import hollight REAL_LET_TOTAL) |
2268 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2269 |
lemma REAL_LT_IMP_LE: "real_lt x y ==> real_le x y" |
| 19093 | 2270 |
by (import hollight REAL_LT_IMP_LE) |
2271 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2272 |
lemma REAL_LTE_TRANS: "real_lt x y & real_le y z ==> real_lt x z" |
| 19093 | 2273 |
by (import hollight REAL_LTE_TRANS) |
2274 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2275 |
lemma REAL_LET_TRANS: "real_le x y & real_lt y z ==> real_lt x z" |
| 17644 | 2276 |
by (import hollight REAL_LET_TRANS) |
2277 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2278 |
lemma REAL_LT_TRANS: "real_lt x y & real_lt y z ==> real_lt x z" |
| 17644 | 2279 |
by (import hollight REAL_LT_TRANS) |
2280 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2281 |
lemma REAL_LE_ADD: "real_le (real_of_num 0) x & real_le (real_of_num 0) y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2282 |
==> real_le (real_of_num 0) (real_add x y)" |
| 17644 | 2283 |
by (import hollight REAL_LE_ADD) |
2284 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2285 |
lemma REAL_LTE_ANTISYM: "~ (real_lt x y & real_le y x)" |
| 17644 | 2286 |
by (import hollight REAL_LTE_ANTISYM) |
2287 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2288 |
lemma REAL_SUB_LE: "real_le (real_of_num 0) (real_sub x xa) = real_le xa x" |
| 19093 | 2289 |
by (import hollight REAL_SUB_LE) |
2290 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2291 |
lemma REAL_NEG_SUB: "real_neg (real_sub x xa) = real_sub xa x" |
| 19093 | 2292 |
by (import hollight REAL_NEG_SUB) |
2293 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2294 |
lemma REAL_LE_LT: "real_le x xa = (real_lt x xa | x = xa)" |
| 19093 | 2295 |
by (import hollight REAL_LE_LT) |
2296 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2297 |
lemma REAL_SUB_LT: "real_lt (real_of_num 0) (real_sub x xa) = real_lt xa x" |
| 19093 | 2298 |
by (import hollight REAL_SUB_LT) |
2299 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2300 |
lemma REAL_NOT_LT: "(~ real_lt x xa) = real_le xa x" |
| 19093 | 2301 |
by (import hollight REAL_NOT_LT) |
2302 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2303 |
lemma REAL_SUB_0: "(real_sub x y = real_of_num 0) = (x = y)" |
| 19093 | 2304 |
by (import hollight REAL_SUB_0) |
2305 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2306 |
lemma REAL_LT_LE: "real_lt x y = (real_le x y & x ~= y)" |
| 19093 | 2307 |
by (import hollight REAL_LT_LE) |
2308 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2309 |
lemma REAL_LT_REFL: "~ real_lt x x" |
| 17644 | 2310 |
by (import hollight REAL_LT_REFL) |
2311 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2312 |
lemma REAL_LTE_ADD: "real_lt (real_of_num 0) x & real_le (real_of_num 0) y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2313 |
==> real_lt (real_of_num 0) (real_add x y)" |
| 19093 | 2314 |
by (import hollight REAL_LTE_ADD) |
2315 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2316 |
lemma REAL_LET_ADD: "real_le (real_of_num 0) x & real_lt (real_of_num 0) y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2317 |
==> real_lt (real_of_num 0) (real_add x y)" |
| 17644 | 2318 |
by (import hollight REAL_LET_ADD) |
2319 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2320 |
lemma REAL_LT_ADD: "real_lt (real_of_num 0) x & real_lt (real_of_num 0) y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2321 |
==> real_lt (real_of_num 0) (real_add x y)" |
| 19093 | 2322 |
by (import hollight REAL_LT_ADD) |
2323 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2324 |
lemma REAL_ENTIRE: "(real_mul x y = real_of_num 0) = (x = real_of_num 0 | y = real_of_num 0)" |
| 17644 | 2325 |
by (import hollight REAL_ENTIRE) |
2326 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2327 |
lemma REAL_LE_NEGTOTAL: "real_le (real_of_num 0) x | real_le (real_of_num 0) (real_neg x)" |
| 19093 | 2328 |
by (import hollight REAL_LE_NEGTOTAL) |
2329 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2330 |
lemma REAL_LE_SQUARE: "real_le (real_of_num 0) (real_mul x x)" |
| 19093 | 2331 |
by (import hollight REAL_LE_SQUARE) |
2332 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2333 |
lemma REAL_MUL_RID: "real_mul x (real_of_num 1) = x" |
| 19093 | 2334 |
by (import hollight REAL_MUL_RID) |
2335 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2336 |
lemma REAL_POW_2: "real_pow x 2 = real_mul x x" |
| 17644 | 2337 |
by (import hollight REAL_POW_2) |
2338 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2339 |
lemma REAL_POLY_CLAUSES: "(ALL x y z. real_add x (real_add y z) = real_add (real_add x y) z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2340 |
(ALL x y. real_add x y = real_add y x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2341 |
(ALL x. real_add (real_of_num 0) x = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2342 |
(ALL x y z. real_mul x (real_mul y z) = real_mul (real_mul x y) z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2343 |
(ALL x y. real_mul x y = real_mul y x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2344 |
(ALL x. real_mul (real_of_num 1) x = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2345 |
(ALL x. real_mul (real_of_num 0) x = real_of_num 0) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2346 |
(ALL x xa xb. |
| 17644 | 2347 |
real_mul x (real_add xa xb) = |
2348 |
real_add (real_mul x xa) (real_mul x xb)) & |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2349 |
(ALL x. real_pow x 0 = real_of_num 1) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2350 |
(ALL x xa. real_pow x (Suc xa) = real_mul x (real_pow x xa))" |
| 17644 | 2351 |
by (import hollight REAL_POLY_CLAUSES) |
2352 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2353 |
lemma REAL_POLY_NEG_CLAUSES: "(ALL x. real_neg x = real_mul (real_neg (real_of_num 1)) x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2354 |
(ALL x xa. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2355 |
real_sub x xa = real_add x (real_mul (real_neg (real_of_num 1)) xa))" |
| 17644 | 2356 |
by (import hollight REAL_POLY_NEG_CLAUSES) |
2357 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2358 |
lemma REAL_POS: "real_le (real_of_num 0) (real_of_num x)" |
| 19093 | 2359 |
by (import hollight REAL_POS) |
2360 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2361 |
lemma REAL_OF_NUM_LT: "real_lt (real_of_num x) (real_of_num xa) = (x < xa)" |
| 17644 | 2362 |
by (import hollight REAL_OF_NUM_LT) |
2363 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2364 |
lemma REAL_OF_NUM_GE: "real_ge (real_of_num x) (real_of_num xa) = (xa <= x)" |
| 17644 | 2365 |
by (import hollight REAL_OF_NUM_GE) |
2366 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2367 |
lemma REAL_OF_NUM_GT: "real_gt (real_of_num x) (real_of_num xa) = (xa < x)" |
| 17644 | 2368 |
by (import hollight REAL_OF_NUM_GT) |
2369 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2370 |
lemma REAL_OF_NUM_MAX: "real_max (real_of_num x) (real_of_num xa) = real_of_num (max x xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2371 |
by (import hollight REAL_OF_NUM_MAX) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2372 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2373 |
lemma REAL_OF_NUM_MIN: "real_min (real_of_num x) (real_of_num xa) = real_of_num (min x xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2374 |
by (import hollight REAL_OF_NUM_MIN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2375 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2376 |
lemma REAL_OF_NUM_SUC: "real_add (real_of_num x) (real_of_num 1) = real_of_num (Suc x)" |
| 17644 | 2377 |
by (import hollight REAL_OF_NUM_SUC) |
2378 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2379 |
lemma REAL_OF_NUM_SUB: "m <= n ==> real_sub (real_of_num n) (real_of_num m) = real_of_num (n - m)" |
| 17644 | 2380 |
by (import hollight REAL_OF_NUM_SUB) |
2381 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2382 |
lemma REAL_MUL_AC: "real_mul m n = real_mul n m & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2383 |
real_mul (real_mul m n) p = real_mul m (real_mul n p) & |
| 17644 | 2384 |
real_mul m (real_mul n p) = real_mul n (real_mul m p)" |
2385 |
by (import hollight REAL_MUL_AC) |
|
2386 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2387 |
lemma REAL_ADD_RDISTRIB: "real_mul (real_add x y) z = real_add (real_mul x z) (real_mul y z)" |
| 17644 | 2388 |
by (import hollight REAL_ADD_RDISTRIB) |
2389 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2390 |
lemma REAL_LT_LADD_IMP: "real_lt y z ==> real_lt (real_add x y) (real_add x z)" |
| 17644 | 2391 |
by (import hollight REAL_LT_LADD_IMP) |
2392 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2393 |
lemma REAL_LT_MUL: "real_lt (real_of_num 0) x & real_lt (real_of_num 0) y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2394 |
==> real_lt (real_of_num 0) (real_mul x y)" |
| 17644 | 2395 |
by (import hollight REAL_LT_MUL) |
2396 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2397 |
lemma REAL_EQ_ADD_LCANCEL_0: "(real_add x y = x) = (y = real_of_num 0)" |
| 17644 | 2398 |
by (import hollight REAL_EQ_ADD_LCANCEL_0) |
2399 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2400 |
lemma REAL_EQ_ADD_RCANCEL_0: "(real_add x y = y) = (x = real_of_num 0)" |
| 17644 | 2401 |
by (import hollight REAL_EQ_ADD_RCANCEL_0) |
2402 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2403 |
lemma REAL_LNEG_UNIQ: "(real_add x y = real_of_num 0) = (x = real_neg y)" |
| 19093 | 2404 |
by (import hollight REAL_LNEG_UNIQ) |
2405 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2406 |
lemma REAL_RNEG_UNIQ: "(real_add x y = real_of_num 0) = (y = real_neg x)" |
| 19093 | 2407 |
by (import hollight REAL_RNEG_UNIQ) |
2408 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2409 |
lemma REAL_NEG_LMUL: "real_neg (real_mul x y) = real_mul (real_neg x) y" |
| 19093 | 2410 |
by (import hollight REAL_NEG_LMUL) |
2411 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2412 |
lemma REAL_NEG_RMUL: "real_neg (real_mul x y) = real_mul x (real_neg y)" |
| 19093 | 2413 |
by (import hollight REAL_NEG_RMUL) |
2414 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2415 |
lemma REAL_NEGNEG: "real_neg (real_neg x) = x" |
| 19093 | 2416 |
by (import hollight REAL_NEGNEG) |
2417 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2418 |
lemma REAL_NEG_MUL2: "real_mul (real_neg x) (real_neg y) = real_mul x y" |
| 19093 | 2419 |
by (import hollight REAL_NEG_MUL2) |
2420 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2421 |
lemma REAL_LT_LADD: "real_lt (real_add x y) (real_add x z) = real_lt y z" |
| 19093 | 2422 |
by (import hollight REAL_LT_LADD) |
2423 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2424 |
lemma REAL_LT_RADD: "real_lt (real_add x z) (real_add y z) = real_lt x y" |
| 19093 | 2425 |
by (import hollight REAL_LT_RADD) |
2426 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2427 |
lemma REAL_LT_ANTISYM: "~ (real_lt x y & real_lt y x)" |
| 19093 | 2428 |
by (import hollight REAL_LT_ANTISYM) |
2429 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2430 |
lemma REAL_LT_GT: "real_lt x y ==> ~ real_lt y x" |
| 19093 | 2431 |
by (import hollight REAL_LT_GT) |
2432 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2433 |
lemma REAL_NOT_EQ: "(x ~= y) = (real_lt x y | real_lt y x)" |
| 17644 | 2434 |
by (import hollight REAL_NOT_EQ) |
2435 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2436 |
lemma REAL_LET_ANTISYM: "~ (real_le x y & real_lt y x)" |
| 17644 | 2437 |
by (import hollight REAL_LET_ANTISYM) |
2438 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2439 |
lemma REAL_NEG_LT0: "real_lt (real_neg x) (real_of_num 0) = real_lt (real_of_num 0) x" |
| 19093 | 2440 |
by (import hollight REAL_NEG_LT0) |
2441 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2442 |
lemma REAL_NEG_GT0: "real_lt (real_of_num 0) (real_neg x) = real_lt x (real_of_num 0)" |
| 19093 | 2443 |
by (import hollight REAL_NEG_GT0) |
2444 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2445 |
lemma REAL_NEG_LE0: "real_le (real_neg x) (real_of_num 0) = real_le (real_of_num 0) x" |
| 19093 | 2446 |
by (import hollight REAL_NEG_LE0) |
2447 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2448 |
lemma REAL_NEG_GE0: "real_le (real_of_num 0) (real_neg x) = real_le x (real_of_num 0)" |
| 19093 | 2449 |
by (import hollight REAL_NEG_GE0) |
2450 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2451 |
lemma REAL_LT_TOTAL: "x = y | real_lt x y | real_lt y x" |
| 17644 | 2452 |
by (import hollight REAL_LT_TOTAL) |
2453 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2454 |
lemma REAL_LT_NEGTOTAL: "x = real_of_num 0 | |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2455 |
real_lt (real_of_num 0) x | real_lt (real_of_num 0) (real_neg x)" |
| 19093 | 2456 |
by (import hollight REAL_LT_NEGTOTAL) |
2457 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2458 |
lemma REAL_LE_01: "real_le (real_of_num 0) (real_of_num 1)" |
| 17644 | 2459 |
by (import hollight REAL_LE_01) |
2460 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2461 |
lemma REAL_LT_01: "real_lt (real_of_num 0) (real_of_num 1)" |
| 19093 | 2462 |
by (import hollight REAL_LT_01) |
2463 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2464 |
lemma REAL_LE_LADD: "real_le (real_add x y) (real_add x z) = real_le y z" |
| 19093 | 2465 |
by (import hollight REAL_LE_LADD) |
2466 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2467 |
lemma REAL_LE_RADD: "real_le (real_add x z) (real_add y z) = real_le x y" |
| 19093 | 2468 |
by (import hollight REAL_LE_RADD) |
2469 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2470 |
lemma REAL_LT_ADD2: "real_lt w x & real_lt y z ==> real_lt (real_add w y) (real_add x z)" |
| 19093 | 2471 |
by (import hollight REAL_LT_ADD2) |
2472 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2473 |
lemma REAL_LE_ADD2: "real_le w x & real_le y z ==> real_le (real_add w y) (real_add x z)" |
| 17644 | 2474 |
by (import hollight REAL_LE_ADD2) |
2475 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2476 |
lemma REAL_LT_LNEG: "real_lt (real_neg x) xa = real_lt (real_of_num 0) (real_add x xa)" |
| 17644 | 2477 |
by (import hollight REAL_LT_LNEG) |
2478 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2479 |
lemma REAL_LT_RNEG: "real_lt x (real_neg xa) = real_lt (real_add x xa) (real_of_num 0)" |
| 17644 | 2480 |
by (import hollight REAL_LT_RNEG) |
2481 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2482 |
lemma REAL_LT_ADDNEG: "real_lt y (real_add x (real_neg z)) = real_lt (real_add y z) x" |
| 19093 | 2483 |
by (import hollight REAL_LT_ADDNEG) |
2484 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2485 |
lemma REAL_LT_ADDNEG2: "real_lt (real_add x (real_neg y)) z = real_lt x (real_add z y)" |
| 19093 | 2486 |
by (import hollight REAL_LT_ADDNEG2) |
2487 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2488 |
lemma REAL_LT_ADD1: "real_le x y ==> real_lt x (real_add y (real_of_num 1))" |
| 19093 | 2489 |
by (import hollight REAL_LT_ADD1) |
2490 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2491 |
lemma REAL_SUB_ADD: "real_add (real_sub x y) y = x" |
| 19093 | 2492 |
by (import hollight REAL_SUB_ADD) |
2493 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2494 |
lemma REAL_SUB_ADD2: "real_add y (real_sub x y) = x" |
| 19093 | 2495 |
by (import hollight REAL_SUB_ADD2) |
2496 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2497 |
lemma REAL_SUB_REFL: "real_sub x x = real_of_num 0" |
| 19093 | 2498 |
by (import hollight REAL_SUB_REFL) |
2499 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2500 |
lemma REAL_LE_DOUBLE: "real_le (real_of_num 0) (real_add x x) = real_le (real_of_num 0) x" |
| 19093 | 2501 |
by (import hollight REAL_LE_DOUBLE) |
2502 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2503 |
lemma REAL_LE_NEGL: "real_le (real_neg x) x = real_le (real_of_num 0) x" |
| 19093 | 2504 |
by (import hollight REAL_LE_NEGL) |
2505 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2506 |
lemma REAL_LE_NEGR: "real_le x (real_neg x) = real_le x (real_of_num 0)" |
| 19093 | 2507 |
by (import hollight REAL_LE_NEGR) |
2508 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2509 |
lemma REAL_NEG_EQ_0: "(real_neg x = real_of_num 0) = (x = real_of_num 0)" |
| 17644 | 2510 |
by (import hollight REAL_NEG_EQ_0) |
2511 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2512 |
lemma REAL_ADD_SUB: "real_sub (real_add x y) x = y" |
| 17644 | 2513 |
by (import hollight REAL_ADD_SUB) |
2514 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2515 |
lemma REAL_NEG_EQ: "(real_neg x = y) = (x = real_neg y)" |
| 19093 | 2516 |
by (import hollight REAL_NEG_EQ) |
2517 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2518 |
lemma REAL_NEG_MINUS1: "real_neg x = real_mul (real_neg (real_of_num 1)) x" |
| 19093 | 2519 |
by (import hollight REAL_NEG_MINUS1) |
2520 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2521 |
lemma REAL_LT_IMP_NE: "real_lt x y ==> x ~= y" |
| 19093 | 2522 |
by (import hollight REAL_LT_IMP_NE) |
2523 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2524 |
lemma REAL_LE_ADDR: "real_le x (real_add x y) = real_le (real_of_num 0) y" |
| 17644 | 2525 |
by (import hollight REAL_LE_ADDR) |
2526 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2527 |
lemma REAL_LE_ADDL: "real_le y (real_add x y) = real_le (real_of_num 0) x" |
| 17644 | 2528 |
by (import hollight REAL_LE_ADDL) |
2529 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2530 |
lemma REAL_LT_ADDR: "real_lt x (real_add x y) = real_lt (real_of_num 0) y" |
| 17644 | 2531 |
by (import hollight REAL_LT_ADDR) |
2532 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2533 |
lemma REAL_LT_ADDL: "real_lt y (real_add x y) = real_lt (real_of_num 0) x" |
| 17644 | 2534 |
by (import hollight REAL_LT_ADDL) |
2535 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2536 |
lemma REAL_SUB_SUB: "real_sub (real_sub x y) x = real_neg y" |
| 19093 | 2537 |
by (import hollight REAL_SUB_SUB) |
2538 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2539 |
lemma REAL_LT_ADD_SUB: "real_lt (real_add x y) z = real_lt x (real_sub z y)" |
| 19093 | 2540 |
by (import hollight REAL_LT_ADD_SUB) |
2541 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2542 |
lemma REAL_LT_SUB_RADD: "real_lt (real_sub x y) z = real_lt x (real_add z y)" |
| 19093 | 2543 |
by (import hollight REAL_LT_SUB_RADD) |
2544 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2545 |
lemma REAL_LT_SUB_LADD: "real_lt x (real_sub y z) = real_lt (real_add x z) y" |
| 19093 | 2546 |
by (import hollight REAL_LT_SUB_LADD) |
2547 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2548 |
lemma REAL_LE_SUB_LADD: "real_le x (real_sub y z) = real_le (real_add x z) y" |
| 19093 | 2549 |
by (import hollight REAL_LE_SUB_LADD) |
2550 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2551 |
lemma REAL_LE_SUB_RADD: "real_le (real_sub x y) z = real_le x (real_add z y)" |
| 19093 | 2552 |
by (import hollight REAL_LE_SUB_RADD) |
2553 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2554 |
lemma REAL_LT_NEG: "real_lt (real_neg x) (real_neg y) = real_lt y x" |
| 19093 | 2555 |
by (import hollight REAL_LT_NEG) |
2556 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2557 |
lemma REAL_LE_NEG: "real_le (real_neg x) (real_neg y) = real_le y x" |
| 19093 | 2558 |
by (import hollight REAL_LE_NEG) |
2559 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2560 |
lemma REAL_ADD2_SUB2: "real_sub (real_add a b) (real_add c d) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2561 |
real_add (real_sub a c) (real_sub b d)" |
| 17644 | 2562 |
by (import hollight REAL_ADD2_SUB2) |
2563 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2564 |
lemma REAL_SUB_LZERO: "real_sub (real_of_num 0) x = real_neg x" |
| 19093 | 2565 |
by (import hollight REAL_SUB_LZERO) |
2566 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2567 |
lemma REAL_SUB_RZERO: "real_sub x (real_of_num 0) = x" |
| 19093 | 2568 |
by (import hollight REAL_SUB_RZERO) |
2569 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2570 |
lemma REAL_LET_ADD2: "real_le w x & real_lt y z ==> real_lt (real_add w y) (real_add x z)" |
| 17644 | 2571 |
by (import hollight REAL_LET_ADD2) |
2572 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2573 |
lemma REAL_LTE_ADD2: "real_lt w x & real_le y z ==> real_lt (real_add w y) (real_add x z)" |
| 19093 | 2574 |
by (import hollight REAL_LTE_ADD2) |
2575 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2576 |
lemma REAL_SUB_LNEG: "real_sub (real_neg x) y = real_neg (real_add x y)" |
| 19093 | 2577 |
by (import hollight REAL_SUB_LNEG) |
2578 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2579 |
lemma REAL_SUB_RNEG: "real_sub x (real_neg y) = real_add x y" |
| 19093 | 2580 |
by (import hollight REAL_SUB_RNEG) |
2581 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2582 |
lemma REAL_SUB_NEG2: "real_sub (real_neg x) (real_neg y) = real_sub y x" |
| 19093 | 2583 |
by (import hollight REAL_SUB_NEG2) |
2584 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2585 |
lemma REAL_SUB_TRIANGLE: "real_add (real_sub a b) (real_sub b c) = real_sub a c" |
| 19093 | 2586 |
by (import hollight REAL_SUB_TRIANGLE) |
2587 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2588 |
lemma REAL_EQ_SUB_LADD: "(x = real_sub y z) = (real_add x z = y)" |
| 17644 | 2589 |
by (import hollight REAL_EQ_SUB_LADD) |
2590 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2591 |
lemma REAL_EQ_SUB_RADD: "(real_sub x y = z) = (x = real_add z y)" |
| 17644 | 2592 |
by (import hollight REAL_EQ_SUB_RADD) |
2593 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2594 |
lemma REAL_SUB_SUB2: "real_sub x (real_sub x y) = y" |
| 19093 | 2595 |
by (import hollight REAL_SUB_SUB2) |
2596 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2597 |
lemma REAL_ADD_SUB2: "real_sub x (real_add x y) = real_neg y" |
| 17644 | 2598 |
by (import hollight REAL_ADD_SUB2) |
2599 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2600 |
lemma REAL_EQ_IMP_LE: "x = y ==> real_le x y" |
| 17644 | 2601 |
by (import hollight REAL_EQ_IMP_LE) |
2602 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2603 |
lemma REAL_POS_NZ: "real_lt (real_of_num 0) x ==> x ~= real_of_num 0" |
| 19093 | 2604 |
by (import hollight REAL_POS_NZ) |
2605 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2606 |
lemma REAL_DIFFSQ: "real_mul (real_add x y) (real_sub x y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2607 |
real_sub (real_mul x x) (real_mul y y)" |
| 17644 | 2608 |
by (import hollight REAL_DIFFSQ) |
2609 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2610 |
lemma REAL_EQ_NEG2: "(real_neg x = real_neg y) = (x = y)" |
| 17644 | 2611 |
by (import hollight REAL_EQ_NEG2) |
2612 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2613 |
lemma REAL_LT_NEG2: "real_lt (real_neg x) (real_neg y) = real_lt y x" |
| 17644 | 2614 |
by (import hollight REAL_LT_NEG2) |
2615 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2616 |
lemma REAL_SUB_LDISTRIB: "real_mul x (real_sub y z) = real_sub (real_mul x y) (real_mul x z)" |
| 19093 | 2617 |
by (import hollight REAL_SUB_LDISTRIB) |
2618 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2619 |
lemma REAL_SUB_RDISTRIB: "real_mul (real_sub x y) z = real_sub (real_mul x z) (real_mul y z)" |
| 19093 | 2620 |
by (import hollight REAL_SUB_RDISTRIB) |
2621 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2622 |
lemma REAL_ABS_ZERO: "(real_abs x = real_of_num 0) = (x = real_of_num 0)" |
| 17644 | 2623 |
by (import hollight REAL_ABS_ZERO) |
2624 |
||
| 17652 | 2625 |
lemma REAL_ABS_0: "real_abs (real_of_num 0) = real_of_num 0" |
| 17644 | 2626 |
by (import hollight REAL_ABS_0) |
2627 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2628 |
lemma REAL_ABS_1: "real_abs (real_of_num 1) = real_of_num 1" |
| 17644 | 2629 |
by (import hollight REAL_ABS_1) |
2630 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2631 |
lemma REAL_ABS_TRIANGLE: "real_le (real_abs (real_add x y)) (real_add (real_abs x) (real_abs y))" |
| 17644 | 2632 |
by (import hollight REAL_ABS_TRIANGLE) |
2633 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2634 |
lemma REAL_ABS_TRIANGLE_LE: "real_le (real_add (real_abs x) (real_abs (real_sub y x))) z |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2635 |
==> real_le (real_abs y) z" |
| 17644 | 2636 |
by (import hollight REAL_ABS_TRIANGLE_LE) |
2637 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2638 |
lemma REAL_ABS_TRIANGLE_LT: "real_lt (real_add (real_abs x) (real_abs (real_sub y x))) z |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2639 |
==> real_lt (real_abs y) z" |
| 17644 | 2640 |
by (import hollight REAL_ABS_TRIANGLE_LT) |
2641 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2642 |
lemma REAL_ABS_POS: "real_le (real_of_num 0) (real_abs x)" |
| 17644 | 2643 |
by (import hollight REAL_ABS_POS) |
2644 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2645 |
lemma REAL_ABS_SUB: "real_abs (real_sub x y) = real_abs (real_sub y x)" |
| 17644 | 2646 |
by (import hollight REAL_ABS_SUB) |
2647 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2648 |
lemma REAL_ABS_NZ: "(x ~= real_of_num 0) = real_lt (real_of_num 0) (real_abs x)" |
| 17644 | 2649 |
by (import hollight REAL_ABS_NZ) |
2650 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2651 |
lemma REAL_ABS_ABS: "real_abs (real_abs x) = real_abs x" |
| 17644 | 2652 |
by (import hollight REAL_ABS_ABS) |
2653 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2654 |
lemma REAL_ABS_LE: "real_le x (real_abs x)" |
| 17644 | 2655 |
by (import hollight REAL_ABS_LE) |
2656 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2657 |
lemma REAL_ABS_REFL: "(real_abs x = x) = real_le (real_of_num 0) x" |
| 17644 | 2658 |
by (import hollight REAL_ABS_REFL) |
2659 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2660 |
lemma REAL_ABS_BETWEEN: "(real_lt (real_of_num 0) d & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2661 |
real_lt (real_sub x d) y & real_lt y (real_add x d)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2662 |
real_lt (real_abs (real_sub y x)) d" |
| 17644 | 2663 |
by (import hollight REAL_ABS_BETWEEN) |
2664 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2665 |
lemma REAL_ABS_BOUND: "real_lt (real_abs (real_sub x y)) d ==> real_lt y (real_add x d)" |
| 17644 | 2666 |
by (import hollight REAL_ABS_BOUND) |
2667 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2668 |
lemma REAL_ABS_STILLNZ: "real_lt (real_abs (real_sub x y)) (real_abs y) ==> x ~= real_of_num 0" |
| 17644 | 2669 |
by (import hollight REAL_ABS_STILLNZ) |
2670 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2671 |
lemma REAL_ABS_CASES: "x = real_of_num 0 | real_lt (real_of_num 0) (real_abs x)" |
| 17644 | 2672 |
by (import hollight REAL_ABS_CASES) |
2673 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2674 |
lemma REAL_ABS_BETWEEN1: "real_lt x z & real_lt (real_abs (real_sub y x)) (real_sub z x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2675 |
==> real_lt y z" |
| 17644 | 2676 |
by (import hollight REAL_ABS_BETWEEN1) |
2677 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2678 |
lemma REAL_ABS_SIGN: "real_lt (real_abs (real_sub x y)) y ==> real_lt (real_of_num 0) x" |
| 17644 | 2679 |
by (import hollight REAL_ABS_SIGN) |
2680 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2681 |
lemma REAL_ABS_SIGN2: "real_lt (real_abs (real_sub x y)) (real_neg y) ==> real_lt x (real_of_num 0)" |
| 17644 | 2682 |
by (import hollight REAL_ABS_SIGN2) |
2683 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2684 |
lemma REAL_ABS_CIRCLE: "real_lt (real_abs h) (real_sub (real_abs y) (real_abs x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2685 |
==> real_lt (real_abs (real_add x h)) (real_abs y)" |
| 17644 | 2686 |
by (import hollight REAL_ABS_CIRCLE) |
2687 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2688 |
lemma REAL_SUB_ABS: "real_le (real_sub (real_abs x) (real_abs y)) (real_abs (real_sub x y))" |
| 19093 | 2689 |
by (import hollight REAL_SUB_ABS) |
2690 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2691 |
lemma REAL_ABS_SUB_ABS: "real_le (real_abs (real_sub (real_abs x) (real_abs y))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2692 |
(real_abs (real_sub x y))" |
| 17644 | 2693 |
by (import hollight REAL_ABS_SUB_ABS) |
2694 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2695 |
lemma REAL_ABS_BETWEEN2: "real_lt x0 y0 & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2696 |
real_lt (real_mul (real_of_num 2) (real_abs (real_sub x x0))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2697 |
(real_sub y0 x0) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2698 |
real_lt (real_mul (real_of_num 2) (real_abs (real_sub y y0))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2699 |
(real_sub y0 x0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2700 |
==> real_lt x y" |
| 17644 | 2701 |
by (import hollight REAL_ABS_BETWEEN2) |
2702 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2703 |
lemma REAL_ABS_BOUNDS: "real_le (real_abs x) k = (real_le (real_neg k) x & real_le x k)" |
| 17644 | 2704 |
by (import hollight REAL_ABS_BOUNDS) |
2705 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2706 |
lemma REAL_BOUNDS_LE: "(real_le (real_neg k) x & real_le x k) = real_le (real_abs x) k" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2707 |
by (import hollight REAL_BOUNDS_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2708 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2709 |
lemma REAL_BOUNDS_LT: "(real_lt (real_neg k) x & real_lt x k) = real_lt (real_abs x) k" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2710 |
by (import hollight REAL_BOUNDS_LT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2711 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2712 |
lemma REAL_MIN_MAX: "real_min x y = real_neg (real_max (real_neg x) (real_neg y))" |
| 17644 | 2713 |
by (import hollight REAL_MIN_MAX) |
2714 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2715 |
lemma REAL_MAX_MIN: "real_max x y = real_neg (real_min (real_neg x) (real_neg y))" |
| 17644 | 2716 |
by (import hollight REAL_MAX_MIN) |
2717 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2718 |
lemma REAL_MAX_MAX: "real_le x (real_max x y) & real_le y (real_max x y)" |
| 17644 | 2719 |
by (import hollight REAL_MAX_MAX) |
2720 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2721 |
lemma REAL_MIN_MIN: "real_le (real_min x y) x & real_le (real_min x y) y" |
| 17644 | 2722 |
by (import hollight REAL_MIN_MIN) |
2723 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2724 |
lemma REAL_MAX_SYM: "real_max x y = real_max y x" |
| 17644 | 2725 |
by (import hollight REAL_MAX_SYM) |
2726 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2727 |
lemma REAL_MIN_SYM: "real_min x y = real_min y x" |
| 17644 | 2728 |
by (import hollight REAL_MIN_SYM) |
2729 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2730 |
lemma REAL_LE_MAX: "real_le z (real_max x y) = (real_le z x | real_le z y)" |
| 17644 | 2731 |
by (import hollight REAL_LE_MAX) |
2732 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2733 |
lemma REAL_LE_MIN: "real_le z (real_min x y) = (real_le z x & real_le z y)" |
| 17644 | 2734 |
by (import hollight REAL_LE_MIN) |
2735 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2736 |
lemma REAL_LT_MAX: "real_lt z (real_max x y) = (real_lt z x | real_lt z y)" |
| 17644 | 2737 |
by (import hollight REAL_LT_MAX) |
2738 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2739 |
lemma REAL_LT_MIN: "real_lt z (real_min x y) = (real_lt z x & real_lt z y)" |
| 17644 | 2740 |
by (import hollight REAL_LT_MIN) |
2741 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2742 |
lemma REAL_MAX_LE: "real_le (real_max x y) z = (real_le x z & real_le y z)" |
| 17644 | 2743 |
by (import hollight REAL_MAX_LE) |
2744 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2745 |
lemma REAL_MIN_LE: "real_le (real_min x y) z = (real_le x z | real_le y z)" |
| 17644 | 2746 |
by (import hollight REAL_MIN_LE) |
2747 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2748 |
lemma REAL_MAX_LT: "real_lt (real_max x y) z = (real_lt x z & real_lt y z)" |
| 17644 | 2749 |
by (import hollight REAL_MAX_LT) |
2750 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2751 |
lemma REAL_MIN_LT: "real_lt (real_min x y) z = (real_lt x z | real_lt y z)" |
| 17644 | 2752 |
by (import hollight REAL_MIN_LT) |
2753 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2754 |
lemma REAL_MAX_ASSOC: "real_max x (real_max y z) = real_max (real_max x y) z" |
| 17644 | 2755 |
by (import hollight REAL_MAX_ASSOC) |
2756 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2757 |
lemma REAL_MIN_ASSOC: "real_min x (real_min y z) = real_min (real_min x y) z" |
| 17644 | 2758 |
by (import hollight REAL_MIN_ASSOC) |
2759 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2760 |
lemma REAL_MAX_ACI: "real_max x y = real_max y x & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2761 |
real_max (real_max x y) z = real_max x (real_max y z) & |
| 17644 | 2762 |
real_max x (real_max y z) = real_max y (real_max x z) & |
2763 |
real_max x x = x & real_max x (real_max x y) = real_max x y" |
|
2764 |
by (import hollight REAL_MAX_ACI) |
|
2765 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2766 |
lemma REAL_MIN_ACI: "real_min x y = real_min y x & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2767 |
real_min (real_min x y) z = real_min x (real_min y z) & |
| 17644 | 2768 |
real_min x (real_min y z) = real_min y (real_min x z) & |
2769 |
real_min x x = x & real_min x (real_min x y) = real_min x y" |
|
2770 |
by (import hollight REAL_MIN_ACI) |
|
2771 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2772 |
lemma REAL_ABS_MUL: "real_abs (real_mul x y) = real_mul (real_abs x) (real_abs y)" |
| 17644 | 2773 |
by (import hollight REAL_ABS_MUL) |
2774 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2775 |
lemma REAL_POW_LE: "real_le (real_of_num 0) x ==> real_le (real_of_num 0) (real_pow x n)" |
| 17644 | 2776 |
by (import hollight REAL_POW_LE) |
2777 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2778 |
lemma REAL_POW_LT: "real_lt (real_of_num 0) x ==> real_lt (real_of_num 0) (real_pow x n)" |
| 17644 | 2779 |
by (import hollight REAL_POW_LT) |
2780 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2781 |
lemma REAL_ABS_POW: "real_abs (real_pow x n) = real_pow (real_abs x) n" |
| 17644 | 2782 |
by (import hollight REAL_ABS_POW) |
2783 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2784 |
lemma REAL_LE_LMUL: "real_le (real_of_num 0) x & real_le xa xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2785 |
==> real_le (real_mul x xa) (real_mul x xb)" |
| 17644 | 2786 |
by (import hollight REAL_LE_LMUL) |
2787 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2788 |
lemma REAL_LE_RMUL: "real_le x y & real_le (real_of_num 0) z |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2789 |
==> real_le (real_mul x z) (real_mul y z)" |
| 17644 | 2790 |
by (import hollight REAL_LE_RMUL) |
2791 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2792 |
lemma REAL_LT_LMUL: "real_lt (real_of_num 0) x & real_lt xa xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2793 |
==> real_lt (real_mul x xa) (real_mul x xb)" |
| 17644 | 2794 |
by (import hollight REAL_LT_LMUL) |
2795 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2796 |
lemma REAL_LT_RMUL: "real_lt x y & real_lt (real_of_num 0) z |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2797 |
==> real_lt (real_mul x z) (real_mul y z)" |
| 17644 | 2798 |
by (import hollight REAL_LT_RMUL) |
2799 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2800 |
lemma REAL_EQ_MUL_LCANCEL: "(real_mul x y = real_mul x z) = (x = real_of_num 0 | y = z)" |
| 17644 | 2801 |
by (import hollight REAL_EQ_MUL_LCANCEL) |
2802 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2803 |
lemma REAL_EQ_MUL_RCANCEL: "(real_mul x xb = real_mul xa xb) = (x = xa | xb = real_of_num 0)" |
| 17644 | 2804 |
by (import hollight REAL_EQ_MUL_RCANCEL) |
2805 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2806 |
lemma REAL_MUL_LINV_UNIQ: "real_mul x y = real_of_num 1 ==> real_inv y = x" |
| 17644 | 2807 |
by (import hollight REAL_MUL_LINV_UNIQ) |
2808 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2809 |
lemma REAL_MUL_RINV_UNIQ: "real_mul x xa = real_of_num 1 ==> real_inv x = xa" |
| 17644 | 2810 |
by (import hollight REAL_MUL_RINV_UNIQ) |
2811 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2812 |
lemma REAL_INV_INV: "real_inv (real_inv x) = x" |
| 17644 | 2813 |
by (import hollight REAL_INV_INV) |
2814 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2815 |
lemma REAL_EQ_INV2: "(real_inv x = real_inv y) = (x = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2816 |
by (import hollight REAL_EQ_INV2) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2817 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2818 |
lemma REAL_INV_EQ_0: "(real_inv x = real_of_num 0) = (x = real_of_num 0)" |
| 17644 | 2819 |
by (import hollight REAL_INV_EQ_0) |
2820 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2821 |
lemma REAL_LT_INV: "real_lt (real_of_num 0) x ==> real_lt (real_of_num 0) (real_inv x)" |
| 17644 | 2822 |
by (import hollight REAL_LT_INV) |
2823 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2824 |
lemma REAL_LT_INV_EQ: "real_lt (real_of_num 0) (real_inv x) = real_lt (real_of_num 0) x" |
| 17644 | 2825 |
by (import hollight REAL_LT_INV_EQ) |
2826 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2827 |
lemma REAL_INV_NEG: "real_inv (real_neg x) = real_neg (real_inv x)" |
| 17644 | 2828 |
by (import hollight REAL_INV_NEG) |
2829 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2830 |
lemma REAL_LE_INV_EQ: "real_le (real_of_num 0) (real_inv x) = real_le (real_of_num 0) x" |
| 17644 | 2831 |
by (import hollight REAL_LE_INV_EQ) |
2832 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2833 |
lemma REAL_LE_INV: "real_le (real_of_num 0) x ==> real_le (real_of_num 0) (real_inv x)" |
| 17644 | 2834 |
by (import hollight REAL_LE_INV) |
2835 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2836 |
lemma REAL_MUL_RINV: "x ~= real_of_num 0 ==> real_mul x (real_inv x) = real_of_num 1" |
| 19093 | 2837 |
by (import hollight REAL_MUL_RINV) |
2838 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2839 |
lemma REAL_INV_1: "real_inv (real_of_num 1) = real_of_num 1" |
| 17644 | 2840 |
by (import hollight REAL_INV_1) |
2841 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2842 |
lemma REAL_INV_EQ_1: "(real_inv x = real_of_num 1) = (x = real_of_num 1)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2843 |
by (import hollight REAL_INV_EQ_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2844 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2845 |
lemma REAL_DIV_1: "real_div x (real_of_num 1) = x" |
| 17644 | 2846 |
by (import hollight REAL_DIV_1) |
2847 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2848 |
lemma REAL_DIV_REFL: "x ~= real_of_num 0 ==> real_div x x = real_of_num 1" |
| 17644 | 2849 |
by (import hollight REAL_DIV_REFL) |
2850 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2851 |
lemma REAL_DIV_RMUL: "xa ~= real_of_num 0 ==> real_mul (real_div x xa) xa = x" |
| 17644 | 2852 |
by (import hollight REAL_DIV_RMUL) |
2853 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2854 |
lemma REAL_DIV_LMUL: "xa ~= real_of_num 0 ==> real_mul xa (real_div x xa) = x" |
| 17644 | 2855 |
by (import hollight REAL_DIV_LMUL) |
2856 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2857 |
lemma REAL_ABS_INV: "real_abs (real_inv x) = real_inv (real_abs x)" |
| 17644 | 2858 |
by (import hollight REAL_ABS_INV) |
2859 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2860 |
lemma REAL_ABS_DIV: "real_abs (real_div x xa) = real_div (real_abs x) (real_abs xa)" |
| 17644 | 2861 |
by (import hollight REAL_ABS_DIV) |
2862 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2863 |
lemma REAL_INV_MUL: "real_inv (real_mul x y) = real_mul (real_inv x) (real_inv y)" |
| 17644 | 2864 |
by (import hollight REAL_INV_MUL) |
2865 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2866 |
lemma REAL_INV_DIV: "real_inv (real_div x xa) = real_div xa x" |
| 17644 | 2867 |
by (import hollight REAL_INV_DIV) |
2868 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2869 |
lemma REAL_POW_MUL: "real_pow (real_mul x y) n = real_mul (real_pow x n) (real_pow y n)" |
| 17644 | 2870 |
by (import hollight REAL_POW_MUL) |
2871 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2872 |
lemma REAL_POW_INV: "real_pow (real_inv x) n = real_inv (real_pow x n)" |
| 17644 | 2873 |
by (import hollight REAL_POW_INV) |
2874 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2875 |
lemma REAL_INV_POW: "real_inv (real_pow x xa) = real_pow (real_inv x) xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2876 |
by (import hollight REAL_INV_POW) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2877 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2878 |
lemma REAL_POW_DIV: "real_pow (real_div x xa) xb = real_div (real_pow x xb) (real_pow xa xb)" |
| 17644 | 2879 |
by (import hollight REAL_POW_DIV) |
2880 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2881 |
lemma REAL_POW_ADD: "real_pow x (m + n) = real_mul (real_pow x m) (real_pow x n)" |
| 17644 | 2882 |
by (import hollight REAL_POW_ADD) |
2883 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2884 |
lemma REAL_POW_NZ: "x ~= real_of_num 0 ==> real_pow x n ~= real_of_num 0" |
| 17644 | 2885 |
by (import hollight REAL_POW_NZ) |
2886 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2887 |
lemma REAL_POW_SUB: "x ~= real_of_num 0 & m <= n |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2888 |
==> real_pow x (n - m) = real_div (real_pow x n) (real_pow x m)" |
| 17644 | 2889 |
by (import hollight REAL_POW_SUB) |
2890 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2891 |
lemma REAL_LT_IMP_NZ: "real_lt (real_of_num 0) x ==> x ~= real_of_num 0" |
| 17644 | 2892 |
by (import hollight REAL_LT_IMP_NZ) |
2893 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2894 |
lemma REAL_LT_LCANCEL_IMP: "real_lt (real_of_num 0) x & real_lt (real_mul x y) (real_mul x z) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2895 |
==> real_lt y z" |
| 17644 | 2896 |
by (import hollight REAL_LT_LCANCEL_IMP) |
2897 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2898 |
lemma REAL_LT_RCANCEL_IMP: "real_lt (real_of_num 0) xb & real_lt (real_mul x xb) (real_mul xa xb) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2899 |
==> real_lt x xa" |
| 17644 | 2900 |
by (import hollight REAL_LT_RCANCEL_IMP) |
2901 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2902 |
lemma REAL_LE_LCANCEL_IMP: "real_lt (real_of_num 0) x & real_le (real_mul x y) (real_mul x z) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2903 |
==> real_le y z" |
| 17644 | 2904 |
by (import hollight REAL_LE_LCANCEL_IMP) |
2905 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2906 |
lemma REAL_LE_RCANCEL_IMP: "real_lt (real_of_num 0) xb & real_le (real_mul x xb) (real_mul xa xb) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2907 |
==> real_le x xa" |
| 17644 | 2908 |
by (import hollight REAL_LE_RCANCEL_IMP) |
2909 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2910 |
lemma REAL_LE_RMUL_EQ: "real_lt (real_of_num 0) z |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2911 |
==> real_le (real_mul x z) (real_mul y z) = real_le x y" |
| 19093 | 2912 |
by (import hollight REAL_LE_RMUL_EQ) |
2913 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2914 |
lemma REAL_LE_LMUL_EQ: "real_lt (real_of_num 0) z |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2915 |
==> real_le (real_mul z x) (real_mul z y) = real_le x y" |
| 17644 | 2916 |
by (import hollight REAL_LE_LMUL_EQ) |
2917 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2918 |
lemma REAL_LT_RMUL_EQ: "real_lt (real_of_num 0) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2919 |
==> real_lt (real_mul x xb) (real_mul xa xb) = real_lt x xa" |
| 19093 | 2920 |
by (import hollight REAL_LT_RMUL_EQ) |
2921 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2922 |
lemma REAL_LT_LMUL_EQ: "real_lt (real_of_num 0) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2923 |
==> real_lt (real_mul xb x) (real_mul xb xa) = real_lt x xa" |
| 19093 | 2924 |
by (import hollight REAL_LT_LMUL_EQ) |
2925 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2926 |
lemma REAL_LE_MUL_EQ: "(ALL x y. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2927 |
real_lt (real_of_num 0) x --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2928 |
real_le (real_of_num 0) (real_mul x y) = real_le (real_of_num 0) y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2929 |
(ALL x y. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2930 |
real_lt (real_of_num 0) y --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2931 |
real_le (real_of_num 0) (real_mul x y) = real_le (real_of_num 0) x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2932 |
by (import hollight REAL_LE_MUL_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2933 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2934 |
lemma REAL_LT_MUL_EQ: "(ALL x y. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2935 |
real_lt (real_of_num 0) x --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2936 |
real_lt (real_of_num 0) (real_mul x y) = real_lt (real_of_num 0) y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2937 |
(ALL x y. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2938 |
real_lt (real_of_num 0) y --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2939 |
real_lt (real_of_num 0) (real_mul x y) = real_lt (real_of_num 0) x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2940 |
by (import hollight REAL_LT_MUL_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2941 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2942 |
lemma REAL_MUL_POS_LT: "real_lt (real_of_num 0) (real_mul x y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2943 |
(real_lt (real_of_num 0) x & real_lt (real_of_num 0) y | |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2944 |
real_lt x (real_of_num 0) & real_lt y (real_of_num 0))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2945 |
by (import hollight REAL_MUL_POS_LT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2946 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2947 |
lemma REAL_MUL_POS_LE: "real_le (real_of_num 0) (real_mul x xa) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2948 |
(x = real_of_num 0 | |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2949 |
xa = real_of_num 0 | |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2950 |
real_lt (real_of_num 0) x & real_lt (real_of_num 0) xa | |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2951 |
real_lt x (real_of_num 0) & real_lt xa (real_of_num 0))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2952 |
by (import hollight REAL_MUL_POS_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2953 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2954 |
lemma REAL_LE_RDIV_EQ: "real_lt (real_of_num 0) z |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2955 |
==> real_le x (real_div y z) = real_le (real_mul x z) y" |
| 17644 | 2956 |
by (import hollight REAL_LE_RDIV_EQ) |
2957 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2958 |
lemma REAL_LE_LDIV_EQ: "real_lt (real_of_num 0) z |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2959 |
==> real_le (real_div x z) y = real_le x (real_mul y z)" |
| 17644 | 2960 |
by (import hollight REAL_LE_LDIV_EQ) |
2961 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2962 |
lemma REAL_LT_RDIV_EQ: "real_lt (real_of_num 0) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2963 |
==> real_lt x (real_div xa xb) = real_lt (real_mul x xb) xa" |
| 17644 | 2964 |
by (import hollight REAL_LT_RDIV_EQ) |
2965 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2966 |
lemma REAL_LT_LDIV_EQ: "real_lt (real_of_num 0) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2967 |
==> real_lt (real_div x xb) xa = real_lt x (real_mul xa xb)" |
| 17644 | 2968 |
by (import hollight REAL_LT_LDIV_EQ) |
2969 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2970 |
lemma REAL_EQ_RDIV_EQ: "real_lt (real_of_num 0) xb ==> (x = real_div xa xb) = (real_mul x xb = xa)" |
| 17644 | 2971 |
by (import hollight REAL_EQ_RDIV_EQ) |
2972 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2973 |
lemma REAL_EQ_LDIV_EQ: "real_lt (real_of_num 0) xb ==> (real_div x xb = xa) = (x = real_mul xa xb)" |
| 17644 | 2974 |
by (import hollight REAL_EQ_LDIV_EQ) |
2975 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2976 |
lemma REAL_LT_DIV2_EQ: "real_lt (real_of_num 0) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2977 |
==> real_lt (real_div x xb) (real_div xa xb) = real_lt x xa" |
| 17644 | 2978 |
by (import hollight REAL_LT_DIV2_EQ) |
2979 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2980 |
lemma REAL_LE_DIV2_EQ: "real_lt (real_of_num 0) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2981 |
==> real_le (real_div x xb) (real_div xa xb) = real_le x xa" |
| 17644 | 2982 |
by (import hollight REAL_LE_DIV2_EQ) |
2983 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2984 |
lemma REAL_MUL_2: "real_mul (real_of_num 2) x = real_add x x" |
| 17644 | 2985 |
by (import hollight REAL_MUL_2) |
2986 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2987 |
lemma REAL_POW_EQ_0: "(real_pow x n = real_of_num 0) = (x = real_of_num 0 & n ~= 0)" |
| 17644 | 2988 |
by (import hollight REAL_POW_EQ_0) |
2989 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2990 |
lemma REAL_LE_MUL2: "real_le (real_of_num 0) w & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2991 |
real_le w x & real_le (real_of_num 0) y & real_le y z |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2992 |
==> real_le (real_mul w y) (real_mul x z)" |
| 17644 | 2993 |
by (import hollight REAL_LE_MUL2) |
2994 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2995 |
lemma REAL_LT_MUL2: "real_le (real_of_num 0) w & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2996 |
real_lt w x & real_le (real_of_num 0) y & real_lt y z |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
2997 |
==> real_lt (real_mul w y) (real_mul x z)" |
| 17644 | 2998 |
by (import hollight REAL_LT_MUL2) |
2999 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3000 |
lemma REAL_LT_SQUARE: "real_lt (real_of_num 0) (real_mul x x) = (x ~= real_of_num 0)" |
| 17644 | 3001 |
by (import hollight REAL_LT_SQUARE) |
3002 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3003 |
lemma REAL_POW_1: "real_pow x 1 = x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3004 |
by (import hollight REAL_POW_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3005 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3006 |
lemma REAL_POW_ONE: "real_pow (real_of_num 1) n = real_of_num 1" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3007 |
by (import hollight REAL_POW_ONE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3008 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3009 |
lemma REAL_LT_INV2: "real_lt (real_of_num 0) x & real_lt x y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3010 |
==> real_lt (real_inv y) (real_inv x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3011 |
by (import hollight REAL_LT_INV2) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3012 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3013 |
lemma REAL_LE_INV2: "real_lt (real_of_num 0) x & real_le x y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3014 |
==> real_le (real_inv y) (real_inv x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3015 |
by (import hollight REAL_LE_INV2) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3016 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3017 |
lemma REAL_LT_LINV: "real_lt (real_of_num 0) y & real_lt (real_inv y) x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3018 |
==> real_lt (real_inv x) y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3019 |
by (import hollight REAL_LT_LINV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3020 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3021 |
lemma REAL_LT_RINV: "real_lt (real_of_num 0) x & real_lt x (real_inv y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3022 |
==> real_lt y (real_inv x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3023 |
by (import hollight REAL_LT_RINV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3024 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3025 |
lemma REAL_LE_LINV: "real_lt (real_of_num 0) y & real_le (real_inv y) x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3026 |
==> real_le (real_inv x) y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3027 |
by (import hollight REAL_LE_LINV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3028 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3029 |
lemma REAL_LE_RINV: "real_lt (real_of_num 0) x & real_le x (real_inv y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3030 |
==> real_le y (real_inv x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3031 |
by (import hollight REAL_LE_RINV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3032 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3033 |
lemma REAL_INV_LE_1: "real_le (real_of_num 1) x ==> real_le (real_inv x) (real_of_num 1)" |
| 17644 | 3034 |
by (import hollight REAL_INV_LE_1) |
3035 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3036 |
lemma REAL_INV_1_LE: "real_lt (real_of_num 0) x & real_le x (real_of_num 1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3037 |
==> real_le (real_of_num 1) (real_inv x)" |
| 17644 | 3038 |
by (import hollight REAL_INV_1_LE) |
3039 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3040 |
lemma REAL_INV_LT_1: "real_lt (real_of_num 1) x ==> real_lt (real_inv x) (real_of_num 1)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3041 |
by (import hollight REAL_INV_LT_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3042 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3043 |
lemma REAL_INV_1_LT: "real_lt (real_of_num 0) x & real_lt x (real_of_num 1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3044 |
==> real_lt (real_of_num 1) (real_inv x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3045 |
by (import hollight REAL_INV_1_LT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3046 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3047 |
lemma REAL_SUB_INV: "x ~= real_of_num 0 & xa ~= real_of_num 0 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3048 |
==> real_sub (real_inv x) (real_inv xa) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3049 |
real_div (real_sub xa x) (real_mul x xa)" |
| 17644 | 3050 |
by (import hollight REAL_SUB_INV) |
3051 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3052 |
lemma REAL_DOWN: "real_lt (real_of_num 0) d ==> EX x. real_lt (real_of_num 0) x & real_lt x d" |
| 17644 | 3053 |
by (import hollight REAL_DOWN) |
3054 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3055 |
lemma REAL_DOWN2: "real_lt (real_of_num 0) d1 & real_lt (real_of_num 0) d2 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3056 |
==> EX e. real_lt (real_of_num 0) e & real_lt e d1 & real_lt e d2" |
| 17644 | 3057 |
by (import hollight REAL_DOWN2) |
3058 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3059 |
lemma REAL_POW_LE2: "real_le (real_of_num 0) x & real_le x y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3060 |
==> real_le (real_pow x n) (real_pow y n)" |
| 17644 | 3061 |
by (import hollight REAL_POW_LE2) |
3062 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3063 |
lemma REAL_POW_LE_1: "real_le (real_of_num 1) x ==> real_le (real_of_num 1) (real_pow x n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3064 |
by (import hollight REAL_POW_LE_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3065 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3066 |
lemma REAL_POW_1_LE: "real_le (real_of_num 0) x & real_le x (real_of_num 1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3067 |
==> real_le (real_pow x n) (real_of_num 1)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3068 |
by (import hollight REAL_POW_1_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3069 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3070 |
lemma REAL_POW_MONO: "real_le (real_of_num 1) x & m <= n ==> real_le (real_pow x m) (real_pow x n)" |
| 17644 | 3071 |
by (import hollight REAL_POW_MONO) |
3072 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3073 |
lemma REAL_POW_LT2: "n ~= 0 & real_le (real_of_num 0) x & real_lt x y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3074 |
==> real_lt (real_pow x n) (real_pow y n)" |
| 17644 | 3075 |
by (import hollight REAL_POW_LT2) |
3076 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3077 |
lemma REAL_POW_LT_1: "n ~= 0 & real_lt (real_of_num 1) x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3078 |
==> real_lt (real_of_num 1) (real_pow x n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3079 |
by (import hollight REAL_POW_LT_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3080 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3081 |
lemma REAL_POW_1_LT: "n ~= 0 & real_le (real_of_num 0) x & real_lt x (real_of_num 1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3082 |
==> real_lt (real_pow x n) (real_of_num 1)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3083 |
by (import hollight REAL_POW_1_LT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3084 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3085 |
lemma REAL_POW_MONO_LT: "real_lt (real_of_num 1) x & m < n ==> real_lt (real_pow x m) (real_pow x n)" |
| 17644 | 3086 |
by (import hollight REAL_POW_MONO_LT) |
3087 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3088 |
lemma REAL_POW_POW: "real_pow (real_pow x m) n = real_pow x (m * n)" |
| 17644 | 3089 |
by (import hollight REAL_POW_POW) |
3090 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3091 |
lemma REAL_EQ_RCANCEL_IMP: "z ~= real_of_num 0 & real_mul x z = real_mul y z ==> x = y" |
| 17644 | 3092 |
by (import hollight REAL_EQ_RCANCEL_IMP) |
3093 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3094 |
lemma REAL_EQ_LCANCEL_IMP: "xb ~= real_of_num 0 & real_mul xb x = real_mul xb xa ==> x = xa" |
| 17644 | 3095 |
by (import hollight REAL_EQ_LCANCEL_IMP) |
3096 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3097 |
lemma REAL_LT_DIV: "real_lt (real_of_num 0) x & real_lt (real_of_num 0) xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3098 |
==> real_lt (real_of_num 0) (real_div x xa)" |
| 17644 | 3099 |
by (import hollight REAL_LT_DIV) |
3100 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3101 |
lemma REAL_LE_DIV: "real_le (real_of_num 0) x & real_le (real_of_num 0) xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3102 |
==> real_le (real_of_num 0) (real_div x xa)" |
| 17644 | 3103 |
by (import hollight REAL_LE_DIV) |
3104 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3105 |
lemma REAL_DIV_POW2: "x ~= real_of_num 0 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3106 |
==> real_div (real_pow x m) (real_pow x n) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3107 |
(if n <= m then real_pow x (m - n) else real_inv (real_pow x (n - m)))" |
| 17644 | 3108 |
by (import hollight REAL_DIV_POW2) |
3109 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3110 |
lemma REAL_DIV_POW2_ALT: "x ~= real_of_num 0 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3111 |
==> real_div (real_pow x m) (real_pow x n) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3112 |
(if n < m then real_pow x (m - n) else real_inv (real_pow x (n - m)))" |
| 17644 | 3113 |
by (import hollight REAL_DIV_POW2_ALT) |
3114 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3115 |
lemma REAL_LT_POW2: "real_lt (real_of_num 0) (real_pow (real_of_num 2) x)" |
| 17644 | 3116 |
by (import hollight REAL_LT_POW2) |
3117 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3118 |
lemma REAL_LE_POW2: "real_le (real_of_num 1) (real_pow (real_of_num 2) n)" |
| 17644 | 3119 |
by (import hollight REAL_LE_POW2) |
3120 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3121 |
lemma REAL_POW2_ABS: "real_pow (real_abs x) 2 = real_pow x 2" |
| 17644 | 3122 |
by (import hollight REAL_POW2_ABS) |
3123 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3124 |
lemma REAL_LE_SQUARE_ABS: "real_le (real_abs x) (real_abs y) = real_le (real_pow x 2) (real_pow y 2)" |
| 17644 | 3125 |
by (import hollight REAL_LE_SQUARE_ABS) |
3126 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3127 |
lemma REAL_LT_SQUARE_ABS: "real_lt (real_abs x) (real_abs xa) = real_lt (real_pow x 2) (real_pow xa 2)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3128 |
by (import hollight REAL_LT_SQUARE_ABS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3129 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3130 |
lemma REAL_EQ_SQUARE_ABS: "(real_abs x = real_abs xa) = (real_pow x 2 = real_pow xa 2)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3131 |
by (import hollight REAL_EQ_SQUARE_ABS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3132 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3133 |
lemma REAL_LE_POW_2: "real_le (real_of_num 0) (real_pow x 2)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3134 |
by (import hollight REAL_LE_POW_2) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3135 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3136 |
lemma REAL_SOS_EQ_0: "(real_add (real_pow x 2) (real_pow y 2) = real_of_num 0) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3137 |
(x = real_of_num 0 & y = real_of_num 0)" |
| 19093 | 3138 |
by (import hollight REAL_SOS_EQ_0) |
3139 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3140 |
lemma REAL_POW_ZERO: "real_pow (real_of_num 0) n = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3141 |
(if n = 0 then real_of_num 1 else real_of_num 0)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3142 |
by (import hollight REAL_POW_ZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3143 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3144 |
lemma REAL_POW_MONO_INV: "real_le (real_of_num 0) x & real_le x (real_of_num 1) & n <= m |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3145 |
==> real_le (real_pow x m) (real_pow x n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3146 |
by (import hollight REAL_POW_MONO_INV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3147 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3148 |
lemma REAL_POW_LE2_REV: "n ~= 0 & real_le (real_of_num 0) y & real_le (real_pow x n) (real_pow y n) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3149 |
==> real_le x y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3150 |
by (import hollight REAL_POW_LE2_REV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3151 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3152 |
lemma REAL_POW_LT2_REV: "real_le (real_of_num 0) y & real_lt (real_pow x n) (real_pow y n) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3153 |
==> real_lt x y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3154 |
by (import hollight REAL_POW_LT2_REV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3155 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3156 |
lemma REAL_POW_EQ: "x ~= 0 & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3157 |
real_le (real_of_num 0) xa & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3158 |
real_le (real_of_num 0) xb & real_pow xa x = real_pow xb x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3159 |
==> xa = xb" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3160 |
by (import hollight REAL_POW_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3161 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3162 |
lemma REAL_POW_EQ_ABS: "n ~= 0 & real_pow x n = real_pow y n ==> real_abs x = real_abs y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3163 |
by (import hollight REAL_POW_EQ_ABS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3164 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3165 |
lemma REAL_POW_EQ_1_IMP: "n ~= 0 & real_pow x n = real_of_num 1 ==> real_abs x = real_of_num 1" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3166 |
by (import hollight REAL_POW_EQ_1_IMP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3167 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3168 |
lemma REAL_POW_EQ_1: "(real_pow x n = real_of_num 1) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3169 |
(real_abs x = real_of_num 1 & (real_lt x (real_of_num 0) --> even n) | |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3170 |
n = 0)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3171 |
by (import hollight REAL_POW_EQ_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3172 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3173 |
lemma REAL_POW_LT2_ODD: "real_lt x y & odd n ==> real_lt (real_pow x n) (real_pow y n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3174 |
by (import hollight REAL_POW_LT2_ODD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3175 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3176 |
lemma REAL_POW_LE2_ODD: "real_le xa xb & odd x ==> real_le (real_pow xa x) (real_pow xb x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3177 |
by (import hollight REAL_POW_LE2_ODD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3178 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3179 |
lemma REAL_POW_LT2_ODD_EQ: "odd n ==> real_lt (real_pow x n) (real_pow y n) = real_lt x y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3180 |
by (import hollight REAL_POW_LT2_ODD_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3181 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3182 |
lemma REAL_POW_LE2_ODD_EQ: "odd n ==> real_le (real_pow x n) (real_pow y n) = real_le x y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3183 |
by (import hollight REAL_POW_LE2_ODD_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3184 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3185 |
lemma REAL_POW_EQ_ODD_EQ: "odd x ==> (real_pow xa x = real_pow xb x) = (xa = xb)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3186 |
by (import hollight REAL_POW_EQ_ODD_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3187 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3188 |
lemma REAL_POW_EQ_ODD: "odd n & real_pow x n = real_pow y n ==> x = y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3189 |
by (import hollight REAL_POW_EQ_ODD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3190 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3191 |
lemma REAL_POW_EQ_EQ: "(real_pow x n = real_pow y n) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3192 |
(if even n then n = 0 | real_abs x = real_abs y else x = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3193 |
by (import hollight REAL_POW_EQ_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3194 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3195 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3196 |
real_sgn :: "hollight.real => hollight.real" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3197 |
"real_sgn == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3198 |
%u. if real_lt (real_of_num 0) u then real_of_num 1 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3199 |
else if real_lt u (real_of_num 0) then real_neg (real_of_num 1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3200 |
else real_of_num 0" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3201 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3202 |
lemma DEF_real_sgn: "real_sgn = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3203 |
(%u. if real_lt (real_of_num 0) u then real_of_num 1 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3204 |
else if real_lt u (real_of_num 0) then real_neg (real_of_num 1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3205 |
else real_of_num 0)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3206 |
by (import hollight DEF_real_sgn) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3207 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3208 |
lemma REAL_SGN_0: "real_sgn (real_of_num 0) = real_of_num 0" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3209 |
by (import hollight REAL_SGN_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3210 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3211 |
lemma REAL_SGN_NEG: "real_sgn (real_neg x) = real_neg (real_sgn x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3212 |
by (import hollight REAL_SGN_NEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3213 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3214 |
lemma REAL_SGN_ABS: "real_mul (real_sgn x) (real_abs x) = x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3215 |
by (import hollight REAL_SGN_ABS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3216 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3217 |
lemma REAL_ABS_SGN: "real_abs (real_sgn x) = real_sgn (real_abs x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3218 |
by (import hollight REAL_ABS_SGN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3219 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3220 |
lemma REAL_SGN: "real_sgn x = real_div x (real_abs x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3221 |
by (import hollight REAL_SGN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3222 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3223 |
lemma REAL_SGN_MUL: "real_sgn (real_mul x xa) = real_mul (real_sgn x) (real_sgn xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3224 |
by (import hollight REAL_SGN_MUL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3225 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3226 |
lemma REAL_SGN_INV: "real_sgn (real_inv x) = real_sgn x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3227 |
by (import hollight REAL_SGN_INV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3228 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3229 |
lemma REAL_SGN_DIV: "real_sgn (real_div x xa) = real_div (real_sgn x) (real_sgn xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3230 |
by (import hollight REAL_SGN_DIV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3231 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3232 |
lemma REAL_WLOG_LE: "(ALL x y. P x y = P y x) & (ALL x y. real_le x y --> P x y) ==> P x xa" |
| 17644 | 3233 |
by (import hollight REAL_WLOG_LE) |
3234 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3235 |
lemma REAL_WLOG_LT: "(ALL x. P x x) & (ALL x y. P x y = P y x) & (ALL x y. real_lt x y --> P x y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3236 |
==> P x xa" |
| 17644 | 3237 |
by (import hollight REAL_WLOG_LT) |
3238 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3239 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3240 |
DECIMAL :: "nat => nat => hollight.real" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3241 |
"DECIMAL == %u ua. real_div (real_of_num u) (real_of_num ua)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3242 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3243 |
lemma DEF_DECIMAL: "DECIMAL = (%u ua. real_div (real_of_num u) (real_of_num ua))" |
| 17644 | 3244 |
by (import hollight DEF_DECIMAL) |
3245 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3246 |
lemma RAT_LEMMA1: "y1 ~= real_of_num 0 & y2 ~= real_of_num 0 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3247 |
==> real_add (real_div x1 y1) (real_div x2 y2) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3248 |
real_mul (real_add (real_mul x1 y2) (real_mul x2 y1)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3249 |
(real_mul (real_inv y1) (real_inv y2))" |
| 17644 | 3250 |
by (import hollight RAT_LEMMA1) |
3251 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3252 |
lemma RAT_LEMMA2: "real_lt (real_of_num 0) y1 & real_lt (real_of_num 0) y2 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3253 |
==> real_add (real_div x1 y1) (real_div x2 y2) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3254 |
real_mul (real_add (real_mul x1 y2) (real_mul x2 y1)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3255 |
(real_mul (real_inv y1) (real_inv y2))" |
| 17644 | 3256 |
by (import hollight RAT_LEMMA2) |
3257 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3258 |
lemma RAT_LEMMA3: "real_lt (real_of_num 0) y1 & real_lt (real_of_num 0) y2 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3259 |
==> real_sub (real_div x1 y1) (real_div x2 y2) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3260 |
real_mul (real_sub (real_mul x1 y2) (real_mul x2 y1)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3261 |
(real_mul (real_inv y1) (real_inv y2))" |
| 17644 | 3262 |
by (import hollight RAT_LEMMA3) |
3263 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3264 |
lemma RAT_LEMMA4: "real_lt (real_of_num 0) y1 & real_lt (real_of_num 0) y2 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3265 |
==> real_le (real_div x1 y1) (real_div x2 y2) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3266 |
real_le (real_mul x1 y2) (real_mul x2 y1)" |
| 17644 | 3267 |
by (import hollight RAT_LEMMA4) |
3268 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3269 |
lemma RAT_LEMMA5: "real_lt (real_of_num 0) y1 & real_lt (real_of_num 0) y2 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3270 |
==> (real_div x1 y1 = real_div x2 y2) = (real_mul x1 y2 = real_mul x2 y1)" |
| 17644 | 3271 |
by (import hollight RAT_LEMMA5) |
3272 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3273 |
lemma REAL_INTEGRAL: "(ALL x. real_mul (real_of_num 0) x = real_of_num 0) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3274 |
(ALL x y z. (real_add x y = real_add x z) = (y = z)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3275 |
(ALL w x y z. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3276 |
(real_add (real_mul w y) (real_mul x z) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3277 |
real_add (real_mul w z) (real_mul x y)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3278 |
(w = x | y = z))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3279 |
by (import hollight REAL_INTEGRAL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3280 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3281 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3282 |
integer :: "hollight.real => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3283 |
"integer == %u. EX n. real_abs u = real_of_num n" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3284 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3285 |
lemma DEF_integer: "integer = (%u. EX n. real_abs u = real_of_num n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3286 |
by (import hollight DEF_integer) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3287 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3288 |
lemma is_int: "integer x = (EX n. x = real_of_num n | x = real_neg (real_of_num n))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3289 |
by (import hollight is_int) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3290 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3291 |
typedef (open) int = "Collect integer" morphisms "real_of_int" "int_of_real" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3292 |
apply (rule light_ex_imp_nonempty[where t="Eps integer"]) |
| 17644 | 3293 |
by (import hollight TYDEF_int) |
3294 |
||
3295 |
syntax |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3296 |
real_of_int :: _ |
| 17644 | 3297 |
|
3298 |
syntax |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3299 |
int_of_real :: _ |
| 17644 | 3300 |
|
3301 |
lemmas "TYDEF_int_@intern" = typedef_hol2hollight |
|
3302 |
[where a="a :: hollight.int" and r=r , |
|
3303 |
OF type_definition_int] |
|
3304 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3305 |
lemma dest_int_rep: "EX n. hollight.real_of_int x = real_of_num n | |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3306 |
hollight.real_of_int x = real_neg (real_of_num n)" |
| 17644 | 3307 |
by (import hollight dest_int_rep) |
3308 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3309 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3310 |
int_le :: "hollight.int => hollight.int => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3311 |
"int_le == %u ua. real_le (hollight.real_of_int u) (hollight.real_of_int ua)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3312 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3313 |
lemma DEF_int_le: "int_le = (%u ua. real_le (hollight.real_of_int u) (hollight.real_of_int ua))" |
| 17644 | 3314 |
by (import hollight DEF_int_le) |
3315 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3316 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3317 |
int_lt :: "hollight.int => hollight.int => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3318 |
"int_lt == %u ua. real_lt (hollight.real_of_int u) (hollight.real_of_int ua)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3319 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3320 |
lemma DEF_int_lt: "int_lt = (%u ua. real_lt (hollight.real_of_int u) (hollight.real_of_int ua))" |
| 17644 | 3321 |
by (import hollight DEF_int_lt) |
3322 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3323 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3324 |
int_ge :: "hollight.int => hollight.int => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3325 |
"int_ge == %u ua. real_ge (hollight.real_of_int u) (hollight.real_of_int ua)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3326 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3327 |
lemma DEF_int_ge: "int_ge = (%u ua. real_ge (hollight.real_of_int u) (hollight.real_of_int ua))" |
| 17644 | 3328 |
by (import hollight DEF_int_ge) |
3329 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3330 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3331 |
int_gt :: "hollight.int => hollight.int => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3332 |
"int_gt == %u ua. real_gt (hollight.real_of_int u) (hollight.real_of_int ua)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3333 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3334 |
lemma DEF_int_gt: "int_gt = (%u ua. real_gt (hollight.real_of_int u) (hollight.real_of_int ua))" |
| 17644 | 3335 |
by (import hollight DEF_int_gt) |
3336 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3337 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3338 |
int_of_num :: "nat => hollight.int" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3339 |
"int_of_num == %u. int_of_real (real_of_num u)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3340 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3341 |
lemma DEF_int_of_num: "int_of_num = (%u. int_of_real (real_of_num u))" |
| 17644 | 3342 |
by (import hollight DEF_int_of_num) |
3343 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3344 |
lemma int_of_num_th: "hollight.real_of_int (int_of_num x) = real_of_num x" |
| 17644 | 3345 |
by (import hollight int_of_num_th) |
3346 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3347 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3348 |
int_neg :: "hollight.int => hollight.int" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3349 |
"int_neg == %u. int_of_real (real_neg (hollight.real_of_int u))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3350 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3351 |
lemma DEF_int_neg: "int_neg = (%u. int_of_real (real_neg (hollight.real_of_int u)))" |
| 17644 | 3352 |
by (import hollight DEF_int_neg) |
3353 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3354 |
lemma int_neg_th: "hollight.real_of_int (int_neg x) = real_neg (hollight.real_of_int x)" |
| 17644 | 3355 |
by (import hollight int_neg_th) |
3356 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3357 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3358 |
int_add :: "hollight.int => hollight.int => hollight.int" where |
| 17644 | 3359 |
"int_add == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3360 |
%u ua. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3361 |
int_of_real (real_add (hollight.real_of_int u) (hollight.real_of_int ua))" |
| 17644 | 3362 |
|
3363 |
lemma DEF_int_add: "int_add = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3364 |
(%u ua. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3365 |
int_of_real |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3366 |
(real_add (hollight.real_of_int u) (hollight.real_of_int ua)))" |
| 17644 | 3367 |
by (import hollight DEF_int_add) |
3368 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3369 |
lemma int_add_th: "hollight.real_of_int (int_add x xa) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3370 |
real_add (hollight.real_of_int x) (hollight.real_of_int xa)" |
| 17644 | 3371 |
by (import hollight int_add_th) |
3372 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3373 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3374 |
int_sub :: "hollight.int => hollight.int => hollight.int" where |
| 17644 | 3375 |
"int_sub == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3376 |
%u ua. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3377 |
int_of_real (real_sub (hollight.real_of_int u) (hollight.real_of_int ua))" |
| 17644 | 3378 |
|
3379 |
lemma DEF_int_sub: "int_sub = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3380 |
(%u ua. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3381 |
int_of_real |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3382 |
(real_sub (hollight.real_of_int u) (hollight.real_of_int ua)))" |
| 17644 | 3383 |
by (import hollight DEF_int_sub) |
3384 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3385 |
lemma int_sub_th: "hollight.real_of_int (int_sub x xa) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3386 |
real_sub (hollight.real_of_int x) (hollight.real_of_int xa)" |
| 17644 | 3387 |
by (import hollight int_sub_th) |
3388 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3389 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3390 |
int_mul :: "hollight.int => hollight.int => hollight.int" where |
| 17644 | 3391 |
"int_mul == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3392 |
%u ua. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3393 |
int_of_real (real_mul (hollight.real_of_int u) (hollight.real_of_int ua))" |
| 17644 | 3394 |
|
3395 |
lemma DEF_int_mul: "int_mul = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3396 |
(%u ua. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3397 |
int_of_real |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3398 |
(real_mul (hollight.real_of_int u) (hollight.real_of_int ua)))" |
| 17644 | 3399 |
by (import hollight DEF_int_mul) |
3400 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3401 |
lemma int_mul_th: "hollight.real_of_int (int_mul x y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3402 |
real_mul (hollight.real_of_int x) (hollight.real_of_int y)" |
| 17644 | 3403 |
by (import hollight int_mul_th) |
3404 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3405 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3406 |
int_abs :: "hollight.int => hollight.int" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3407 |
"int_abs == %u. int_of_real (real_abs (hollight.real_of_int u))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3408 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3409 |
lemma DEF_int_abs: "int_abs = (%u. int_of_real (real_abs (hollight.real_of_int u)))" |
| 17644 | 3410 |
by (import hollight DEF_int_abs) |
3411 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3412 |
lemma int_abs_th: "hollight.real_of_int (int_abs x) = real_abs (hollight.real_of_int x)" |
| 17644 | 3413 |
by (import hollight int_abs_th) |
3414 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3415 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3416 |
int_sgn :: "hollight.int => hollight.int" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3417 |
"int_sgn == %u. int_of_real (real_sgn (hollight.real_of_int u))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3418 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3419 |
lemma DEF_int_sgn: "int_sgn = (%u. int_of_real (real_sgn (hollight.real_of_int u)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3420 |
by (import hollight DEF_int_sgn) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3421 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3422 |
lemma int_sgn_th: "hollight.real_of_int (int_sgn x) = real_sgn (hollight.real_of_int x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3423 |
by (import hollight int_sgn_th) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3424 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3425 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3426 |
int_max :: "hollight.int => hollight.int => hollight.int" where |
| 17644 | 3427 |
"int_max == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3428 |
%u ua. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3429 |
int_of_real (real_max (hollight.real_of_int u) (hollight.real_of_int ua))" |
| 17644 | 3430 |
|
3431 |
lemma DEF_int_max: "int_max = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3432 |
(%u ua. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3433 |
int_of_real |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3434 |
(real_max (hollight.real_of_int u) (hollight.real_of_int ua)))" |
| 17644 | 3435 |
by (import hollight DEF_int_max) |
3436 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3437 |
lemma int_max_th: "hollight.real_of_int (int_max x y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3438 |
real_max (hollight.real_of_int x) (hollight.real_of_int y)" |
| 17644 | 3439 |
by (import hollight int_max_th) |
3440 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3441 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3442 |
int_min :: "hollight.int => hollight.int => hollight.int" where |
| 17644 | 3443 |
"int_min == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3444 |
%u ua. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3445 |
int_of_real (real_min (hollight.real_of_int u) (hollight.real_of_int ua))" |
| 17644 | 3446 |
|
3447 |
lemma DEF_int_min: "int_min = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3448 |
(%u ua. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3449 |
int_of_real |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3450 |
(real_min (hollight.real_of_int u) (hollight.real_of_int ua)))" |
| 17644 | 3451 |
by (import hollight DEF_int_min) |
3452 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3453 |
lemma int_min_th: "hollight.real_of_int (int_min x y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3454 |
real_min (hollight.real_of_int x) (hollight.real_of_int y)" |
| 17644 | 3455 |
by (import hollight int_min_th) |
3456 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3457 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3458 |
int_pow :: "hollight.int => nat => hollight.int" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3459 |
"int_pow == %u ua. int_of_real (real_pow (hollight.real_of_int u) ua)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3460 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3461 |
lemma DEF_int_pow: "int_pow = (%u ua. int_of_real (real_pow (hollight.real_of_int u) ua))" |
| 17644 | 3462 |
by (import hollight DEF_int_pow) |
3463 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3464 |
lemma int_pow_th: "hollight.real_of_int (int_pow x xa) = real_pow (hollight.real_of_int x) xa" |
| 17644 | 3465 |
by (import hollight int_pow_th) |
3466 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3467 |
lemma INT_IMAGE: "(EX n. x = int_of_num n) | (EX n. x = int_neg (int_of_num n))" |
| 17644 | 3468 |
by (import hollight INT_IMAGE) |
3469 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3470 |
lemma INT_LT_DISCRETE: "int_lt x y = int_le (int_add x (int_of_num 1)) y" |
| 17644 | 3471 |
by (import hollight INT_LT_DISCRETE) |
3472 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3473 |
lemma INT_GT_DISCRETE: "int_gt x xa = int_ge x (int_add xa (int_of_num 1))" |
| 17644 | 3474 |
by (import hollight INT_GT_DISCRETE) |
3475 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3476 |
lemma INT_FORALL_POS: "(ALL n. P (int_of_num n)) = (ALL i. int_le (int_of_num 0) i --> P i)" |
| 17644 | 3477 |
by (import hollight INT_FORALL_POS) |
3478 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3479 |
lemma INT_EXISTS_POS: "(EX n. P (int_of_num n)) = (EX i. int_le (int_of_num 0) i & P i)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3480 |
by (import hollight INT_EXISTS_POS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3481 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3482 |
lemma INT_FORALL_ABS: "(ALL n. x (int_of_num n)) = (ALL xa. x (int_abs xa))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3483 |
by (import hollight INT_FORALL_ABS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3484 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3485 |
lemma INT_EXISTS_ABS: "(EX n. P (int_of_num n)) = (EX x. P (int_abs x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3486 |
by (import hollight INT_EXISTS_ABS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3487 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3488 |
lemma INT_ABS_MUL_1: "(int_abs (int_mul x y) = int_of_num 1) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3489 |
(int_abs x = int_of_num 1 & int_abs y = int_of_num 1)" |
| 17644 | 3490 |
by (import hollight INT_ABS_MUL_1) |
3491 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3492 |
lemma INT_WOP: "(EX x. int_le (int_of_num 0) x & P x) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3493 |
(EX x. int_le (int_of_num 0) x & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3494 |
P x & (ALL y. int_le (int_of_num 0) y & P y --> int_le x y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3495 |
by (import hollight INT_WOP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3496 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3497 |
lemma INT_POW: "int_pow x 0 = int_of_num 1 & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3498 |
(ALL xa. int_pow x (Suc xa) = int_mul x (int_pow x xa))" |
| 17644 | 3499 |
by (import hollight INT_POW) |
3500 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3501 |
lemma INT_ABS: "int_abs x = (if int_le (int_of_num 0) x then x else int_neg x)" |
| 17644 | 3502 |
by (import hollight INT_ABS) |
3503 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3504 |
lemma INT_GE: "int_ge x xa = int_le xa x" |
| 17644 | 3505 |
by (import hollight INT_GE) |
3506 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3507 |
lemma INT_GT: "int_gt x xa = int_lt xa x" |
| 17644 | 3508 |
by (import hollight INT_GT) |
3509 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3510 |
lemma INT_LT: "int_lt x xa = (~ int_le xa x)" |
| 17644 | 3511 |
by (import hollight INT_LT) |
3512 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3513 |
lemma INT_ARCH: "d ~= int_of_num 0 ==> EX c. int_lt x (int_mul c d)" |
| 17644 | 3514 |
by (import hollight INT_ARCH) |
3515 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3516 |
lemma INT_DIVMOD_EXIST_0: "EX x xa. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3517 |
if n = int_of_num 0 then x = int_of_num 0 & xa = m |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3518 |
else int_le (int_of_num 0) xa & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3519 |
int_lt xa (int_abs n) & m = int_add (int_mul x n) xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3520 |
by (import hollight INT_DIVMOD_EXIST_0) |
| 17644 | 3521 |
|
3522 |
consts |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3523 |
div :: "hollight.int => hollight.int => hollight.int" ("div")
|
| 17644 | 3524 |
|
3525 |
defs |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3526 |
div_def: "div == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3527 |
SOME q. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3528 |
EX r. ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3529 |
if n = int_of_num 0 then q m n = int_of_num 0 & r m n = m |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3530 |
else int_le (int_of_num 0) (r m n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3531 |
int_lt (r m n) (int_abs n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3532 |
m = int_add (int_mul (q m n) n) (r m n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3533 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3534 |
lemma DEF_div: "div = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3535 |
(SOME q. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3536 |
EX r. ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3537 |
if n = int_of_num 0 then q m n = int_of_num 0 & r m n = m |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3538 |
else int_le (int_of_num 0) (r m n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3539 |
int_lt (r m n) (int_abs n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3540 |
m = int_add (int_mul (q m n) n) (r m n))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3541 |
by (import hollight DEF_div) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3542 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3543 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3544 |
rem :: "hollight.int => hollight.int => hollight.int" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3545 |
"rem == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3546 |
SOME r. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3547 |
ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3548 |
if n = int_of_num 0 then div m n = int_of_num 0 & r m n = m |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3549 |
else int_le (int_of_num 0) (r m n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3550 |
int_lt (r m n) (int_abs n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3551 |
m = int_add (int_mul (div m n) n) (r m n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3552 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3553 |
lemma DEF_rem: "rem = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3554 |
(SOME r. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3555 |
ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3556 |
if n = int_of_num 0 then div m n = int_of_num 0 & r m n = m |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3557 |
else int_le (int_of_num 0) (r m n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3558 |
int_lt (r m n) (int_abs n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3559 |
m = int_add (int_mul (div m n) n) (r m n))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3560 |
by (import hollight DEF_rem) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3561 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3562 |
lemma INT_DIVISION: "n ~= int_of_num 0 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3563 |
==> m = int_add (int_mul (div m n) n) (rem m n) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3564 |
int_le (int_of_num 0) (rem m n) & int_lt (rem m n) (int_abs n)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3565 |
by (import hollight INT_DIVISION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3566 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3567 |
lemma sth: "(ALL x y z. int_add x (int_add y z) = int_add (int_add x y) z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3568 |
(ALL x y. int_add x y = int_add y x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3569 |
(ALL x. int_add (int_of_num 0) x = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3570 |
(ALL x y z. int_mul x (int_mul y z) = int_mul (int_mul x y) z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3571 |
(ALL x y. int_mul x y = int_mul y x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3572 |
(ALL x. int_mul (int_of_num 1) x = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3573 |
(ALL x. int_mul (int_of_num 0) x = int_of_num 0) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3574 |
(ALL x y z. int_mul x (int_add y z) = int_add (int_mul x y) (int_mul x z)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3575 |
(ALL x. int_pow x 0 = int_of_num 1) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3576 |
(ALL x xa. int_pow x (Suc xa) = int_mul x (int_pow x xa))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3577 |
by (import hollight sth) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3578 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3579 |
lemma INT_INTEGRAL: "(ALL x. int_mul (int_of_num 0) x = int_of_num 0) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3580 |
(ALL x y z. (int_add x y = int_add x z) = (y = z)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3581 |
(ALL w x y z. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3582 |
(int_add (int_mul w y) (int_mul x z) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3583 |
int_add (int_mul w z) (int_mul x y)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3584 |
(w = x | y = z))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3585 |
by (import hollight INT_INTEGRAL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3586 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3587 |
lemma INT_DIVMOD_UNIQ: "m = int_add (int_mul q n) r & int_le (int_of_num 0) r & int_lt r (int_abs n) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3588 |
==> div m n = q & rem m n = r" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3589 |
by (import hollight INT_DIVMOD_UNIQ) |
| 17644 | 3590 |
|
3591 |
consts |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3592 |
eqeq :: "'A => 'A => ('A => 'A => bool) => bool"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3593 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3594 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3595 |
eqeq_def: "hollight.eqeq == %(u::'A) (ua::'A) ub::'A => 'A => bool. ub u ua" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3596 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3597 |
lemma DEF__equal__equal_: "hollight.eqeq = (%(u::'A) (ua::'A) ub::'A => 'A => bool. ub u ua)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3598 |
by (import hollight DEF__equal__equal_) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3599 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3600 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3601 |
real_mod :: "hollight.real => hollight.real => hollight.real => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3602 |
"real_mod == %u ua ub. EX q. integer q & real_sub ua ub = real_mul q u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3603 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3604 |
lemma DEF_real_mod: "real_mod = (%u ua ub. EX q. integer q & real_sub ua ub = real_mul q u)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3605 |
by (import hollight DEF_real_mod) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3606 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3607 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3608 |
int_divides :: "hollight.int => hollight.int => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3609 |
"int_divides == %u ua. EX x. ua = int_mul u x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3610 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3611 |
lemma DEF_int_divides: "int_divides = (%u ua. EX x. ua = int_mul u x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3612 |
by (import hollight DEF_int_divides) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3613 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3614 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3615 |
int_mod :: "hollight.int => hollight.int => hollight.int => bool" |
| 17644 | 3616 |
|
3617 |
defs |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3618 |
int_mod_def: "hollight.int_mod == %u ua ub. int_divides u (int_sub ua ub)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3619 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3620 |
lemma DEF_int_mod: "hollight.int_mod = (%u ua ub. int_divides u (int_sub ua ub))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3621 |
by (import hollight DEF_int_mod) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3622 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3623 |
lemma int_congruent: "hollight.eqeq x xa (hollight.int_mod xb) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3624 |
(EX d. int_sub x xa = int_mul xb d)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3625 |
by (import hollight int_congruent) |
| 17644 | 3626 |
|
3627 |
consts |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3628 |
int_coprime :: "hollight.int * hollight.int => bool" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3629 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3630 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3631 |
int_coprime_def: "hollight.int_coprime == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3632 |
%u. EX x y. int_add (int_mul (fst u) x) (int_mul (snd u) y) = int_of_num 1" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3633 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3634 |
lemma DEF_int_coprime: "hollight.int_coprime = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3635 |
(%u. EX x y. int_add (int_mul (fst u) x) (int_mul (snd u) y) = int_of_num 1)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3636 |
by (import hollight DEF_int_coprime) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3637 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3638 |
lemma FORALL_UNCURRY: "All (P::('A => 'B => 'C) => bool) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3639 |
(ALL f::'A * 'B => 'C. P (%(a::'A) b::'B. f (a, b)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3640 |
by (import hollight FORALL_UNCURRY) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3641 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3642 |
lemma EXISTS_UNCURRY: "Ex (x::('A => 'B => 'C) => bool) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3643 |
(EX f::'A * 'B => 'C. x (%(a::'A) b::'B. f (a, b)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3644 |
by (import hollight EXISTS_UNCURRY) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3645 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3646 |
lemma WF_INT_MEASURE: "(ALL x::'A. int_le (int_of_num (0::nat)) ((m::'A => hollight.int) x)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3647 |
(ALL x::'A. (ALL y::'A. int_lt (m y) (m x) --> (P::'A => bool) y) --> P x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3648 |
==> P (x::'A)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3649 |
by (import hollight WF_INT_MEASURE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3650 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3651 |
lemma WF_INT_MEASURE_2: "(ALL (x::'A) y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3652 |
int_le (int_of_num (0::nat)) ((m::'A => 'B => hollight.int) x y)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3653 |
(ALL (x::'A) y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3654 |
(ALL (x'::'A) y'::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3655 |
int_lt (m x' y') (m x y) --> (P::'A => 'B => bool) x' y') --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3656 |
P x y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3657 |
==> P (x::'A) (xa::'B)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3658 |
by (import hollight WF_INT_MEASURE_2) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3659 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3660 |
lemma INT_GCD_EXISTS: "EX d. int_divides d a & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3661 |
int_divides d b & (EX x y. d = int_add (int_mul a x) (int_mul b y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3662 |
by (import hollight INT_GCD_EXISTS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3663 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3664 |
lemma INT_GCD_EXISTS_POS: "EX d. int_le (int_of_num 0) d & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3665 |
int_divides d a & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3666 |
int_divides d b & (EX x y. d = int_add (int_mul a x) (int_mul b y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3667 |
by (import hollight INT_GCD_EXISTS_POS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3668 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3669 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3670 |
int_gcd :: "hollight.int * hollight.int => hollight.int" |
| 17644 | 3671 |
|
3672 |
defs |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3673 |
int_gcd_def: "hollight.int_gcd == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3674 |
SOME d. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3675 |
ALL a b. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3676 |
int_le (int_of_num 0) (d (a, b)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3677 |
int_divides (d (a, b)) a & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3678 |
int_divides (d (a, b)) b & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3679 |
(EX x y. d (a, b) = int_add (int_mul a x) (int_mul b y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3680 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3681 |
lemma DEF_int_gcd: "hollight.int_gcd = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3682 |
(SOME d. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3683 |
ALL a b. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3684 |
int_le (int_of_num 0) (d (a, b)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3685 |
int_divides (d (a, b)) a & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3686 |
int_divides (d (a, b)) b & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3687 |
(EX x y. d (a, b) = int_add (int_mul a x) (int_mul b y)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3688 |
by (import hollight DEF_int_gcd) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3689 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3690 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3691 |
num_of_int :: "hollight.int => nat" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3692 |
"num_of_int == %u. SOME n. int_of_num n = u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3693 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3694 |
lemma DEF_num_of_int: "num_of_int = (%u. SOME n. int_of_num n = u)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3695 |
by (import hollight DEF_num_of_int) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3696 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3697 |
lemma NUM_OF_INT_OF_NUM: "num_of_int (int_of_num x) = x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3698 |
by (import hollight NUM_OF_INT_OF_NUM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3699 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3700 |
lemma INT_OF_NUM_OF_INT: "int_le (int_of_num 0) x ==> int_of_num (num_of_int x) = x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3701 |
by (import hollight INT_OF_NUM_OF_INT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3702 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3703 |
lemma NUM_OF_INT: "int_le (int_of_num 0) x = (int_of_num (num_of_int x) = x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3704 |
by (import hollight NUM_OF_INT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3705 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3706 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3707 |
num_divides :: "nat => nat => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3708 |
"num_divides == %u ua. int_divides (int_of_num u) (int_of_num ua)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3709 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3710 |
lemma DEF_num_divides: "num_divides = (%u ua. int_divides (int_of_num u) (int_of_num ua))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3711 |
by (import hollight DEF_num_divides) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3712 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3713 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3714 |
num_mod :: "nat => nat => nat => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3715 |
"num_mod == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3716 |
%u ua ub. hollight.int_mod (int_of_num u) (int_of_num ua) (int_of_num ub)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3717 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3718 |
lemma DEF_num_mod: "num_mod = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3719 |
(%u ua ub. hollight.int_mod (int_of_num u) (int_of_num ua) (int_of_num ub))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3720 |
by (import hollight DEF_num_mod) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3721 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3722 |
lemma num_congruent: "hollight.eqeq x xa (num_mod xb) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3723 |
hollight.eqeq (int_of_num x) (int_of_num xa) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3724 |
(hollight.int_mod (int_of_num xb))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3725 |
by (import hollight num_congruent) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3726 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3727 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3728 |
num_coprime :: "nat * nat => bool" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3729 |
"num_coprime == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3730 |
%u. hollight.int_coprime (int_of_num (fst u), int_of_num (snd u))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3731 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3732 |
lemma DEF_num_coprime: "num_coprime = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3733 |
(%u. hollight.int_coprime (int_of_num (fst u), int_of_num (snd u)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3734 |
by (import hollight DEF_num_coprime) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3735 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3736 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3737 |
num_gcd :: "nat * nat => nat" where |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3738 |
"num_gcd == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3739 |
%u. num_of_int (hollight.int_gcd (int_of_num (fst u), int_of_num (snd u)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3740 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3741 |
lemma DEF_num_gcd: "num_gcd = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3742 |
(%u. num_of_int (hollight.int_gcd (int_of_num (fst u), int_of_num (snd u))))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3743 |
by (import hollight DEF_num_gcd) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3744 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3745 |
lemma NUM_GCD: "int_of_num (num_gcd (x, xa)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3746 |
hollight.int_gcd (int_of_num x, int_of_num xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3747 |
by (import hollight NUM_GCD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3748 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3749 |
lemma IN_ELIM_THM: "(ALL (P::(bool => 'q_43295 => bool) => bool) x::'q_43295. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3750 |
(x : {v::'q_43295. P (SETSPEC v)}) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3751 |
P (%(p::bool) t::'q_43295. p & x = t)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3752 |
(ALL (p::'q_43326 => bool) x::'q_43326. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3753 |
(x : {v::'q_43326. EX y::'q_43326. p y & v = y}) = p x) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3754 |
(ALL (P::(bool => 'q_43354 => bool) => bool) x::'q_43354. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3755 |
{v::'q_43354. P (SETSPEC v)} x =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3756 |
P (%(p::bool) t::'q_43354. p & x = t)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3757 |
(ALL (p::'q_43383 => bool) x::'q_43383. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3758 |
{v::'q_43383. EX y::'q_43383. p y & v = y} x = p x) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3759 |
(ALL (p::'q_43400 => bool) x::'q_43400. (x : p) = p x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3760 |
by (import hollight IN_ELIM_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3761 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3762 |
lemma INSERT: "insert (x::'A) (s::'A => bool) = {u::'A. EX y::'A. (y : s | y = x) & u = y}"
|
| 17644 | 3763 |
by (import hollight INSERT) |
3764 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3765 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3766 |
SING :: "('A => bool) => bool" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3767 |
"SING == %u::'A => bool. EX x::'A. u = {x}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3768 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3769 |
lemma DEF_SING: "SING = (%u::'A => bool. EX x::'A. u = {x})"
|
| 17644 | 3770 |
by (import hollight DEF_SING) |
3771 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3772 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3773 |
INJ :: "('A => 'B) => ('A => bool) => ('B => bool) => bool" where
|
| 17644 | 3774 |
"INJ == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3775 |
%(u::'A => 'B) (ua::'A => bool) ub::'B => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3776 |
(ALL x::'A. x : ua --> u x : ub) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3777 |
(ALL (x::'A) y::'A. x : ua & y : ua & u x = u y --> x = y)" |
| 17644 | 3778 |
|
3779 |
lemma DEF_INJ: "INJ = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3780 |
(%(u::'A => 'B) (ua::'A => bool) ub::'B => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3781 |
(ALL x::'A. x : ua --> u x : ub) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3782 |
(ALL (x::'A) y::'A. x : ua & y : ua & u x = u y --> x = y))" |
| 17644 | 3783 |
by (import hollight DEF_INJ) |
3784 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3785 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3786 |
SURJ :: "('A => 'B) => ('A => bool) => ('B => bool) => bool" where
|
| 17644 | 3787 |
"SURJ == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3788 |
%(u::'A => 'B) (ua::'A => bool) ub::'B => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3789 |
(ALL x::'A. x : ua --> u x : ub) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3790 |
(ALL x::'B. x : ub --> (EX y::'A. y : ua & u y = x))" |
| 17644 | 3791 |
|
3792 |
lemma DEF_SURJ: "SURJ = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3793 |
(%(u::'A => 'B) (ua::'A => bool) ub::'B => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3794 |
(ALL x::'A. x : ua --> u x : ub) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3795 |
(ALL x::'B. x : ub --> (EX y::'A. y : ua & u y = x)))" |
| 17644 | 3796 |
by (import hollight DEF_SURJ) |
3797 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3798 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3799 |
BIJ :: "('A => 'B) => ('A => bool) => ('B => bool) => bool" where
|
| 17644 | 3800 |
"BIJ == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3801 |
%(u::'A => 'B) (ua::'A => bool) ub::'B => bool. INJ u ua ub & SURJ u ua ub" |
| 17644 | 3802 |
|
3803 |
lemma DEF_BIJ: "BIJ = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3804 |
(%(u::'A => 'B) (ua::'A => bool) ub::'B => bool. INJ u ua ub & SURJ u ua ub)" |
| 17644 | 3805 |
by (import hollight DEF_BIJ) |
3806 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3807 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3808 |
REST :: "('A => bool) => 'A => bool" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3809 |
"REST == %u::'A => bool. u - {Eps u}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3810 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3811 |
lemma DEF_REST: "REST = (%u::'A => bool. u - {Eps u})"
|
| 17644 | 3812 |
by (import hollight DEF_REST) |
3813 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3814 |
lemma NOT_IN_EMPTY: "(x::'A) ~: {}"
|
| 17644 | 3815 |
by (import hollight NOT_IN_EMPTY) |
3816 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3817 |
lemma IN_UNIONS: "((xa::'A) : Union (x::('A => bool) => bool)) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3818 |
(EX t::'A => bool. t : x & xa : t)" |
| 17644 | 3819 |
by (import hollight IN_UNIONS) |
3820 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3821 |
lemma IN_INTERS: "((xa::'A) : Inter (x::('A => bool) => bool)) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3822 |
(ALL t::'A => bool. t : x --> xa : t)" |
| 17644 | 3823 |
by (import hollight IN_INTERS) |
3824 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3825 |
lemma IN_DELETE: "((xa::'A) : (x::'A => bool) - {xb::'A}) = (xa : x & xa ~= xb)"
|
| 17644 | 3826 |
by (import hollight IN_DELETE) |
3827 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3828 |
lemma IN_IMAGE: "((x::'B) : (xb::'A => 'B) ` (xa::'A => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3829 |
(EX xc::'A. x = xb xc & xc : xa)" |
| 17644 | 3830 |
by (import hollight IN_IMAGE) |
3831 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3832 |
lemma IN_REST: "((x::'A) : REST (xa::'A => bool)) = (x : xa & x ~= Eps xa)" |
| 17644 | 3833 |
by (import hollight IN_REST) |
3834 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3835 |
lemma FORALL_IN_INSERT: "(ALL xc::'q_44214. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3836 |
xc : insert (xa::'q_44214) (xb::'q_44214 => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3837 |
(x::'q_44214 => bool) xc) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3838 |
(x xa & (ALL xa::'q_44214. xa : xb --> x xa))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3839 |
by (import hollight FORALL_IN_INSERT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3840 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3841 |
lemma EXISTS_IN_INSERT: "(EX xc::'q_44255. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3842 |
xc : insert (xa::'q_44255) (xb::'q_44255 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3843 |
(x::'q_44255 => bool) xc) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3844 |
(x xa | (EX xa::'q_44255. xa : xb & x xa))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3845 |
by (import hollight EXISTS_IN_INSERT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3846 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3847 |
lemma CHOICE_DEF: "(x::'A => bool) ~= {} ==> Eps x : x"
|
| 17644 | 3848 |
by (import hollight CHOICE_DEF) |
3849 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3850 |
lemma NOT_EQUAL_SETS: "((x::'A => bool) ~= (xa::'A => bool)) = (EX xb::'A. (xb : xa) = (xb ~: x))" |
| 17644 | 3851 |
by (import hollight NOT_EQUAL_SETS) |
3852 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3853 |
lemma EMPTY_NOT_UNIV: "(op ~=::('A::type => bool) => ('A::type => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3854 |
({}::'A::type => bool) (UNIV::'A::type => bool)"
|
| 17644 | 3855 |
by (import hollight EMPTY_NOT_UNIV) |
3856 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3857 |
lemma EQ_UNIV: "(ALL x::'A. x : (s::'A => bool)) = (s = UNIV)" |
| 17644 | 3858 |
by (import hollight EQ_UNIV) |
3859 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3860 |
lemma SING_SUBSET: "({xa::'q_44493} <= (x::'q_44493 => bool)) = (xa : x)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3861 |
by (import hollight SING_SUBSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3862 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3863 |
lemma PSUBSET_UNIV: "((x::'A => bool) < UNIV) = (EX xa::'A. xa ~: x)" |
| 17644 | 3864 |
by (import hollight PSUBSET_UNIV) |
3865 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3866 |
lemma PSUBSET_ALT: "((x::'A => bool) < (xa::'A => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3867 |
(x <= xa & (EX a::'A. a : xa & a ~: x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3868 |
by (import hollight PSUBSET_ALT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3869 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3870 |
lemma SUBSET_UNION: "(ALL (x::'A => bool) xa::'A => bool. x <= x Un xa) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3871 |
(ALL (x::'A => bool) xa::'A => bool. x <= xa Un x)" |
| 17644 | 3872 |
by (import hollight SUBSET_UNION) |
3873 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3874 |
lemma UNION_EMPTY: "(ALL x::'A => bool. {} Un x = x) & (ALL x::'A => bool. x Un {} = x)"
|
| 17644 | 3875 |
by (import hollight UNION_EMPTY) |
3876 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3877 |
lemma UNION_UNIV: "(ALL x::'A => bool. UNIV Un x = UNIV) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3878 |
(ALL x::'A => bool. x Un UNIV = UNIV)" |
| 17644 | 3879 |
by (import hollight UNION_UNIV) |
3880 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3881 |
lemma INTER_SUBSET: "(ALL (x::'A => bool) xa::'A => bool. x Int xa <= x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3882 |
(ALL (x::'A => bool) xa::'A => bool. xa Int x <= x)" |
| 17644 | 3883 |
by (import hollight INTER_SUBSET) |
3884 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3885 |
lemma INTER_EMPTY: "(ALL x::'A => bool. {} Int x = {}) & (ALL x::'A => bool. x Int {} = {})"
|
| 17644 | 3886 |
by (import hollight INTER_EMPTY) |
3887 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3888 |
lemma INTER_UNIV: "(ALL x::'A => bool. UNIV Int x = x) & (ALL x::'A => bool. x Int UNIV = x)" |
| 17644 | 3889 |
by (import hollight INTER_UNIV) |
3890 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3891 |
lemma IN_DISJOINT: "((x::'A => bool) Int (xa::'A => bool) = {}) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3892 |
(~ (EX xb::'A. xb : x & xb : xa))" |
| 17644 | 3893 |
by (import hollight IN_DISJOINT) |
3894 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3895 |
lemma DISJOINT_SYM: "((x::'A => bool) Int (xa::'A => bool) = {}) = (xa Int x = {})"
|
| 17644 | 3896 |
by (import hollight DISJOINT_SYM) |
3897 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3898 |
lemma DISJOINT_EMPTY: "{} Int (x::'A => bool) = {} & x Int {} = {}"
|
| 17644 | 3899 |
by (import hollight DISJOINT_EMPTY) |
3900 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3901 |
lemma DISJOINT_EMPTY_REFL: "((x::'A => bool) = {}) = (x Int x = {})"
|
| 17644 | 3902 |
by (import hollight DISJOINT_EMPTY_REFL) |
3903 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3904 |
lemma DISJOINT_UNION: "(((x::'A => bool) Un (xa::'A => bool)) Int (xb::'A => bool) = {}) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3905 |
(x Int xb = {} & xa Int xb = {})"
|
| 17644 | 3906 |
by (import hollight DISJOINT_UNION) |
3907 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3908 |
lemma DECOMPOSITION: "((x::'A) : (s::'A => bool)) = (EX t::'A => bool. s = insert x t & x ~: t)" |
| 17644 | 3909 |
by (import hollight DECOMPOSITION) |
3910 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3911 |
lemma SET_CASES: "(s::'A => bool) = {} | (EX (x::'A) t::'A => bool. s = insert x t & x ~: t)"
|
| 17644 | 3912 |
by (import hollight SET_CASES) |
3913 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3914 |
lemma ABSORPTION: "((x::'A) : (xa::'A => bool)) = (insert x xa = xa)" |
| 17644 | 3915 |
by (import hollight ABSORPTION) |
3916 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3917 |
lemma INSERT_UNIV: "insert (x::'A) UNIV = UNIV" |
| 17644 | 3918 |
by (import hollight INSERT_UNIV) |
3919 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3920 |
lemma INSERT_UNION: "insert (x::'A) (s::'A => bool) Un (t::'A => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3921 |
(if x : t then s Un t else insert x (s Un t))" |
| 17644 | 3922 |
by (import hollight INSERT_UNION) |
3923 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3924 |
lemma DISJOINT_INSERT: "(insert (x::'A) (xa::'A => bool) Int (xb::'A => bool) = {}) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3925 |
(xa Int xb = {} & x ~: xb)"
|
| 17644 | 3926 |
by (import hollight DISJOINT_INSERT) |
3927 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3928 |
lemma INSERT_AC: "insert (x::'q_45764) (insert (y::'q_45764) (s::'q_45764 => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3929 |
insert y (insert x s) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3930 |
insert x (insert x s) = insert x s" |
| 17644 | 3931 |
by (import hollight INSERT_AC) |
3932 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3933 |
lemma INTER_ACI: "(p::'q_45831 => bool) Int (q::'q_45831 => bool) = q Int p & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3934 |
p Int q Int (r::'q_45831 => bool) = p Int (q Int r) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3935 |
p Int (q Int r) = q Int (p Int r) & p Int p = p & p Int (p Int q) = p Int q" |
| 17644 | 3936 |
by (import hollight INTER_ACI) |
3937 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3938 |
lemma UNION_ACI: "(p::'q_45897 => bool) Un (q::'q_45897 => bool) = q Un p & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3939 |
p Un q Un (r::'q_45897 => bool) = p Un (q Un r) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3940 |
p Un (q Un r) = q Un (p Un r) & p Un p = p & p Un (p Un q) = p Un q" |
| 17644 | 3941 |
by (import hollight UNION_ACI) |
3942 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3943 |
lemma DELETE_NON_ELEMENT: "((x::'A) ~: (xa::'A => bool)) = (xa - {x} = xa)"
|
| 17644 | 3944 |
by (import hollight DELETE_NON_ELEMENT) |
3945 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3946 |
lemma IN_DELETE_EQ: "(((x::'A) : (s::'A => bool)) = ((x'::'A) : s)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3947 |
((x : s - {x'}) = (x' : s - {x}))"
|
| 17644 | 3948 |
by (import hollight IN_DELETE_EQ) |
3949 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3950 |
lemma EMPTY_DELETE: "{} - {x::'A} = {}"
|
| 17644 | 3951 |
by (import hollight EMPTY_DELETE) |
3952 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3953 |
lemma DELETE_DELETE: "(xa::'A => bool) - {x::'A} - {x} = xa - {x}"
|
| 17644 | 3954 |
by (import hollight DELETE_DELETE) |
3955 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3956 |
lemma DELETE_COMM: "(xb::'A => bool) - {x::'A} - {xa::'A} = xb - {xa} - {x}"
|
| 17644 | 3957 |
by (import hollight DELETE_COMM) |
3958 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3959 |
lemma DELETE_SUBSET: "(xa::'A => bool) - {x::'A} <= xa"
|
| 17644 | 3960 |
by (import hollight DELETE_SUBSET) |
3961 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3962 |
lemma SUBSET_DELETE: "((xa::'A => bool) <= (xb::'A => bool) - {x::'A}) = (x ~: xa & xa <= xb)"
|
| 17644 | 3963 |
by (import hollight SUBSET_DELETE) |
3964 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3965 |
lemma SUBSET_INSERT_DELETE: "((xa::'A => bool) <= insert (x::'A) (xb::'A => bool)) = (xa - {x} <= xb)"
|
| 17644 | 3966 |
by (import hollight SUBSET_INSERT_DELETE) |
3967 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3968 |
lemma PSUBSET_INSERT_SUBSET: "((x::'A => bool) < (xa::'A => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3969 |
(EX xb::'A. xb ~: x & insert xb x <= xa)" |
| 17644 | 3970 |
by (import hollight PSUBSET_INSERT_SUBSET) |
3971 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3972 |
lemma PSUBSET_MEMBER: "((x::'A => bool) < (xa::'A => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3973 |
(x <= xa & (EX y::'A. y : xa & y ~: x))" |
| 17644 | 3974 |
by (import hollight PSUBSET_MEMBER) |
3975 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3976 |
lemma DELETE_INSERT: "insert (x::'A) (s::'A => bool) - {y::'A} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3977 |
(if x = y then s - {y} else insert x (s - {y}))"
|
| 17644 | 3978 |
by (import hollight DELETE_INSERT) |
3979 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3980 |
lemma DELETE_INTER: "((x::'A => bool) - {xb::'A}) Int (xa::'A => bool) = x Int xa - {xb}"
|
| 17644 | 3981 |
by (import hollight DELETE_INTER) |
3982 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3983 |
lemma DISJOINT_DELETE_SYM: "(((x::'A => bool) - {xb::'A}) Int (xa::'A => bool) = {}) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3984 |
((xa - {xb}) Int x = {})"
|
| 17644 | 3985 |
by (import hollight DISJOINT_DELETE_SYM) |
3986 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3987 |
lemma FORALL_IN_UNIONS: "(ALL x::'q_46386. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3988 |
x : Union (s::('q_46386 => bool) => bool) --> (P::'q_46386 => bool) x) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3989 |
(ALL (t::'q_46386 => bool) x::'q_46386. t : s & x : t --> P x)" |
| 17644 | 3990 |
by (import hollight FORALL_IN_UNIONS) |
3991 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3992 |
lemma EXISTS_IN_UNIONS: "(EX x::'q_46428. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3993 |
x : Union (s::('q_46428 => bool) => bool) & (P::'q_46428 => bool) x) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3994 |
(EX (t::'q_46428 => bool) x::'q_46428. t : s & x : t & P x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3995 |
by (import hollight EXISTS_IN_UNIONS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3996 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3997 |
lemma EMPTY_UNIONS: "(Union (x::('q_46454 => bool) => bool) = {}) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
3998 |
(ALL xa::'q_46454 => bool. xa : x --> xa = {})"
|
| 17644 | 3999 |
by (import hollight EMPTY_UNIONS) |
4000 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4001 |
lemma INTER_UNIONS: "(ALL (x::('q_46493 => bool) => bool) xa::'q_46493 => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4002 |
Union x Int xa = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4003 |
Union |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4004 |
{u::'q_46493 => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4005 |
EX xb::'q_46493 => bool. xb : x & u = xb Int xa}) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4006 |
(ALL (x::('q_46529 => bool) => bool) xa::'q_46529 => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4007 |
xa Int Union x = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4008 |
Union |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4009 |
{u::'q_46529 => bool. EX xb::'q_46529 => bool. xb : x & u = xa Int xb})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4010 |
by (import hollight INTER_UNIONS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4011 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4012 |
lemma UNIONS_SUBSET: "(Union (x::('q_46545 => bool) => bool) <= (xa::'q_46545 => bool)) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4013 |
(ALL xb::'q_46545 => bool. xb : x --> xb <= xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4014 |
by (import hollight UNIONS_SUBSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4015 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4016 |
lemma IMAGE_CLAUSES: "(f::'q_46676 => 'q_46680) ` {} = {} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4017 |
f ` insert (x::'q_46676) (s::'q_46676 => bool) = insert (f x) (f ` s)" |
| 17644 | 4018 |
by (import hollight IMAGE_CLAUSES) |
4019 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4020 |
lemma IMAGE_INTER_INJ: "(!!(xa::'q_46846) y::'q_46846. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4021 |
(x::'q_46846 => 'q_46857) xa = x y ==> xa = y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4022 |
==> x ` ((xa::'q_46846 => bool) Int (xb::'q_46846 => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4023 |
x ` xa Int x ` xb" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4024 |
by (import hollight IMAGE_INTER_INJ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4025 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4026 |
lemma IMAGE_DIFF_INJ: "(!!(xa::'q_46900) y::'q_46900. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4027 |
(x::'q_46900 => 'q_46911) xa = x y ==> xa = y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4028 |
==> x ` ((xa::'q_46900 => bool) - (xb::'q_46900 => bool)) = x ` xa - x ` xb" |
| 17644 | 4029 |
by (import hollight IMAGE_DIFF_INJ) |
4030 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4031 |
lemma IMAGE_DELETE_INJ: "(!!xa::'q_46958. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4032 |
(x::'q_46958 => 'q_46957) xa = x (xb::'q_46958) ==> xa = xb) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4033 |
==> x ` ((xa::'q_46958 => bool) - {xb}) = x ` xa - {x xb}"
|
| 17644 | 4034 |
by (import hollight IMAGE_DELETE_INJ) |
4035 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4036 |
lemma FORALL_IN_IMAGE: "(ALL xb::'q_47016. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4037 |
xb : (x::'q_47017 => 'q_47016) ` (xa::'q_47017 => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4038 |
(P::'q_47016 => bool) xb) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4039 |
(ALL xb::'q_47017. xb : xa --> P (x xb))" |
| 17644 | 4040 |
by (import hollight FORALL_IN_IMAGE) |
4041 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4042 |
lemma EXISTS_IN_IMAGE: "(EX xb::'q_47052. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4043 |
xb : (x::'q_47053 => 'q_47052) ` (xa::'q_47053 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4044 |
(P::'q_47052 => bool) xb) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4045 |
(EX xb::'q_47053. xb : xa & P (x xb))" |
| 17644 | 4046 |
by (import hollight EXISTS_IN_IMAGE) |
4047 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4048 |
lemma FORALL_SUBSET_IMAGE: "(ALL xc<=(xa::'q_47140 => 'q_47156) ` (xb::'q_47140 => bool). |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4049 |
(x::('q_47156 => bool) => bool) xc) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4050 |
(ALL t<=xb. x (xa ` t))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4051 |
by (import hollight FORALL_SUBSET_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4052 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4053 |
lemma EXISTS_SUBSET_IMAGE: "(EX xc<=(xa::'q_47183 => 'q_47199) ` (xb::'q_47183 => bool). |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4054 |
(x::('q_47199 => bool) => bool) xc) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4055 |
(EX t<=xb. x (xa ` t))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4056 |
by (import hollight EXISTS_SUBSET_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4057 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4058 |
lemma SIMPLE_IMAGE: "{u::'q_47262.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4059 |
EX xb::'q_47258. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4060 |
xb : (xa::'q_47258 => bool) & u = (x::'q_47258 => 'q_47262) xb} = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4061 |
x ` xa" |
| 17644 | 4062 |
by (import hollight SIMPLE_IMAGE) |
4063 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4064 |
lemma SIMPLE_IMAGE_GEN: "{u::'q_47292.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4065 |
EX xa::'q_47305. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4066 |
(P::'q_47305 => bool) xa & u = (x::'q_47305 => 'q_47292) xa} = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4067 |
x ` {u::'q_47305. EX x::'q_47305. P x & u = x}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4068 |
by (import hollight SIMPLE_IMAGE_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4069 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4070 |
lemma IMAGE_UNIONS: "(x::'q_47323 => 'q_47332) ` Union (xa::('q_47323 => bool) => bool) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4071 |
Union (op ` x ` xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4072 |
by (import hollight IMAGE_UNIONS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4073 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4074 |
lemma SURJECTIVE_IMAGE_EQ: "(ALL y::'q_47396. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4075 |
y : (xa::'q_47396 => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4076 |
(EX x::'q_47400. (f::'q_47400 => 'q_47396) x = y)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4077 |
(ALL xb::'q_47400. (f xb : xa) = (xb : (x::'q_47400 => bool))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4078 |
==> f ` x = xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4079 |
by (import hollight SURJECTIVE_IMAGE_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4080 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4081 |
lemma EMPTY_GSPEC: "{u::'q_47425. Ex (SETSPEC u False)} = {}"
|
| 17644 | 4082 |
by (import hollight EMPTY_GSPEC) |
4083 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4084 |
lemma SING_GSPEC: "(ALL x::'q_47454. {u::'q_47454. EX xa::'q_47454. xa = x & u = xa} = {x}) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4085 |
(ALL x::'q_47480. {u::'q_47480. EX xa::'q_47480. x = xa & u = xa} = {x})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4086 |
by (import hollight SING_GSPEC) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4087 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4088 |
lemma IN_ELIM_PAIR_THM: "((xa::'q_47526, xb::'q_47525) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4089 |
: {xa::'q_47526 * 'q_47525.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4090 |
EX (xb::'q_47526) y::'q_47525. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4091 |
(x::'q_47526 => 'q_47525 => bool) xb y & xa = (xb, y)}) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4092 |
x xa xb" |
| 19093 | 4093 |
by (import hollight IN_ELIM_PAIR_THM) |
4094 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4095 |
lemma SET_PAIR_THM: "{u::'q_47570 * 'q_47569.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4096 |
EX p::'q_47570 * 'q_47569. (x::'q_47570 * 'q_47569 => bool) p & u = p} = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4097 |
{u::'q_47570 * 'q_47569.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4098 |
EX (a::'q_47570) b::'q_47569. x (a, b) & u = (a, b)}" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4099 |
by (import hollight SET_PAIR_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4100 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4101 |
lemma FORALL_IN_GSPEC: "(ALL (P::'q_47618 => bool) f::'q_47618 => 'q_47739. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4102 |
(ALL z::'q_47739. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4103 |
z : {u::'q_47739. EX x::'q_47618. P x & u = f x} -->
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4104 |
(Q::'q_47739 => bool) z) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4105 |
(ALL x::'q_47618. P x --> Q (f x))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4106 |
(ALL (P::'q_47675 => 'q_47674 => bool) f::'q_47675 => 'q_47674 => 'q_47739. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4107 |
(ALL z::'q_47739. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4108 |
z : {u::'q_47739.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4109 |
EX (x::'q_47675) y::'q_47674. P x y & u = f x y} --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4110 |
Q z) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4111 |
(ALL (x::'q_47675) y::'q_47674. P x y --> Q (f x y))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4112 |
(ALL (P::'q_47742 => 'q_47741 => 'q_47740 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4113 |
f::'q_47742 => 'q_47741 => 'q_47740 => 'q_47739. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4114 |
(ALL z::'q_47739. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4115 |
z : {u::'q_47739.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4116 |
EX (w::'q_47742) (x::'q_47741) y::'q_47740. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4117 |
P w x y & u = f w x y} --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4118 |
Q z) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4119 |
(ALL (w::'q_47742) (x::'q_47741) y::'q_47740. P w x y --> Q (f w x y)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4120 |
by (import hollight FORALL_IN_GSPEC) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4121 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4122 |
lemma EXISTS_IN_GSPEC: "(ALL (P::'q_47788 => bool) f::'q_47788 => 'q_47909. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4123 |
(EX z::'q_47909. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4124 |
z : {u::'q_47909. EX x::'q_47788. P x & u = f x} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4125 |
(Q::'q_47909 => bool) z) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4126 |
(EX x::'q_47788. P x & Q (f x))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4127 |
(ALL (P::'q_47845 => 'q_47844 => bool) f::'q_47845 => 'q_47844 => 'q_47909. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4128 |
(EX z::'q_47909. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4129 |
z : {u::'q_47909. EX (x::'q_47845) y::'q_47844. P x y & u = f x y} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4130 |
Q z) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4131 |
(EX (x::'q_47845) y::'q_47844. P x y & Q (f x y))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4132 |
(ALL (P::'q_47912 => 'q_47911 => 'q_47910 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4133 |
f::'q_47912 => 'q_47911 => 'q_47910 => 'q_47909. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4134 |
(EX z::'q_47909. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4135 |
z : {u::'q_47909.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4136 |
EX (w::'q_47912) (x::'q_47911) y::'q_47910. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4137 |
P w x y & u = f w x y} & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4138 |
Q z) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4139 |
(EX (w::'q_47912) (x::'q_47911) y::'q_47910. P w x y & Q (f w x y)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4140 |
by (import hollight EXISTS_IN_GSPEC) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4141 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4142 |
lemma SET_PROVE_CASES: "(P::('A => bool) => bool) {} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4143 |
(ALL (a::'A) s::'A => bool. a ~: s --> P (insert a s)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4144 |
==> P (x::'A => bool)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4145 |
by (import hollight SET_PROVE_CASES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4146 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4147 |
lemma UNIONS_IMAGE: "Union ((f::'q_47989 => 'q_47973 => bool) ` (s::'q_47989 => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4148 |
{u::'q_47973. EX y::'q_47973. (EX x::'q_47989. x : s & y : f x) & u = y}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4149 |
by (import hollight UNIONS_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4150 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4151 |
lemma INTERS_IMAGE: "Inter ((f::'q_48032 => 'q_48016 => bool) ` (s::'q_48032 => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4152 |
{u::'q_48016. EX y::'q_48016. (ALL x::'q_48032. x : s --> y : f x) & u = y}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4153 |
by (import hollight INTERS_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4154 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4155 |
lemma UNIONS_GSPEC: "(ALL (P::'q_48085 => bool) f::'q_48085 => 'q_48071 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4156 |
Union {u::'q_48071 => bool. EX x::'q_48085. P x & u = f x} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4157 |
{u::'q_48071.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4158 |
EX a::'q_48071. (EX x::'q_48085. P x & a : f x) & u = a}) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4159 |
(ALL (P::'q_48149 => 'q_48148 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4160 |
f::'q_48149 => 'q_48148 => 'q_48129 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4161 |
Union |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4162 |
{u::'q_48129 => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4163 |
EX (x::'q_48149) y::'q_48148. P x y & u = f x y} = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4164 |
{u::'q_48129.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4165 |
EX a::'q_48129. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4166 |
(EX (x::'q_48149) y::'q_48148. P x y & a : f x y) & u = a}) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4167 |
(ALL (P::'q_48223 => 'q_48222 => 'q_48221 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4168 |
f::'q_48223 => 'q_48222 => 'q_48221 => 'q_48197 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4169 |
Union |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4170 |
{u::'q_48197 => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4171 |
EX (x::'q_48223) (y::'q_48222) z::'q_48221. P x y z & u = f x y z} = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4172 |
{u::'q_48197.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4173 |
EX a::'q_48197. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4174 |
(EX (x::'q_48223) (y::'q_48222) z::'q_48221. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4175 |
P x y z & a : f x y z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4176 |
u = a})" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4177 |
by (import hollight UNIONS_GSPEC) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4178 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4179 |
lemma INTERS_GSPEC: "(ALL (P::'q_48276 => bool) f::'q_48276 => 'q_48262 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4180 |
Inter {u::'q_48262 => bool. EX x::'q_48276. P x & u = f x} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4181 |
{u::'q_48262.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4182 |
EX a::'q_48262. (ALL x::'q_48276. P x --> a : f x) & u = a}) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4183 |
(ALL (P::'q_48340 => 'q_48339 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4184 |
f::'q_48340 => 'q_48339 => 'q_48320 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4185 |
Inter |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4186 |
{u::'q_48320 => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4187 |
EX (x::'q_48340) y::'q_48339. P x y & u = f x y} = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4188 |
{u::'q_48320.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4189 |
EX a::'q_48320. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4190 |
(ALL (x::'q_48340) y::'q_48339. P x y --> a : f x y) & u = a}) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4191 |
(ALL (P::'q_48414 => 'q_48413 => 'q_48412 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4192 |
f::'q_48414 => 'q_48413 => 'q_48412 => 'q_48388 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4193 |
Inter |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4194 |
{u::'q_48388 => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4195 |
EX (x::'q_48414) (y::'q_48413) z::'q_48412. P x y z & u = f x y z} = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4196 |
{u::'q_48388.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4197 |
EX a::'q_48388. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4198 |
(ALL (x::'q_48414) (y::'q_48413) z::'q_48412. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4199 |
P x y z --> a : f x y z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4200 |
u = a})" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4201 |
by (import hollight INTERS_GSPEC) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4202 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4203 |
lemma DIFF_INTERS: "(x::'q_48451 => bool) - Inter (xa::('q_48451 => bool) => bool) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4204 |
Union {u::'q_48451 => bool. EX xb::'q_48451 => bool. xb : xa & u = x - xb}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4205 |
by (import hollight DIFF_INTERS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4206 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4207 |
lemma INTERS_UNIONS: "Inter (x::('q_48486 => bool) => bool) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4208 |
UNIV - |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4209 |
Union {u::'q_48486 => bool. EX t::'q_48486 => bool. t : x & u = UNIV - t}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4210 |
by (import hollight INTERS_UNIONS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4211 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4212 |
lemma UNIONS_INTERS: "Union (s::('q_48521 => bool) => bool) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4213 |
UNIV - |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4214 |
Inter {u::'q_48521 => bool. EX t::'q_48521 => bool. t : s & u = UNIV - t}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4215 |
by (import hollight UNIONS_INTERS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4216 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4217 |
lemma FINITE_SING: "finite {x::'q_48799}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4218 |
by (import hollight FINITE_SING) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4219 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4220 |
lemma FINITE_DELETE_IMP: "finite (s::'A => bool) ==> finite (s - {x::'A})"
|
| 17644 | 4221 |
by (import hollight FINITE_DELETE_IMP) |
4222 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4223 |
lemma FINITE_DELETE: "finite ((s::'A => bool) - {x::'A}) = finite s"
|
| 17644 | 4224 |
by (import hollight FINITE_DELETE) |
4225 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4226 |
lemma FINITE_FINITE_UNIONS: "finite (s::('q_48871 => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4227 |
==> finite (Union s) = (ALL t::'q_48871 => bool. t : s --> finite t)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4228 |
by (import hollight FINITE_FINITE_UNIONS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4229 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4230 |
lemma FINITE_IMAGE_EXPAND: "finite (s::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4231 |
==> finite |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4232 |
{u::'B. EX y::'B. (EX x::'A. x : s & y = (f::'A => 'B) x) & u = y}"
|
| 17644 | 4233 |
by (import hollight FINITE_IMAGE_EXPAND) |
4234 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4235 |
lemma FINITE_IMAGE_INJ_GENERAL: "(ALL (x::'A) y::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4236 |
x : (s::'A => bool) & y : s & (f::'A => 'B) x = f y --> x = y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4237 |
finite (x::'B => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4238 |
==> finite {u::'A. EX xa::'A. (xa : s & f xa : x) & u = xa}"
|
| 17644 | 4239 |
by (import hollight FINITE_IMAGE_INJ_GENERAL) |
4240 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4241 |
lemma FINITE_FINITE_PREIMAGE_GENERAL: "finite (t::'B => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4242 |
(ALL y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4243 |
y : t --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4244 |
finite |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4245 |
{u::'A. EX x::'A. (x : (s::'A => bool) & (f::'A => 'B) x = y) & u = x})
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4246 |
==> finite {u::'A. EX x::'A. (x : s & f x : t) & u = x}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4247 |
by (import hollight FINITE_FINITE_PREIMAGE_GENERAL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4248 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4249 |
lemma FINITE_FINITE_PREIMAGE: "finite (t::'B => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4250 |
(ALL y::'B. y : t --> finite {u::'A. EX x::'A. (f::'A => 'B) x = y & u = x})
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4251 |
==> finite {u::'A. EX x::'A. f x : t & u = x}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4252 |
by (import hollight FINITE_FINITE_PREIMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4253 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4254 |
lemma FINITE_IMAGE_INJ_EQ: "(!!(x::'A) y::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4255 |
x : (s::'A => bool) & y : s & (f::'A => 'B) x = f y ==> x = y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4256 |
==> finite (f ` s) = finite s" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4257 |
by (import hollight FINITE_IMAGE_INJ_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4258 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4259 |
lemma FINITE_IMAGE_INJ: "(ALL (x::'A) y::'A. (f::'A => 'B) x = f y --> x = y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4260 |
finite (A::'B => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4261 |
==> finite {u::'A. EX x::'A. f x : A & u = x}"
|
| 17644 | 4262 |
by (import hollight FINITE_IMAGE_INJ) |
4263 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4264 |
lemma INFINITE_IMAGE_INJ: "[| !!(x::'A) y::'A. (f::'A => 'B) x = f y ==> x = y; |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4265 |
infinite (s::'A => bool) |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4266 |
==> infinite (f ` s)" |
| 17644 | 4267 |
by (import hollight INFINITE_IMAGE_INJ) |
4268 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4269 |
lemma FINITE_SUBSET_IMAGE: "(finite (t::'B => bool) & t <= (f::'A => 'B) ` (s::'A => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4270 |
(EX x::'A => bool. finite x & x <= s & t = f ` x)" |
| 17644 | 4271 |
by (import hollight FINITE_SUBSET_IMAGE) |
4272 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4273 |
lemma EXISTS_FINITE_SUBSET_IMAGE: "(EX xc::'q_49755 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4274 |
finite xc & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4275 |
xc <= (xa::'q_49735 => 'q_49755) ` (xb::'q_49735 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4276 |
(x::('q_49755 => bool) => bool) xc) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4277 |
(EX xc::'q_49735 => bool. finite xc & xc <= xb & x (xa ` xc))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4278 |
by (import hollight EXISTS_FINITE_SUBSET_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4279 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4280 |
lemma FINITE_SUBSET_IMAGE_IMP: "finite (t::'B => bool) & t <= (f::'A => 'B) ` (s::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4281 |
==> EX s'::'A => bool. finite s' & s' <= s & t <= f ` s'" |
| 17644 | 4282 |
by (import hollight FINITE_SUBSET_IMAGE_IMP) |
4283 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4284 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4285 |
FINREC :: "('A => 'B => 'B) => 'B => ('A => bool) => 'B => nat => bool" where
|
| 17644 | 4286 |
"FINREC == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4287 |
SOME FINREC::('A => 'B => 'B) => 'B => ('A => bool) => 'B => nat => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4288 |
(ALL (f::'A => 'B => 'B) (s::'A => bool) (a::'B) b::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4289 |
FINREC f b s a (0::nat) = (s = {} & a = b)) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4290 |
(ALL (b::'B) (s::'A => bool) (n::nat) (a::'B) f::'A => 'B => 'B. |
| 17644 | 4291 |
FINREC f b s a (Suc n) = |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4292 |
(EX (x::'A) c::'B. x : s & FINREC f b (s - {x}) c n & a = f x c))"
|
| 17644 | 4293 |
|
4294 |
lemma DEF_FINREC: "FINREC = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4295 |
(SOME FINREC::('A => 'B => 'B) => 'B => ('A => bool) => 'B => nat => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4296 |
(ALL (f::'A => 'B => 'B) (s::'A => bool) (a::'B) b::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4297 |
FINREC f b s a (0::nat) = (s = {} & a = b)) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4298 |
(ALL (b::'B) (s::'A => bool) (n::nat) (a::'B) f::'A => 'B => 'B. |
| 17644 | 4299 |
FINREC f b s a (Suc n) = |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4300 |
(EX (x::'A) c::'B. x : s & FINREC f b (s - {x}) c n & a = f x c)))"
|
| 17644 | 4301 |
by (import hollight DEF_FINREC) |
4302 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4303 |
lemma FINREC_1_LEMMA: "FINREC (x::'q_49919 => 'q_49918 => 'q_49918) (xa::'q_49918) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4304 |
(xb::'q_49919 => bool) (xc::'q_49918) (Suc (0::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4305 |
(EX xd::'q_49919. xb = {xd} & xc = x xd xa)"
|
| 17644 | 4306 |
by (import hollight FINREC_1_LEMMA) |
4307 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4308 |
lemma FINREC_SUC_LEMMA: "[| !!(x::'A) (y::'A) s::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4309 |
x ~= y ==> (f::'A => 'B => 'B) x (f y s) = f y (f x s); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4310 |
FINREC f (b::'B) (s::'A => bool) (z::'B) (Suc (n::nat)); (x::'A) : s |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4311 |
==> EX w::'B. FINREC f b (s - {x}) w n & z = f x w"
|
| 17644 | 4312 |
by (import hollight FINREC_SUC_LEMMA) |
4313 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4314 |
lemma FINREC_UNIQUE_LEMMA: "[| !!(x::'A) (y::'A) s::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4315 |
x ~= y ==> (f::'A => 'B => 'B) x (f y s) = f y (f x s); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4316 |
FINREC f (b::'B) (s::'A => bool) (a1::'B) (n1::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4317 |
FINREC f b s (a2::'B) (n2::nat) |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4318 |
==> a1 = a2 & n1 = n2" |
| 17644 | 4319 |
by (import hollight FINREC_UNIQUE_LEMMA) |
4320 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4321 |
lemma FINREC_EXISTS_LEMMA: "finite (s::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4322 |
==> EX a::'B. Ex (FINREC (f::'A => 'B => 'B) (b::'B) s a)" |
| 17644 | 4323 |
by (import hollight FINREC_EXISTS_LEMMA) |
4324 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4325 |
lemma FINREC_FUN_LEMMA: "(ALL s::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4326 |
(P::'A => bool) s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4327 |
(EX a::'B. Ex ((R::'A => 'B => 'C => bool) s a))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4328 |
(ALL (n1::'C) (n2::'C) (s::'A) (a1::'B) a2::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4329 |
R s a1 n1 & R s a2 n2 --> a1 = a2 & n1 = n2) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4330 |
==> EX x::'A => 'B. ALL (s::'A) a::'B. P s --> Ex (R s a) = (x s = a)" |
| 17644 | 4331 |
by (import hollight FINREC_FUN_LEMMA) |
4332 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4333 |
lemma FINREC_FUN: "(!!(x::'A) (y::'A) s::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4334 |
x ~= y ==> (f::'A => 'B => 'B) x (f y s) = f y (f x s)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4335 |
==> EX g::('A => bool) => 'B.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4336 |
g {} = (b::'B) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4337 |
(ALL (s::'A => bool) x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4338 |
finite s & x : s --> g s = f x (g (s - {x})))"
|
| 17644 | 4339 |
by (import hollight FINREC_FUN) |
4340 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4341 |
lemma SET_RECURSION_LEMMA: "(!!(x::'A) (y::'A) s::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4342 |
x ~= y ==> (f::'A => 'B => 'B) x (f y s) = f y (f x s)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4343 |
==> EX g::('A => bool) => 'B.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4344 |
g {} = (b::'B) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4345 |
(ALL (x::'A) s::'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4346 |
finite s --> g (insert x s) = (if x : s then g s else f x (g s)))" |
| 17644 | 4347 |
by (import hollight SET_RECURSION_LEMMA) |
4348 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4349 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4350 |
ITSET :: "('q_50575 => 'q_50574 => 'q_50574)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4351 |
=> ('q_50575 => bool) => 'q_50574 => 'q_50574" where
|
| 17644 | 4352 |
"ITSET == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4353 |
%(u::'q_50575 => 'q_50574 => 'q_50574) (ua::'q_50575 => bool) ub::'q_50574. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4354 |
(SOME g::('q_50575 => bool) => 'q_50574.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4355 |
g {} = ub &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4356 |
(ALL (x::'q_50575) s::'q_50575 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4357 |
finite s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4358 |
g (insert x s) = (if x : s then g s else u x (g s)))) |
| 17644 | 4359 |
ua" |
4360 |
||
4361 |
lemma DEF_ITSET: "ITSET = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4362 |
(%(u::'q_50575 => 'q_50574 => 'q_50574) (ua::'q_50575 => bool) ub::'q_50574. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4363 |
(SOME g::('q_50575 => bool) => 'q_50574.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4364 |
g {} = ub &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4365 |
(ALL (x::'q_50575) s::'q_50575 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4366 |
finite s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4367 |
g (insert x s) = (if x : s then g s else u x (g s)))) |
| 17644 | 4368 |
ua)" |
4369 |
by (import hollight DEF_ITSET) |
|
4370 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4371 |
lemma FINITE_RECURSION: "(!!(x::'A) (y::'A) s::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4372 |
x ~= y ==> (f::'A => 'B => 'B) x (f y s) = f y (f x s)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4373 |
==> ITSET f {} (b::'B) = b &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4374 |
(ALL (x::'A) xa::'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4375 |
finite xa --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4376 |
ITSET f (insert x xa) b = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4377 |
(if x : xa then ITSET f xa b else f x (ITSET f xa b)))" |
| 17644 | 4378 |
by (import hollight FINITE_RECURSION) |
4379 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4380 |
lemma FINITE_RECURSION_DELETE: "(!!(x::'A) (y::'A) s::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4381 |
x ~= y ==> (f::'A => 'B => 'B) x (f y s) = f y (f x s)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4382 |
==> ITSET f {} (b::'B) = b &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4383 |
(ALL (x::'A) s::'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4384 |
finite s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4385 |
ITSET f s b = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4386 |
(if x : s then f x (ITSET f (s - {x}) b) else ITSET f (s - {x}) b))"
|
| 17644 | 4387 |
by (import hollight FINITE_RECURSION_DELETE) |
4388 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4389 |
lemma ITSET_EQ: "finite (x::'q_50880 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4390 |
(ALL xc::'q_50880. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4391 |
xc : x --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4392 |
(xa::'q_50880 => 'q_50881 => 'q_50881) xc = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4393 |
(xb::'q_50880 => 'q_50881 => 'q_50881) xc) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4394 |
(ALL (x::'q_50880) (y::'q_50880) s::'q_50881. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4395 |
x ~= y --> xa x (xa y s) = xa y (xa x s)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4396 |
(ALL (x::'q_50880) (y::'q_50880) s::'q_50881. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4397 |
x ~= y --> xb x (xb y s) = xb y (xb x s)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4398 |
==> ITSET xa x (xc::'q_50881) = ITSET xb x xc" |
| 17644 | 4399 |
by (import hollight ITSET_EQ) |
4400 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4401 |
lemma SUBSET_RESTRICT: "{u::'q_50914.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4402 |
EX xb::'q_50914. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4403 |
(xb : (x::'q_50914 => bool) & (xa::'q_50914 => bool) xb) & u = xb} |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4404 |
<= x" |
| 17644 | 4405 |
by (import hollight SUBSET_RESTRICT) |
4406 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4407 |
lemma FINITE_RESTRICT: "finite (s::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4408 |
==> finite {u::'A. EX x::'A. (x : s & (P::'A => bool) x) & u = x}"
|
| 17644 | 4409 |
by (import hollight FINITE_RESTRICT) |
4410 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4411 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4412 |
CARD :: "('q_50968 => bool) => nat" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4413 |
"CARD == %u::'q_50968 => bool. ITSET (%x::'q_50968. Suc) u (0::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4414 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4415 |
lemma DEF_CARD: "CARD = (%u::'q_50968 => bool. ITSET (%x::'q_50968. Suc) u (0::nat))" |
| 17644 | 4416 |
by (import hollight DEF_CARD) |
4417 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4418 |
lemma CARD_CLAUSES: "CARD {} = (0::nat) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4419 |
(ALL (x::'A::type) s::'A::type => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4420 |
finite s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4421 |
CARD (insert x s) = (if x : s then CARD s else Suc (CARD s)))" |
| 17644 | 4422 |
by (import hollight CARD_CLAUSES) |
4423 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4424 |
lemma CARD_UNION: "finite (x::'A => bool) & finite (xa::'A => bool) & x Int xa = {}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4425 |
==> CARD (x Un xa) = CARD x + CARD xa" |
| 17644 | 4426 |
by (import hollight CARD_UNION) |
4427 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4428 |
lemma CARD_DELETE: "finite (s::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4429 |
==> CARD (s - {x::'A}) = (if x : s then CARD s - (1::nat) else CARD s)"
|
| 17644 | 4430 |
by (import hollight CARD_DELETE) |
4431 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4432 |
lemma CARD_UNION_EQ: "finite (u::'q_51213 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4433 |
(s::'q_51213 => bool) Int (t::'q_51213 => bool) = {} & s Un t = u
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4434 |
==> CARD s + CARD t = CARD u" |
| 17644 | 4435 |
by (import hollight CARD_UNION_EQ) |
4436 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4437 |
lemma CARD_DIFF: "finite (s::'q_51270 => bool) & (t::'q_51270 => bool) <= s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4438 |
==> CARD (s - t) = CARD s - CARD t" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4439 |
by (import hollight CARD_DIFF) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4440 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4441 |
lemma CARD_EQ_0: "finite (s::'q_51308 => bool) ==> (CARD s = (0::nat)) = (s = {})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4442 |
by (import hollight CARD_EQ_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4443 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4444 |
lemma FINITE_INDUCT_DELETE: "[| (P::('A => bool) => bool) {} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4445 |
(ALL s::'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4446 |
finite s & s ~= {} --> (EX x::'A. x : s & (P (s - {x}) --> P s)));
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4447 |
finite (s::'A => bool) |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4448 |
==> P s" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4449 |
by (import hollight FINITE_INDUCT_DELETE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4450 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4451 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4452 |
HAS_SIZE :: "('q_51427 => bool) => nat => bool" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4453 |
"HAS_SIZE == %(u::'q_51427 => bool) ua::nat. finite u & CARD u = ua" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4454 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4455 |
lemma DEF_HAS_SIZE: "HAS_SIZE = (%(u::'q_51427 => bool) ua::nat. finite u & CARD u = ua)" |
| 17644 | 4456 |
by (import hollight DEF_HAS_SIZE) |
4457 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4458 |
lemma HAS_SIZE_CARD: "HAS_SIZE (x::'q_51446 => bool) (xa::nat) ==> CARD x = xa" |
| 17644 | 4459 |
by (import hollight HAS_SIZE_CARD) |
4460 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4461 |
lemma HAS_SIZE_0: "HAS_SIZE (s::'A => bool) (0::nat) = (s = {})"
|
| 17644 | 4462 |
by (import hollight HAS_SIZE_0) |
4463 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4464 |
lemma HAS_SIZE_SUC: "HAS_SIZE (s::'A => bool) (Suc (n::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4465 |
(s ~= {} & (ALL x::'A. x : s --> HAS_SIZE (s - {x}) n))"
|
| 17644 | 4466 |
by (import hollight HAS_SIZE_SUC) |
4467 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4468 |
lemma HAS_SIZE_UNION: "HAS_SIZE (x::'q_51584 => bool) (xb::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4469 |
HAS_SIZE (xa::'q_51584 => bool) (xc::nat) & x Int xa = {}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4470 |
==> HAS_SIZE (x Un xa) (xb + xc)" |
| 17644 | 4471 |
by (import hollight HAS_SIZE_UNION) |
4472 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4473 |
lemma HAS_SIZE_DIFF: "HAS_SIZE (x::'q_51620 => bool) (xb::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4474 |
HAS_SIZE (xa::'q_51620 => bool) (xc::nat) & xa <= x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4475 |
==> HAS_SIZE (x - xa) (xb - xc)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4476 |
by (import hollight HAS_SIZE_DIFF) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4477 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4478 |
lemma HAS_SIZE_UNIONS: "HAS_SIZE (x::'A => bool) (xb::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4479 |
(ALL xb::'A. xb : x --> HAS_SIZE ((xa::'A => 'B => bool) xb) (xc::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4480 |
(ALL (xb::'A) y::'A. xb : x & y : x & xb ~= y --> xa xb Int xa y = {})
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4481 |
==> HAS_SIZE (Union {u::'B => bool. EX xb::'A. xb : x & u = xa xb})
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4482 |
(xb * xc)" |
| 17644 | 4483 |
by (import hollight HAS_SIZE_UNIONS) |
4484 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4485 |
lemma FINITE_HAS_SIZE: "finite (x::'q_51824 => bool) = HAS_SIZE x (CARD x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4486 |
by (import hollight FINITE_HAS_SIZE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4487 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4488 |
lemma HAS_SIZE_CLAUSES: "HAS_SIZE (s::'q_51886 => bool) (0::nat) = (s = {}) &
|
| 17644 | 4489 |
HAS_SIZE s (Suc (n::nat)) = |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4490 |
(EX (a::'q_51886) t::'q_51886 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4491 |
HAS_SIZE t n & a ~: t & s = insert a t)" |
| 17644 | 4492 |
by (import hollight HAS_SIZE_CLAUSES) |
4493 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4494 |
lemma CARD_SUBSET_EQ: "finite (b::'A => bool) & (a::'A => bool) <= b & CARD a = CARD b ==> a = b" |
| 17644 | 4495 |
by (import hollight CARD_SUBSET_EQ) |
4496 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4497 |
lemma CARD_SUBSET: "(a::'A => bool) <= (b::'A => bool) & finite b ==> CARD a <= CARD b" |
| 17644 | 4498 |
by (import hollight CARD_SUBSET) |
4499 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4500 |
lemma CARD_SUBSET_LE: "finite (b::'A => bool) & (a::'A => bool) <= b & CARD b <= CARD a ==> a = b" |
| 17644 | 4501 |
by (import hollight CARD_SUBSET_LE) |
4502 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4503 |
lemma SUBSET_CARD_EQ: "finite (t::'q_52197 => bool) & (s::'q_52197 => bool) <= t |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4504 |
==> (CARD s = CARD t) = (s = t)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4505 |
by (import hollight SUBSET_CARD_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4506 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4507 |
lemma CARD_PSUBSET: "(a::'A => bool) < (b::'A => bool) & finite b ==> CARD a < CARD b" |
| 17644 | 4508 |
by (import hollight CARD_PSUBSET) |
4509 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4510 |
lemma CARD_UNION_LE: "finite (s::'A => bool) & finite (t::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4511 |
==> CARD (s Un t) <= CARD s + CARD t" |
| 17644 | 4512 |
by (import hollight CARD_UNION_LE) |
4513 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4514 |
lemma CARD_UNIONS_LE: "HAS_SIZE (x::'A => bool) (xb::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4515 |
(ALL xb::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4516 |
xb : x --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4517 |
finite ((xa::'A => 'B => bool) xb) & CARD (xa xb) <= (xc::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4518 |
==> CARD (Union {u::'B => bool. EX xb::'A. xb : x & u = xa xb}) <= xb * xc"
|
| 17644 | 4519 |
by (import hollight CARD_UNIONS_LE) |
4520 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4521 |
lemma CARD_UNION_GEN: "finite (s::'q_52620 => bool) & finite (t::'q_52620 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4522 |
==> CARD (s Un t) = CARD s + CARD t - CARD (s Int t)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4523 |
by (import hollight CARD_UNION_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4524 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4525 |
lemma CARD_UNION_OVERLAP_EQ: "finite (s::'q_52701 => bool) & finite (t::'q_52701 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4526 |
==> (CARD (s Un t) = CARD s + CARD t) = (s Int t = {})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4527 |
by (import hollight CARD_UNION_OVERLAP_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4528 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4529 |
lemma CARD_UNION_OVERLAP: "finite (x::'q_52743 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4530 |
finite (xa::'q_52743 => bool) & CARD (x Un xa) < CARD x + CARD xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4531 |
==> x Int xa ~= {}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4532 |
by (import hollight CARD_UNION_OVERLAP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4533 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4534 |
lemma CARD_IMAGE_INJ: "(ALL (xa::'A) y::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4535 |
xa : (x::'A => bool) & y : x & (f::'A => 'B) xa = f y --> xa = y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4536 |
finite x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4537 |
==> CARD (f ` x) = CARD x" |
| 17644 | 4538 |
by (import hollight CARD_IMAGE_INJ) |
4539 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4540 |
lemma HAS_SIZE_IMAGE_INJ: "(ALL (xb::'A) y::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4541 |
xb : (xa::'A => bool) & y : xa & (x::'A => 'B) xb = x y --> xb = y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4542 |
HAS_SIZE xa (xb::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4543 |
==> HAS_SIZE (x ` xa) xb" |
| 17644 | 4544 |
by (import hollight HAS_SIZE_IMAGE_INJ) |
4545 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4546 |
lemma CARD_IMAGE_LE: "finite (s::'A => bool) ==> CARD ((f::'A => 'B) ` s) <= CARD s" |
| 17644 | 4547 |
by (import hollight CARD_IMAGE_LE) |
4548 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4549 |
lemma CARD_IMAGE_INJ_EQ: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4550 |
(ALL x::'A. x : s --> (f::'A => 'B) x : (t::'B => bool)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4551 |
(ALL y::'B. y : t --> (EX! x::'A. x : s & f x = y)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4552 |
==> CARD t = CARD s" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4553 |
by (import hollight CARD_IMAGE_INJ_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4554 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4555 |
lemma CARD_SUBSET_IMAGE: "finite (t::'q_52977 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4556 |
(s::'q_52984 => bool) <= (f::'q_52977 => 'q_52984) ` t |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4557 |
==> CARD s <= CARD t" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4558 |
by (import hollight CARD_SUBSET_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4559 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4560 |
lemma HAS_SIZE_IMAGE_INJ_EQ: "(!!(x::'q_53049) y::'q_53049. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4561 |
x : (s::'q_53049 => bool) & y : s & (f::'q_53049 => 'q_53044) x = f y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4562 |
==> x = y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4563 |
==> HAS_SIZE (f ` s) (n::nat) = HAS_SIZE s n" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4564 |
by (import hollight HAS_SIZE_IMAGE_INJ_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4565 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4566 |
lemma CHOOSE_SUBSET_STRONG: "(finite (s::'A => bool) ==> (n::nat) <= CARD s) ==> EX t<=s. HAS_SIZE t n" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4567 |
by (import hollight CHOOSE_SUBSET_STRONG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4568 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4569 |
lemma CHOOSE_SUBSET: "[| finite (s::'A => bool); (n::nat) <= CARD s |] ==> EX t<=s. HAS_SIZE t n" |
| 17644 | 4570 |
by (import hollight CHOOSE_SUBSET) |
4571 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4572 |
lemma HAS_SIZE_PRODUCT_DEPENDENT: "HAS_SIZE (x::'A => bool) (xa::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4573 |
(ALL xa::'A. xa : x --> HAS_SIZE ((xb::'A => 'B => bool) xa) (xc::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4574 |
==> HAS_SIZE |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4575 |
{u::'A * 'B. EX (xa::'A) y::'B. (xa : x & y : xb xa) & u = (xa, y)}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4576 |
(xa * xc)" |
| 17644 | 4577 |
by (import hollight HAS_SIZE_PRODUCT_DEPENDENT) |
4578 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4579 |
lemma FINITE_PRODUCT_DEPENDENT: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4580 |
(ALL x::'A. x : s --> finite ((t::'A => 'B => bool) x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4581 |
==> finite |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4582 |
{u::'C.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4583 |
EX (x::'A) y::'B. (x : s & y : t x) & u = (f::'A => 'B => 'C) x y}" |
| 17644 | 4584 |
by (import hollight FINITE_PRODUCT_DEPENDENT) |
4585 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4586 |
lemma FINITE_PRODUCT: "finite (x::'A => bool) & finite (xa::'B => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4587 |
==> finite {u::'A * 'B. EX (xb::'A) y::'B. (xb : x & y : xa) & u = (xb, y)}"
|
| 17644 | 4588 |
by (import hollight FINITE_PRODUCT) |
4589 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4590 |
lemma CARD_PRODUCT: "finite (s::'A => bool) & finite (t::'B => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4591 |
==> CARD {u::'A * 'B. EX (x::'A) y::'B. (x : s & y : t) & u = (x, y)} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4592 |
CARD s * CARD t" |
| 17644 | 4593 |
by (import hollight CARD_PRODUCT) |
4594 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4595 |
lemma HAS_SIZE_PRODUCT: "HAS_SIZE (x::'A => bool) (xa::nat) & HAS_SIZE (xb::'B => bool) (xc::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4596 |
==> HAS_SIZE |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4597 |
{u::'A * 'B. EX (xa::'A) y::'B. (xa : x & y : xb) & u = (xa, y)}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4598 |
(xa * xc)" |
| 17644 | 4599 |
by (import hollight HAS_SIZE_PRODUCT) |
4600 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4601 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4602 |
CROSS :: "('q_53759 => bool) => ('q_53758 => bool) => 'q_53759 * 'q_53758 => bool" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4603 |
"CROSS == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4604 |
%(u::'q_53759 => bool) ua::'q_53758 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4605 |
{ub::'q_53759 * 'q_53758.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4606 |
EX (x::'q_53759) y::'q_53758. (x : u & y : ua) & ub = (x, y)}" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4607 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4608 |
lemma DEF_CROSS: "CROSS = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4609 |
(%(u::'q_53759 => bool) ua::'q_53758 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4610 |
{ub::'q_53759 * 'q_53758.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4611 |
EX (x::'q_53759) y::'q_53758. (x : u & y : ua) & ub = (x, y)})" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4612 |
by (import hollight DEF_CROSS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4613 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4614 |
lemma IN_CROSS: "((x::'q_53795, xa::'q_53798) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4615 |
: CROSS (xb::'q_53795 => bool) (xc::'q_53798 => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4616 |
(x : xb & xa : xc)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4617 |
by (import hollight IN_CROSS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4618 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4619 |
lemma HAS_SIZE_CROSS: "HAS_SIZE (x::'q_53823 => bool) (xb::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4620 |
HAS_SIZE (xa::'q_53826 => bool) (xc::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4621 |
==> HAS_SIZE (CROSS x xa) (xb * xc)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4622 |
by (import hollight HAS_SIZE_CROSS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4623 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4624 |
lemma FINITE_CROSS: "finite (x::'q_53851 => bool) & finite (xa::'q_53853 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4625 |
==> finite (CROSS x xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4626 |
by (import hollight FINITE_CROSS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4627 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4628 |
lemma CARD_CROSS: "finite (x::'q_53874 => bool) & finite (xa::'q_53876 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4629 |
==> CARD (CROSS x xa) = CARD x * CARD xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4630 |
by (import hollight CARD_CROSS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4631 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4632 |
lemma CROSS_EQ_EMPTY: "(CROSS (x::'q_53917 => bool) (xa::'q_53921 => bool) = {}) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4633 |
(x = {} | xa = {})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4634 |
by (import hollight CROSS_EQ_EMPTY) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4635 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4636 |
lemma HAS_SIZE_FUNSPACE: "HAS_SIZE (s::'A => bool) (m::nat) & HAS_SIZE (t::'B => bool) (n::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4637 |
==> HAS_SIZE |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4638 |
{u::'A => 'B.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4639 |
EX f::'A => 'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4640 |
((ALL x::'A. x : s --> f x : t) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4641 |
(ALL x::'A. x ~: s --> f x = (d::'B))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4642 |
u = f} |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4643 |
(n ^ m)" |
| 17644 | 4644 |
by (import hollight HAS_SIZE_FUNSPACE) |
4645 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4646 |
lemma CARD_FUNSPACE: "finite (s::'q_54227 => bool) & finite (t::'q_54224 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4647 |
==> CARD |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4648 |
{u::'q_54227 => 'q_54224.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4649 |
EX f::'q_54227 => 'q_54224. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4650 |
((ALL x::'q_54227. x : s --> f x : t) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4651 |
(ALL x::'q_54227. x ~: s --> f x = (d::'q_54224))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4652 |
u = f} = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4653 |
CARD t ^ CARD s" |
| 17644 | 4654 |
by (import hollight CARD_FUNSPACE) |
4655 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4656 |
lemma FINITE_FUNSPACE: "finite (s::'q_54293 => bool) & finite (t::'q_54290 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4657 |
==> finite |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4658 |
{u::'q_54293 => 'q_54290.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4659 |
EX f::'q_54293 => 'q_54290. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4660 |
((ALL x::'q_54293. x : s --> f x : t) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4661 |
(ALL x::'q_54293. x ~: s --> f x = (d::'q_54290))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4662 |
u = f}" |
| 17644 | 4663 |
by (import hollight FINITE_FUNSPACE) |
4664 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4665 |
lemma HAS_SIZE_POWERSET: "HAS_SIZE (s::'A => bool) (n::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4666 |
==> HAS_SIZE {u::'A => bool. EX t<=s. u = t} ((2::nat) ^ n)"
|
| 17644 | 4667 |
by (import hollight HAS_SIZE_POWERSET) |
4668 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4669 |
lemma CARD_POWERSET: "finite (s::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4670 |
==> CARD {u::'A => bool. EX t<=s. u = t} = (2::nat) ^ CARD s"
|
| 17644 | 4671 |
by (import hollight CARD_POWERSET) |
4672 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4673 |
lemma FINITE_POWERSET: "finite (s::'A => bool) ==> finite {u::'A => bool. EX t<=s. u = t}"
|
| 17644 | 4674 |
by (import hollight FINITE_POWERSET) |
4675 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4676 |
lemma FINITE_UNIONS: "finite (Union (s::('A => bool) => bool)) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4677 |
(finite s & (ALL t::'A => bool. t : s --> finite t))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4678 |
by (import hollight FINITE_UNIONS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4679 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4680 |
lemma POWERSET_CLAUSES: "{x::'q_54515 => bool. EX xa<={}. x = xa} = {{}} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4681 |
(ALL (x::'A) xa::'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4682 |
{xb::'A => bool. EX xc<=insert x xa. xb = xc} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4683 |
{u::'A => bool. EX s<=xa. u = s} Un
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4684 |
insert x ` {u::'A => bool. EX s<=xa. u = s})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4685 |
by (import hollight POWERSET_CLAUSES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4686 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4687 |
lemma HAS_SIZE_NUMSEG_LT: "HAS_SIZE {u. EX m<n. u = m} n"
|
| 17644 | 4688 |
by (import hollight HAS_SIZE_NUMSEG_LT) |
4689 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4690 |
lemma CARD_NUMSEG_LT: "CARD {u. EX m<x. u = m} = x"
|
| 17644 | 4691 |
by (import hollight CARD_NUMSEG_LT) |
4692 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4693 |
lemma FINITE_NUMSEG_LT: "finite {u::nat. EX m<x::nat. u = m}"
|
| 17644 | 4694 |
by (import hollight FINITE_NUMSEG_LT) |
4695 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4696 |
lemma HAS_SIZE_NUMSEG_LE: "HAS_SIZE {xa. EX xb<=x. xa = xb} (x + 1)"
|
| 17644 | 4697 |
by (import hollight HAS_SIZE_NUMSEG_LE) |
4698 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4699 |
lemma FINITE_NUMSEG_LE: "finite {u::nat. EX m<=x::nat. u = m}"
|
| 17644 | 4700 |
by (import hollight FINITE_NUMSEG_LE) |
4701 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4702 |
lemma CARD_NUMSEG_LE: "CARD {u. EX m<=x. u = m} = x + 1"
|
| 17644 | 4703 |
by (import hollight CARD_NUMSEG_LE) |
4704 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4705 |
lemma num_FINITE: "finite (s::nat => bool) = (EX a::nat. ALL x::nat. x : s --> x <= a)" |
| 17644 | 4706 |
by (import hollight num_FINITE) |
4707 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4708 |
lemma num_FINITE_AVOID: "finite (s::nat => bool) ==> EX a::nat. a ~: s" |
| 17644 | 4709 |
by (import hollight num_FINITE_AVOID) |
4710 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4711 |
lemma FINITE_REAL_INTERVAL: "(ALL a. infinite {u. EX x. real_lt a x & u = x}) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4712 |
(ALL a. infinite {u. EX x. real_le a x & u = x}) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4713 |
(ALL b. infinite {u. EX x. real_lt x b & u = x}) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4714 |
(ALL b. infinite {u. EX x. real_le x b & u = x}) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4715 |
(ALL x xa. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4716 |
finite {u. EX xb. (real_lt x xb & real_lt xb xa) & u = xb} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4717 |
real_le xa x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4718 |
(ALL a b. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4719 |
finite {u. EX x. (real_le a x & real_lt x b) & u = x} = real_le b a) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4720 |
(ALL a b. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4721 |
finite {u. EX x. (real_lt a x & real_le x b) & u = x} = real_le b a) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4722 |
(ALL a b. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4723 |
finite {u. EX x. (real_le a x & real_le x b) & u = x} = real_le b a)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4724 |
by (import hollight FINITE_REAL_INTERVAL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4725 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4726 |
lemma real_INFINITE: "(infinite::(hollight.real => bool) => bool) (UNIV::hollight.real => bool)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4727 |
by (import hollight real_INFINITE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4728 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4729 |
lemma HAS_SIZE_INDEX: "HAS_SIZE (x::'A => bool) (n::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4730 |
==> EX f::nat => 'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4731 |
(ALL m<n. f m : x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4732 |
(ALL xa::'A. xa : x --> (EX! m::nat. m < n & f m = xa))" |
| 17644 | 4733 |
by (import hollight HAS_SIZE_INDEX) |
4734 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4735 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4736 |
pairwise :: "('q_55938 => 'q_55938 => bool) => ('q_55938 => bool) => bool" where
|
| 17644 | 4737 |
"pairwise == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4738 |
%(u::'q_55938 => 'q_55938 => bool) ua::'q_55938 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4739 |
ALL (x::'q_55938) y::'q_55938. x : ua & y : ua & x ~= y --> u x y" |
| 17644 | 4740 |
|
4741 |
lemma DEF_pairwise: "pairwise = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4742 |
(%(u::'q_55938 => 'q_55938 => bool) ua::'q_55938 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4743 |
ALL (x::'q_55938) y::'q_55938. x : ua & y : ua & x ~= y --> u x y)" |
| 17644 | 4744 |
by (import hollight DEF_pairwise) |
4745 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4746 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4747 |
PAIRWISE :: "('A => 'A => bool) => 'A list => bool" where
|
| 17644 | 4748 |
"PAIRWISE == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4749 |
SOME PAIRWISE::('A => 'A => bool) => 'A list => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4750 |
(ALL r::'A => 'A => bool. PAIRWISE r [] = True) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4751 |
(ALL (h::'A) (r::'A => 'A => bool) t::'A list. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4752 |
PAIRWISE r (h # t) = (list_all (r h) t & PAIRWISE r t))" |
| 17644 | 4753 |
|
4754 |
lemma DEF_PAIRWISE: "PAIRWISE = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4755 |
(SOME PAIRWISE::('A => 'A => bool) => 'A list => bool.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4756 |
(ALL r::'A => 'A => bool. PAIRWISE r [] = True) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4757 |
(ALL (h::'A) (r::'A => 'A => bool) t::'A list. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4758 |
PAIRWISE r (h # t) = (list_all (r h) t & PAIRWISE r t)))" |
| 17644 | 4759 |
by (import hollight DEF_PAIRWISE) |
4760 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4761 |
lemma PAIRWISE_EMPTY: "pairwise (x::'q_55973 => 'q_55973 => bool) {} = True"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4762 |
by (import hollight PAIRWISE_EMPTY) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4763 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4764 |
lemma PAIRWISE_SING: "pairwise (x::'q_55991 => 'q_55991 => bool) {xa::'q_55991} = True"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4765 |
by (import hollight PAIRWISE_SING) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4766 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4767 |
lemma PAIRWISE_MONO: "pairwise (x::'q_56011 => 'q_56011 => bool) (xa::'q_56011 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4768 |
(xb::'q_56011 => bool) <= xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4769 |
==> pairwise x xb" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4770 |
by (import hollight PAIRWISE_MONO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4771 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4772 |
lemma SURJECTIVE_IFF_INJECTIVE_GEN: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4773 |
finite (t::'B => bool) & CARD s = CARD t & (f::'A => 'B) ` s <= t |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4774 |
==> (ALL y::'B. y : t --> (EX x::'A. x : s & f x = y)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4775 |
(ALL (x::'A) y::'A. x : s & y : s & f x = f y --> x = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4776 |
by (import hollight SURJECTIVE_IFF_INJECTIVE_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4777 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4778 |
lemma SURJECTIVE_IFF_INJECTIVE: "finite (x::'A => bool) & (xa::'A => 'A) ` x <= x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4779 |
==> (ALL y::'A. y : x --> (EX xb::'A. xb : x & xa xb = y)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4780 |
(ALL (xb::'A) y::'A. xb : x & y : x & xa xb = xa y --> xb = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4781 |
by (import hollight SURJECTIVE_IFF_INJECTIVE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4782 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4783 |
lemma IMAGE_IMP_INJECTIVE_GEN: "[| finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4784 |
CARD s = CARD (t::'B => bool) & (f::'A => 'B) ` s = t; |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4785 |
(x::'A) : s & (y::'A) : s & f x = f y |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4786 |
==> x = y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4787 |
by (import hollight IMAGE_IMP_INJECTIVE_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4788 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4789 |
lemma IMAGE_IMP_INJECTIVE: "[| finite (s::'q_56387 => bool) & (f::'q_56387 => 'q_56387) ` s = s; |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4790 |
(x::'q_56387) : s & (y::'q_56387) : s & f x = f y |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4791 |
==> x = y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4792 |
by (import hollight IMAGE_IMP_INJECTIVE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4793 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4794 |
lemma CARD_LE_INJ: "finite (x::'A => bool) & finite (xa::'B => bool) & CARD x <= CARD xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4795 |
==> EX f::'A => 'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4796 |
f ` x <= xa & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4797 |
(ALL (xa::'A) y::'A. xa : x & y : x & f xa = f y --> xa = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4798 |
by (import hollight CARD_LE_INJ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4799 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4800 |
lemma FORALL_IN_CLAUSES: "(ALL x::'q_56493 => bool. (ALL xa::'q_56493. xa : {} --> x xa) = True) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4801 |
(ALL (x::'q_56533 => bool) (xa::'q_56533) xb::'q_56533 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4802 |
(ALL xc::'q_56533. xc : insert xa xb --> x xc) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4803 |
(x xa & (ALL xa::'q_56533. xa : xb --> x xa)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4804 |
by (import hollight FORALL_IN_CLAUSES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4805 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4806 |
lemma EXISTS_IN_CLAUSES: "(ALL x::'q_56553 => bool. (EX xa::'q_56553. xa : {} & x xa) = False) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4807 |
(ALL (x::'q_56593 => bool) (xa::'q_56593) xb::'q_56593 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4808 |
(EX xc::'q_56593. xc : insert xa xb & x xc) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4809 |
(x xa | (EX xa::'q_56593. xa : xb & x xa)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4810 |
by (import hollight EXISTS_IN_CLAUSES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4811 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4812 |
lemma SURJECTIVE_ON_RIGHT_INVERSE: "(ALL xb::'q_56650. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4813 |
xb : (xa::'q_56650 => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4814 |
(EX xa::'q_56649. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4815 |
xa : (s::'q_56649 => bool) & (x::'q_56649 => 'q_56650) xa = xb)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4816 |
(EX g::'q_56650 => 'q_56649. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4817 |
ALL y::'q_56650. y : xa --> g y : s & x (g y) = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4818 |
by (import hollight SURJECTIVE_ON_RIGHT_INVERSE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4819 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4820 |
lemma INJECTIVE_ON_LEFT_INVERSE: "(ALL (xb::'q_56743) y::'q_56743. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4821 |
xb : (xa::'q_56743 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4822 |
y : xa & (x::'q_56743 => 'q_56746) xb = x y --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4823 |
xb = y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4824 |
(EX xb::'q_56746 => 'q_56743. ALL xc::'q_56743. xc : xa --> xb (x xc) = xc)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4825 |
by (import hollight INJECTIVE_ON_LEFT_INVERSE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4826 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4827 |
lemma BIJECTIVE_ON_LEFT_RIGHT_INVERSE: "(!!x::'q_56878. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4828 |
x : (s::'q_56878 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4829 |
==> (f::'q_56878 => 'q_56877) x : (t::'q_56877 => bool)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4830 |
==> ((ALL (x::'q_56878) y::'q_56878. x : s & y : s & f x = f y --> x = y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4831 |
(ALL x::'q_56877. x : t --> (EX xa::'q_56878. xa : s & f xa = x))) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4832 |
(EX g::'q_56877 => 'q_56878. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4833 |
(ALL y::'q_56877. y : t --> g y : s) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4834 |
(ALL y::'q_56877. y : t --> f (g y) = y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4835 |
(ALL x::'q_56878. x : s --> g (f x) = x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4836 |
by (import hollight BIJECTIVE_ON_LEFT_RIGHT_INVERSE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4837 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4838 |
lemma SURJECTIVE_RIGHT_INVERSE: "(ALL y::'q_56902. EX x::'q_56905. (f::'q_56905 => 'q_56902) x = y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4839 |
(EX g::'q_56902 => 'q_56905. ALL y::'q_56902. f (g y) = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4840 |
by (import hollight SURJECTIVE_RIGHT_INVERSE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4841 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4842 |
lemma INJECTIVE_LEFT_INVERSE: "(ALL (x::'q_56939) xa::'q_56939. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4843 |
(f::'q_56939 => 'q_56942) x = f xa --> x = xa) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4844 |
(EX g::'q_56942 => 'q_56939. ALL x::'q_56939. g (f x) = x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4845 |
by (import hollight INJECTIVE_LEFT_INVERSE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4846 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4847 |
lemma BIJECTIVE_LEFT_RIGHT_INVERSE: "((ALL (x::'A) y::'A. (f::'A => 'B) x = f y --> x = y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4848 |
(ALL y::'B. EX x::'A. f x = y)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4849 |
(EX g::'B => 'A. (ALL y::'B. f (g y) = y) & (ALL x::'A. g (f x) = x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4850 |
by (import hollight BIJECTIVE_LEFT_RIGHT_INVERSE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4851 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4852 |
lemma FUNCTION_FACTORS_RIGHT: "(ALL xb::'q_57046. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4853 |
EX y::'q_57034. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4854 |
(xa::'q_57034 => 'q_57047) y = (x::'q_57046 => 'q_57047) xb) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4855 |
(EX xb::'q_57046 => 'q_57034. x = xa o xb)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4856 |
by (import hollight FUNCTION_FACTORS_RIGHT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4857 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4858 |
lemma FUNCTION_FACTORS_LEFT: "(ALL (xb::'q_57119) y::'q_57119. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4859 |
(xa::'q_57119 => 'q_57099) xb = xa y --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4860 |
(x::'q_57119 => 'q_57120) xb = x y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4861 |
(EX xb::'q_57099 => 'q_57120. x = xb o xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4862 |
by (import hollight FUNCTION_FACTORS_LEFT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4863 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4864 |
lemma SURJECTIVE_FORALL_THM: "(ALL y::'B. EX x::'A. (f::'A => 'B) x = y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4865 |
(ALL P::'B => bool. (ALL x::'A. P (f x)) = All P)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4866 |
by (import hollight SURJECTIVE_FORALL_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4867 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4868 |
lemma SURJECTIVE_EXISTS_THM: "(ALL y::'B. EX x::'A. (f::'A => 'B) x = y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4869 |
(ALL P::'B => bool. (EX x::'A. P (f x)) = Ex P)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4870 |
by (import hollight SURJECTIVE_EXISTS_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4871 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4872 |
lemma SURJECTIVE_IMAGE_THM: "(ALL y::'B. EX x::'A. (f::'A => 'B) x = y) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4873 |
(ALL x::'B => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4874 |
f ` {u::'A. EX xa::'A. x (f xa) & u = xa} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4875 |
{u::'B. EX xa::'B. x xa & u = xa})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4876 |
by (import hollight SURJECTIVE_IMAGE_THM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4877 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4878 |
lemma IMAGE_INJECTIVE_IMAGE_OF_SUBSET: "EX x<=s::'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4879 |
(f::'A => 'B) ` s = f ` x & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4880 |
(ALL (xa::'A) y::'A. xa : x & y : x & f xa = f y --> xa = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4881 |
by (import hollight IMAGE_INJECTIVE_IMAGE_OF_SUBSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4882 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4883 |
lemma INJECTIVE_ON_IMAGE: "(ALL (s::'A => bool) t::'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4884 |
s <= (u::'A => bool) & t <= u & (f::'A => 'B) ` s = f ` t --> s = t) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4885 |
(ALL (x::'A) y::'A. x : u & y : u & f x = f y --> x = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4886 |
by (import hollight INJECTIVE_ON_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4887 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4888 |
lemma INJECTIVE_IMAGE: "(ALL (s::'A => bool) t::'A => bool. (f::'A => 'B) ` s = f ` t --> s = t) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4889 |
(ALL (x::'A) y::'A. f x = f y --> x = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4890 |
by (import hollight INJECTIVE_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4891 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4892 |
lemma SURJECTIVE_ON_IMAGE: "(ALL t<=v::'B => bool. EX s<=u::'A => bool. (f::'A => 'B) ` s = t) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4893 |
(ALL y::'B. y : v --> (EX x::'A. x : u & f x = y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4894 |
by (import hollight SURJECTIVE_ON_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4895 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4896 |
lemma SURJECTIVE_IMAGE: "(ALL t::'B => bool. EX s::'A => bool. (f::'A => 'B) ` s = t) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4897 |
(ALL y::'B. EX x::'A. f x = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4898 |
by (import hollight SURJECTIVE_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4899 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4900 |
lemma CARD_EQ_BIJECTION: "finite (s::'A => bool) & finite (t::'B => bool) & CARD s = CARD t |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4901 |
==> EX f::'A => 'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4902 |
(ALL x::'A. x : s --> f x : t) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4903 |
(ALL y::'B. y : t --> (EX x::'A. x : s & f x = y)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4904 |
(ALL (x::'A) y::'A. x : s & y : s & f x = f y --> x = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4905 |
by (import hollight CARD_EQ_BIJECTION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4906 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4907 |
lemma CARD_EQ_BIJECTIONS: "finite (s::'A => bool) & finite (t::'B => bool) & CARD s = CARD t |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4908 |
==> EX (f::'A => 'B) g::'B => 'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4909 |
(ALL x::'A. x : s --> f x : t & g (f x) = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4910 |
(ALL y::'B. y : t --> g y : s & f (g y) = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4911 |
by (import hollight CARD_EQ_BIJECTIONS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4912 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4913 |
lemma BIJECTIONS_HAS_SIZE: "(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4914 |
x : (s::'A => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4915 |
(f::'A => 'B) x : (t::'B => bool) & (g::'B => 'A) (f x) = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4916 |
(ALL y::'B. y : t --> g y : s & f (g y) = y) & HAS_SIZE s (n::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4917 |
==> HAS_SIZE t n" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4918 |
by (import hollight BIJECTIONS_HAS_SIZE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4919 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4920 |
lemma BIJECTIONS_HAS_SIZE_EQ: "(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4921 |
x : (s::'A => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4922 |
(f::'A => 'B) x : (t::'B => bool) & (g::'B => 'A) (f x) = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4923 |
(ALL y::'B. y : t --> g y : s & f (g y) = y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4924 |
==> HAS_SIZE s (n::nat) = HAS_SIZE t n" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4925 |
by (import hollight BIJECTIONS_HAS_SIZE_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4926 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4927 |
lemma BIJECTIONS_CARD_EQ: "(finite (s::'A => bool) | finite (t::'B => bool)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4928 |
(ALL x::'A. x : s --> (f::'A => 'B) x : t & (g::'B => 'A) (f x) = x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4929 |
(ALL y::'B. y : t --> g y : s & f (g y) = y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4930 |
==> CARD s = CARD t" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4931 |
by (import hollight BIJECTIONS_CARD_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4932 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4933 |
lemma WF_FINITE: "(ALL x::'A. ~ (u_556::'A => 'A => bool) x x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4934 |
(ALL (x::'A) (y::'A) z::'A. u_556 x y & u_556 y z --> u_556 x z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4935 |
(ALL x::'A. finite {u::'A. EX y::'A. u_556 y x & u = y})
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4936 |
==> wfP u_556" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4937 |
by (import hollight WF_FINITE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4938 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4939 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4940 |
"<=_c" :: "('q_58200 => bool) => ('q_58195 => bool) => bool" ("<='_c")
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4941 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4942 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4943 |
"<=_c_def": "<=_c == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4944 |
%(u::'q_58200 => bool) ua::'q_58195 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4945 |
EX f::'q_58200 => 'q_58195. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4946 |
(ALL x::'q_58200. x : u --> f x : ua) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4947 |
(ALL (x::'q_58200) y::'q_58200. x : u & y : u & f x = f y --> x = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4948 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4949 |
lemma DEF__lessthan__equal__c: "<=_c = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4950 |
(%(u::'q_58200 => bool) ua::'q_58195 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4951 |
EX f::'q_58200 => 'q_58195. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4952 |
(ALL x::'q_58200. x : u --> f x : ua) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4953 |
(ALL (x::'q_58200) y::'q_58200. x : u & y : u & f x = f y --> x = y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4954 |
by (import hollight DEF__lessthan__equal__c) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4955 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4956 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4957 |
"<_c" :: "('q_58212 => bool) => ('q_58213 => bool) => bool" ("<'_c")
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4958 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4959 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4960 |
"<_c_def": "<_c == %(u::'q_58212 => bool) ua::'q_58213 => bool. <=_c u ua & ~ <=_c ua u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4961 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4962 |
lemma DEF__lessthan__c: "<_c = (%(u::'q_58212 => bool) ua::'q_58213 => bool. <=_c u ua & ~ <=_c ua u)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4963 |
by (import hollight DEF__lessthan__c) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4964 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4965 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4966 |
"=_c" :: "('q_58264 => bool) => ('q_58261 => bool) => bool" ("='_c")
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4967 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4968 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4969 |
"=_c_def": "=_c == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4970 |
%(u::'q_58264 => bool) ua::'q_58261 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4971 |
EX f::'q_58264 => 'q_58261. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4972 |
(ALL x::'q_58264. x : u --> f x : ua) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4973 |
(ALL y::'q_58261. y : ua --> (EX! x::'q_58264. x : u & f x = y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4974 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4975 |
lemma DEF__equal__c: "=_c = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4976 |
(%(u::'q_58264 => bool) ua::'q_58261 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4977 |
EX f::'q_58264 => 'q_58261. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4978 |
(ALL x::'q_58264. x : u --> f x : ua) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4979 |
(ALL y::'q_58261. y : ua --> (EX! x::'q_58264. x : u & f x = y)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4980 |
by (import hollight DEF__equal__c) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4981 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4982 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4983 |
">=_c" :: "('q_58273 => bool) => ('q_58272 => bool) => bool" (">='_c")
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4984 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4985 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4986 |
">=_c_def": ">=_c == %(u::'q_58273 => bool) ua::'q_58272 => bool. <=_c ua u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4987 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4988 |
lemma DEF__greaterthan__equal__c: ">=_c = (%(u::'q_58273 => bool) ua::'q_58272 => bool. <=_c ua u)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4989 |
by (import hollight DEF__greaterthan__equal__c) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4990 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4991 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4992 |
">_c" :: "('q_58282 => bool) => ('q_58281 => bool) => bool" (">'_c")
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4993 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4994 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4995 |
">_c_def": ">_c == %(u::'q_58282 => bool) ua::'q_58281 => bool. <_c ua u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4996 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4997 |
lemma DEF__greaterthan__c: ">_c = (%(u::'q_58282 => bool) ua::'q_58281 => bool. <_c ua u)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4998 |
by (import hollight DEF__greaterthan__c) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
4999 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5000 |
lemma LE_C: "<=_c (x::'q_58320 => bool) (xa::'q_58323 => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5001 |
(EX xb::'q_58323 => 'q_58320. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5002 |
ALL xc::'q_58320. xc : x --> (EX x::'q_58323. x : xa & xb x = xc))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5003 |
by (import hollight LE_C) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5004 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5005 |
lemma GE_C: ">=_c (x::'q_58364 => bool) (xa::'q_58361 => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5006 |
(EX f::'q_58364 => 'q_58361. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5007 |
ALL y::'q_58361. y : xa --> (EX xa::'q_58364. xa : x & y = f xa))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5008 |
by (import hollight GE_C) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5009 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5010 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5011 |
COUNTABLE :: "('q_58372 => bool) => bool" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5012 |
"(op ==::(('q_58372::type => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5013 |
=> (('q_58372::type => bool) => bool) => prop)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5014 |
(COUNTABLE::('q_58372::type => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5015 |
((>=_c::(nat => bool) => ('q_58372::type => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5016 |
(UNIV::nat => bool))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5017 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5018 |
lemma DEF_COUNTABLE: "(op =::(('q_58372::type => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5019 |
=> (('q_58372::type => bool) => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5020 |
(COUNTABLE::('q_58372::type => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5021 |
((>=_c::(nat => bool) => ('q_58372::type => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5022 |
(UNIV::nat => bool))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5023 |
by (import hollight DEF_COUNTABLE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5024 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5025 |
lemma NUMSEG_COMBINE_R: "(x::nat) <= (xa::nat) + (1::nat) & xa <= (xb::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5026 |
==> {x..xa} Un {xa + (1::nat)..xb} = {x..xb}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5027 |
by (import hollight NUMSEG_COMBINE_R) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5028 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5029 |
lemma NUMSEG_COMBINE_L: "(x::nat) <= (xa::nat) & xa <= (xb::nat) + (1::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5030 |
==> {x..xa - (1::nat)} Un {xa..xb} = {x..xb}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5031 |
by (import hollight NUMSEG_COMBINE_L) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5032 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5033 |
lemma NUMSEG_LREC: "(x::nat) <= (xa::nat) ==> insert x {x + (1::nat)..xa} = {x..xa}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5034 |
by (import hollight NUMSEG_LREC) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5035 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5036 |
lemma NUMSEG_RREC: "(x::nat) <= (xa::nat) ==> insert xa {x..xa - (1::nat)} = {x..xa}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5037 |
by (import hollight NUMSEG_RREC) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5038 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5039 |
lemma IN_NUMSEG_0: "((x::nat) : {0::nat..xa::nat}) = (x <= xa)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5040 |
by (import hollight IN_NUMSEG_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5041 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5042 |
lemma NUMSEG_EMPTY: "({x::nat..xa::nat} = {}) = (xa < x)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5043 |
by (import hollight NUMSEG_EMPTY) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5044 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5045 |
lemma CARD_NUMSEG_LEMMA: "CARD {m..m + d} = d + 1"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5046 |
by (import hollight CARD_NUMSEG_LEMMA) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5047 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5048 |
lemma CARD_NUMSEG: "CARD {m..n} = n + 1 - m"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5049 |
by (import hollight CARD_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5050 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5051 |
lemma HAS_SIZE_NUMSEG: "HAS_SIZE {x..xa} (xa + 1 - x)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5052 |
by (import hollight HAS_SIZE_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5053 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5054 |
lemma CARD_NUMSEG_1: "CARD {1..x} = x"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5055 |
by (import hollight CARD_NUMSEG_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5056 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5057 |
lemma HAS_SIZE_NUMSEG_1: "HAS_SIZE {1..x} x"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5058 |
by (import hollight HAS_SIZE_NUMSEG_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5059 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5060 |
lemma NUMSEG_CLAUSES: "(ALL m::nat. {m..0::nat} = (if m = (0::nat) then {0::nat} else {})) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5061 |
(ALL (m::nat) n::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5062 |
{m..Suc n} = (if m <= Suc n then insert (Suc n) {m..n} else {m..n}))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5063 |
by (import hollight NUMSEG_CLAUSES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5064 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5065 |
lemma FINITE_INDEX_NUMSEG: "finite (s::'A => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5066 |
(EX f::nat => 'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5067 |
(ALL (i::nat) j::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5068 |
i : {1::nat..CARD s} & j : {1::nat..CARD s} & f i = f j --> i = j) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5069 |
s = f ` {1::nat..CARD s})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5070 |
by (import hollight FINITE_INDEX_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5071 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5072 |
lemma FINITE_INDEX_NUMBERS: "finite (s::'A => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5073 |
(EX (k::nat => bool) f::nat => 'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5074 |
(ALL (i::nat) j::nat. i : k & j : k & f i = f j --> i = j) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5075 |
finite k & s = f ` k)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5076 |
by (import hollight FINITE_INDEX_NUMBERS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5077 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5078 |
lemma DISJOINT_NUMSEG: "({x::nat..xa::nat} Int {xb::nat..xc::nat} = {}) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5079 |
(xa < xb | xc < x | xa < x | xc < xb)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5080 |
by (import hollight DISJOINT_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5081 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5082 |
lemma NUMSEG_ADD_SPLIT: "(x::nat) <= (xa::nat) + (1::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5083 |
==> {x..xa + (xb::nat)} = {x..xa} Un {xa + (1::nat)..xa + xb}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5084 |
by (import hollight NUMSEG_ADD_SPLIT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5085 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5086 |
lemma SUBSET_NUMSEG: "({m::nat..n::nat} <= {p::nat..q::nat}) = (n < m | p <= m & n <= q)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5087 |
by (import hollight SUBSET_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5088 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5089 |
lemma NUMSEG_LE: "{u::nat. EX xa<=x::nat. u = xa} = {0::nat..x}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5090 |
by (import hollight NUMSEG_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5091 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5092 |
lemma NUMSEG_LT: "{u::nat. EX x<n::nat. u = x} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5093 |
(if n = (0::nat) then {} else {0::nat..n - (1::nat)})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5094 |
by (import hollight NUMSEG_LT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5095 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5096 |
lemma TOPOLOGICAL_SORT: "[| (ALL (x::'A) y::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5097 |
(u_556::'A => 'A => bool) x y & u_556 y x --> x = y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5098 |
(ALL (x::'A) (y::'A) z::'A. u_556 x y & u_556 y z --> u_556 x z); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5099 |
HAS_SIZE (s::'A => bool) (n::nat) |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5100 |
==> EX f::nat => 'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5101 |
s = f ` {1::nat..n} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5102 |
(ALL (j::nat) k::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5103 |
j : {1::nat..n} & k : {1::nat..n} & j < k -->
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5104 |
~ u_556 (f k) (f j))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5105 |
by (import hollight TOPOLOGICAL_SORT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5106 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5107 |
lemma FINITE_INTSEG: "(ALL l r. finite {u. EX x. (int_le l x & int_le x r) & u = x}) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5108 |
(ALL l r. finite {u. EX x. (int_le l x & int_lt x r) & u = x}) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5109 |
(ALL l r. finite {u. EX x. (int_lt l x & int_le x r) & u = x}) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5110 |
(ALL l r. finite {u. EX x. (int_lt l x & int_lt x r) & u = x})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5111 |
by (import hollight FINITE_INTSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5112 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5113 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5114 |
neutral :: "('q_59899 => 'q_59899 => 'q_59899) => 'q_59899" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5115 |
"neutral == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5116 |
%u::'q_59899 => 'q_59899 => 'q_59899. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5117 |
SOME x::'q_59899. ALL y::'q_59899. u x y = y & u y x = y" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5118 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5119 |
lemma DEF_neutral: "neutral = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5120 |
(%u::'q_59899 => 'q_59899 => 'q_59899. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5121 |
SOME x::'q_59899. ALL y::'q_59899. u x y = y & u y x = y)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5122 |
by (import hollight DEF_neutral) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5123 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5124 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5125 |
monoidal :: "('A => 'A => 'A) => bool" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5126 |
"monoidal == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5127 |
%u::'A => 'A => 'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5128 |
(ALL (x::'A) y::'A. u x y = u y x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5129 |
(ALL (x::'A) (y::'A) z::'A. u x (u y z) = u (u x y) z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5130 |
(ALL x::'A. u (neutral u) x = x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5131 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5132 |
lemma DEF_monoidal: "monoidal = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5133 |
(%u::'A => 'A => 'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5134 |
(ALL (x::'A) y::'A. u x y = u y x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5135 |
(ALL (x::'A) (y::'A) z::'A. u x (u y z) = u (u x y) z) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5136 |
(ALL x::'A. u (neutral u) x = x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5137 |
by (import hollight DEF_monoidal) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5138 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5139 |
lemma MONOIDAL_AC: "monoidal (x::'q_60055 => 'q_60055 => 'q_60055) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5140 |
==> (ALL a::'q_60055. x (neutral x) a = a) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5141 |
(ALL a::'q_60055. x a (neutral x) = a) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5142 |
(ALL (a::'q_60055) b::'q_60055. x a b = x b a) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5143 |
(ALL (a::'q_60055) (b::'q_60055) c::'q_60055. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5144 |
x (x a b) c = x a (x b c)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5145 |
(ALL (a::'q_60055) (b::'q_60055) c::'q_60055. x a (x b c) = x b (x a c))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5146 |
by (import hollight MONOIDAL_AC) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5147 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5148 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5149 |
support :: "('B => 'B => 'B) => ('A => 'B) => ('A => bool) => 'A => bool" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5150 |
"support == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5151 |
%(u::'B => 'B => 'B) (ua::'A => 'B) ub::'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5152 |
{uc::'A. EX x::'A. (x : ub & ua x ~= neutral u) & uc = x}"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5153 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5154 |
lemma DEF_support: "support = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5155 |
(%(u::'B => 'B => 'B) (ua::'A => 'B) ub::'A => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5156 |
{uc::'A. EX x::'A. (x : ub & ua x ~= neutral u) & uc = x})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5157 |
by (import hollight DEF_support) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5158 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5159 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5160 |
iterate :: "('q_60113 => 'q_60113 => 'q_60113)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5161 |
=> ('A => bool) => ('A => 'q_60113) => 'q_60113" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5162 |
"iterate == |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5163 |
%(u::'q_60113 => 'q_60113 => 'q_60113) (ua::'A => bool) ub::'A => 'q_60113. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5164 |
if finite (support u ub ua) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5165 |
then ITSET (%x::'A. u (ub x)) (support u ub ua) (neutral u) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5166 |
else neutral u" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5167 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5168 |
lemma DEF_iterate: "iterate = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5169 |
(%(u::'q_60113 => 'q_60113 => 'q_60113) (ua::'A => bool) ub::'A => 'q_60113. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5170 |
if finite (support u ub ua) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5171 |
then ITSET (%x::'A. u (ub x)) (support u ub ua) (neutral u) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5172 |
else neutral u)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5173 |
by (import hollight DEF_iterate) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5174 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5175 |
lemma IN_SUPPORT: "((xb::'q_60163) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5176 |
: support (x::'q_60160 => 'q_60160 => 'q_60160) (xa::'q_60163 => 'q_60160) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5177 |
(xc::'q_60163 => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5178 |
(xb : xc & xa xb ~= neutral x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5179 |
by (import hollight IN_SUPPORT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5180 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5181 |
lemma SUPPORT_SUPPORT: "support (x::'q_60185 => 'q_60185 => 'q_60185) (xa::'q_60196 => 'q_60185) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5182 |
(support x xa (xb::'q_60196 => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5183 |
support x xa xb" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5184 |
by (import hollight SUPPORT_SUPPORT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5185 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5186 |
lemma SUPPORT_EMPTY: "(ALL xc::'q_60235. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5187 |
xc : (xb::'q_60235 => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5188 |
(xa::'q_60235 => 'q_60221) xc = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5189 |
neutral (x::'q_60221 => 'q_60221 => 'q_60221)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5190 |
(support x xa xb = {})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5191 |
by (import hollight SUPPORT_EMPTY) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5192 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5193 |
lemma SUPPORT_SUBSET: "support (x::'q_60255 => 'q_60255 => 'q_60255) (xa::'q_60256 => 'q_60255) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5194 |
(xb::'q_60256 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5195 |
<= xb" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5196 |
by (import hollight SUPPORT_SUBSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5197 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5198 |
lemma FINITE_SUPPORT: "finite (s::'q_60273 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5199 |
==> finite |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5200 |
(support (u::'q_60279 => 'q_60279 => 'q_60279) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5201 |
(f::'q_60273 => 'q_60279) s)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5202 |
by (import hollight FINITE_SUPPORT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5203 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5204 |
lemma SUPPORT_CLAUSES: "(ALL x::'q_60297 => 'q_60530. |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5205 |
support (u_4371::'q_60530 => 'q_60530 => 'q_60530) x {} = {}) &
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5206 |
(ALL (x::'q_60345 => 'q_60530) (xa::'q_60345) xb::'q_60345 => bool. |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5207 |
support u_4371 x (insert xa xb) = |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5208 |
(if x xa = neutral u_4371 then support u_4371 x xb |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5209 |
else insert xa (support u_4371 x xb))) & |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5210 |
(ALL (x::'q_60378 => 'q_60530) (xa::'q_60378) xb::'q_60378 => bool. |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5211 |
support u_4371 x (xb - {xa}) = support u_4371 x xb - {xa}) &
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5212 |
(ALL (x::'q_60416 => 'q_60530) (xa::'q_60416 => bool) xb::'q_60416 => bool. |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5213 |
support u_4371 x (xa Un xb) = |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5214 |
support u_4371 x xa Un support u_4371 x xb) & |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5215 |
(ALL (x::'q_60454 => 'q_60530) (xa::'q_60454 => bool) xb::'q_60454 => bool. |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5216 |
support u_4371 x (xa Int xb) = |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5217 |
support u_4371 x xa Int support u_4371 x xb) & |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5218 |
(ALL (x::'q_60492 => 'q_60530) (xa::'q_60492 => bool) xb::'q_60492 => bool. |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5219 |
support u_4371 x (xa - xb) = |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5220 |
support u_4371 x xa - support u_4371 x xb) & |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5221 |
(ALL (x::'q_60529 => 'q_60520) (xa::'q_60520 => 'q_60530) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5222 |
xb::'q_60529 => bool. |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5223 |
support u_4371 xa (x ` xb) = x ` support u_4371 (xa o x) xb)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5224 |
by (import hollight SUPPORT_CLAUSES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5225 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5226 |
lemma SUPPORT_DELTA: "support (x::'q_60556 => 'q_60556 => 'q_60556) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5227 |
(%xa::'q_60584. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5228 |
if xa = (xc::'q_60584) then (xb::'q_60584 => 'q_60556) xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5229 |
else neutral x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5230 |
(xa::'q_60584 => bool) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5231 |
(if xc : xa then support x xb {xc} else {})"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5232 |
by (import hollight SUPPORT_DELTA) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5233 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5234 |
lemma FINITE_SUPPORT_DELTA: "finite |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5235 |
(support (x::'q_60605 => 'q_60605 => 'q_60605) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5236 |
(%xc::'q_60614. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5237 |
if xc = (xb::'q_60614) then (xa::'q_60614 => 'q_60605) xc |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5238 |
else neutral x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5239 |
(s::'q_60614 => bool))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5240 |
by (import hollight FINITE_SUPPORT_DELTA) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5241 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5242 |
lemma ITERATE_SUPPORT: "iterate (x::'q_60630 => 'q_60630 => 'q_60630) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5243 |
(support x (xa::'q_60642 => 'q_60630) (xb::'q_60642 => bool)) xa = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5244 |
iterate x xb xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5245 |
by (import hollight ITERATE_SUPPORT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5246 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5247 |
lemma ITERATE_EXPAND_CASES: "iterate (x::'q_60661 => 'q_60661 => 'q_60661) (xb::'q_60667 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5248 |
(xa::'q_60667 => 'q_60661) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5249 |
(if finite (support x xa xb) then iterate x (support x xa xb) xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5250 |
else neutral x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5251 |
by (import hollight ITERATE_EXPAND_CASES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5252 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5253 |
lemma ITERATE_CLAUSES_GEN: "monoidal (u_4371::'B => 'B => 'B) |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5254 |
==> (ALL f::'A => 'B. iterate u_4371 {} f = neutral u_4371) &
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5255 |
(ALL (f::'A => 'B) (x::'A) s::'A => bool. |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5256 |
monoidal u_4371 & finite (support u_4371 f s) --> |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5257 |
iterate u_4371 (insert x s) f = |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5258 |
(if x : s then iterate u_4371 s f |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5259 |
else u_4371 (f x) (iterate u_4371 s f)))" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5260 |
by (import hollight ITERATE_CLAUSES_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5261 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5262 |
lemma ITERATE_CLAUSES: "monoidal (x::'q_60857 => 'q_60857 => 'q_60857) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5263 |
==> (ALL f::'q_60815 => 'q_60857. iterate x {} f = neutral x) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5264 |
(ALL (f::'q_60859 => 'q_60857) (xa::'q_60859) s::'q_60859 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5265 |
finite s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5266 |
iterate x (insert xa s) f = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5267 |
(if xa : s then iterate x s f else x (f xa) (iterate x s f)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5268 |
by (import hollight ITERATE_CLAUSES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5269 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5270 |
lemma ITERATE_UNION: "[| monoidal (u_4371::'q_60945 => 'q_60945 => 'q_60945); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5271 |
finite (s::'q_60930 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5272 |
finite (x::'q_60930 => bool) & s Int x = {} |]
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5273 |
==> iterate u_4371 (s Un x) (f::'q_60930 => 'q_60945) = |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5274 |
u_4371 (iterate u_4371 s f) (iterate u_4371 x f)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5275 |
by (import hollight ITERATE_UNION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5276 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5277 |
lemma ITERATE_UNION_GEN: "[| monoidal (x::'B => 'B => 'B); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5278 |
finite (support x (xa::'A => 'B) (xb::'A => bool)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5279 |
finite (support x xa (xc::'A => bool)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5280 |
support x xa xb Int support x xa xc = {} |]
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5281 |
==> iterate x (xb Un xc) xa = x (iterate x xb xa) (iterate x xc xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5282 |
by (import hollight ITERATE_UNION_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5283 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5284 |
lemma ITERATE_DIFF: "[| monoidal (u::'q_61087 => 'q_61087 => 'q_61087); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5285 |
finite (s::'q_61083 => bool) & (t::'q_61083 => bool) <= s |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5286 |
==> u (iterate u (s - t) (f::'q_61083 => 'q_61087)) (iterate u t f) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5287 |
iterate u s f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5288 |
by (import hollight ITERATE_DIFF) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5289 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5290 |
lemma ITERATE_DIFF_GEN: "[| monoidal (x::'B => 'B => 'B); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5291 |
finite (support x (xa::'A => 'B) (xb::'A => bool)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5292 |
support x xa (xc::'A => bool) <= support x xa xb |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5293 |
==> x (iterate x (xb - xc) xa) (iterate x xc xa) = iterate x xb xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5294 |
by (import hollight ITERATE_DIFF_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5295 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5296 |
lemma ITERATE_INCL_EXCL: "[| monoidal (u_4371::'q_61316 => 'q_61316 => 'q_61316); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5297 |
finite (s::'q_61298 => bool) & finite (t::'q_61298 => bool) |] |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5298 |
==> u_4371 (iterate u_4371 s (f::'q_61298 => 'q_61316)) |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5299 |
(iterate u_4371 t f) = |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5300 |
u_4371 (iterate u_4371 (s Un t) f) (iterate u_4371 (s Int t) f)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5301 |
by (import hollight ITERATE_INCL_EXCL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5302 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5303 |
lemma ITERATE_CLOSED: "[| monoidal (u_4371::'B => 'B => 'B); |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5304 |
(P::'B => bool) (neutral u_4371) & |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5305 |
(ALL (x::'B) y::'B. P x & P y --> P (u_4371 x y)); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5306 |
!!x::'A. |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5307 |
x : (s::'A => bool) & (f::'A => 'B) x ~= neutral u_4371 ==> P (f x) |] |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5308 |
==> P (iterate u_4371 s f)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5309 |
by (import hollight ITERATE_CLOSED) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5310 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5311 |
lemma ITERATE_RELATED: "[| monoidal (u_4371::'B => 'B => 'B); |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5312 |
(R::'B => 'B => bool) (neutral u_4371) (neutral u_4371) & |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5313 |
(ALL (x1::'B) (y1::'B) (x2::'B) y2::'B. |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5314 |
R x1 x2 & R y1 y2 --> R (u_4371 x1 y1) (u_4371 x2 y2)); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5315 |
finite (x::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5316 |
(ALL xa::'A. xa : x --> R ((f::'A => 'B) xa) ((g::'A => 'B) xa)) |] |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5317 |
==> R (iterate u_4371 x f) (iterate u_4371 x g)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5318 |
by (import hollight ITERATE_RELATED) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5319 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5320 |
lemma ITERATE_EQ_NEUTRAL: "[| monoidal (u_4371::'B => 'B => 'B); |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5321 |
!!x::'A. x : (s::'A => bool) ==> (f::'A => 'B) x = neutral u_4371 |] |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5322 |
==> iterate u_4371 s f = neutral u_4371" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5323 |
by (import hollight ITERATE_EQ_NEUTRAL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5324 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5325 |
lemma ITERATE_SING: "monoidal (x::'B => 'B => 'B) ==> iterate x {xa::'A} (f::'A => 'B) = f xa"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5326 |
by (import hollight ITERATE_SING) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5327 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5328 |
lemma ITERATE_DELETE: "[| monoidal (u::'B => 'B => 'B); finite (s::'A => bool) & (a::'A) : s |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5329 |
==> u ((f::'A => 'B) a) (iterate u (s - {a}) f) = iterate u s f"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5330 |
by (import hollight ITERATE_DELETE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5331 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5332 |
lemma ITERATE_DELTA: "monoidal (u_4371::'q_61672 => 'q_61672 => 'q_61672) |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5333 |
==> iterate u_4371 (xb::'q_61691 => bool) |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5334 |
(%xb::'q_61691. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5335 |
if xb = (xa::'q_61691) then (x::'q_61691 => 'q_61672) xb |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5336 |
else neutral u_4371) = |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5337 |
(if xa : xb then x xa else neutral u_4371)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5338 |
by (import hollight ITERATE_DELTA) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5339 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5340 |
lemma ITERATE_IMAGE: "[| monoidal (u_4371::'C => 'C => 'C); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5341 |
!!(x::'A) y::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5342 |
x : (s::'A => bool) & y : s & (f::'A => 'B) x = f y ==> x = y |] |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5343 |
==> iterate u_4371 (f ` s) (g::'B => 'C) = iterate u_4371 s (g o f)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5344 |
by (import hollight ITERATE_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5345 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5346 |
lemma ITERATE_BIJECTION: "[| monoidal (u_4371::'B => 'B => 'B); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5347 |
(ALL x::'A. x : (s::'A => bool) --> (p::'A => 'A) x : s) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5348 |
(ALL y::'A. y : s --> (EX! x::'A. x : s & p x = y)) |] |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5349 |
==> iterate u_4371 s (f::'A => 'B) = iterate u_4371 s (f o p)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5350 |
by (import hollight ITERATE_BIJECTION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5351 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5352 |
lemma ITERATE_ITERATE_PRODUCT: "[| monoidal (u_4371::'C => 'C => 'C); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5353 |
finite (x::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5354 |
(ALL i::'A. i : x --> finite ((xa::'A => 'B => bool) i)) |] |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5355 |
==> iterate u_4371 x |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5356 |
(%i::'A. iterate u_4371 (xa i) ((xb::'A => 'B => 'C) i)) = |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5357 |
iterate u_4371 |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5358 |
{u::'A * 'B. EX (i::'A) j::'B. (i : x & j : xa i) & u = (i, j)}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5359 |
(SOME f::'A * 'B => 'C. ALL (i::'A) j::'B. f (i, j) = xb i j)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5360 |
by (import hollight ITERATE_ITERATE_PRODUCT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5361 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5362 |
lemma ITERATE_EQ: "[| monoidal (u_4371::'B => 'B => 'B); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5363 |
!!x::'A. x : (s::'A => bool) ==> (f::'A => 'B) x = (g::'A => 'B) x |] |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5364 |
==> iterate u_4371 s f = iterate u_4371 s g" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5365 |
by (import hollight ITERATE_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5366 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5367 |
lemma ITERATE_EQ_GENERAL: "[| monoidal (u_4371::'C => 'C => 'C); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5368 |
(ALL y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5369 |
y : (t::'B => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5370 |
(EX! x::'A. x : (s::'A => bool) & (h::'A => 'B) x = y)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5371 |
(ALL x::'A. x : s --> h x : t & (g::'B => 'C) (h x) = (f::'A => 'C) x) |] |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5372 |
==> iterate u_4371 s f = iterate u_4371 t g" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5373 |
by (import hollight ITERATE_EQ_GENERAL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5374 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5375 |
lemma ITERATE_EQ_GENERAL_INVERSES: "[| monoidal (u_4371::'C => 'C => 'C); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5376 |
(ALL y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5377 |
y : (t::'B => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5378 |
(k::'B => 'A) y : (s::'A => bool) & (h::'A => 'B) (k y) = y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5379 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5380 |
x : s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5381 |
h x : t & k (h x) = x & (g::'B => 'C) (h x) = (f::'A => 'C) x) |] |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5382 |
==> iterate u_4371 s f = iterate u_4371 t g" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5383 |
by (import hollight ITERATE_EQ_GENERAL_INVERSES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5384 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5385 |
lemma ITERATE_INJECTION: "[| monoidal (u_4371::'B => 'B => 'B); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5386 |
finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5387 |
(ALL x::'A. x : s --> (p::'A => 'A) x : s) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5388 |
(ALL (x::'A) y::'A. x : s & y : s & p x = p y --> x = y) |] |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5389 |
==> iterate u_4371 s ((f::'A => 'B) o p) = iterate u_4371 s f" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5390 |
by (import hollight ITERATE_INJECTION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5391 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5392 |
lemma ITERATE_UNION_NONZERO: "[| monoidal (u_4371::'B => 'B => 'B); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5393 |
finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5394 |
finite (t::'A => bool) & |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5395 |
(ALL x::'A. x : s Int t --> (f::'A => 'B) x = neutral u_4371) |] |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5396 |
==> iterate u_4371 (s Un t) f = |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5397 |
u_4371 (iterate u_4371 s f) (iterate u_4371 t f)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5398 |
by (import hollight ITERATE_UNION_NONZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5399 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5400 |
lemma ITERATE_OP: "[| monoidal (u_4371::'q_62649 => 'q_62649 => 'q_62649); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5401 |
finite (s::'q_62648 => bool) |] |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5402 |
==> iterate u_4371 s |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5403 |
(%x::'q_62648. |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5404 |
u_4371 ((f::'q_62648 => 'q_62649) x) |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5405 |
((g::'q_62648 => 'q_62649) x)) = |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5406 |
u_4371 (iterate u_4371 s f) (iterate u_4371 s g)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5407 |
by (import hollight ITERATE_OP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5408 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5409 |
lemma ITERATE_SUPERSET: "[| monoidal (u_4371::'B => 'B => 'B); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5410 |
(u::'A => bool) <= (v::'A => bool) & |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5411 |
(ALL x::'A. x : v & x ~: u --> (f::'A => 'B) x = neutral u_4371) |] |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5412 |
==> iterate u_4371 v f = iterate u_4371 u f" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5413 |
by (import hollight ITERATE_SUPERSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5414 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5415 |
lemma ITERATE_IMAGE_NONZERO: "[| monoidal (u_4371::'C => 'C => 'C); |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5416 |
finite (x::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5417 |
(ALL (xa::'A) y::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5418 |
xa : x & y : x & xa ~= y & (f::'A => 'B) xa = f y --> |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5419 |
(g::'B => 'C) (f xa) = neutral u_4371) |] |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5420 |
==> iterate u_4371 (f ` x) g = iterate u_4371 x (g o f)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5421 |
by (import hollight ITERATE_IMAGE_NONZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5422 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5423 |
lemma ITERATE_CASES: "[| monoidal (u_4371::'B => 'B => 'B); finite (s::'A => bool) |] |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5424 |
==> iterate u_4371 s |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5425 |
(%x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5426 |
if (P::'A => bool) x then (f::'A => 'B) x else (g::'A => 'B) x) = |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5427 |
u_4371 (iterate u_4371 {u::'A. EX x::'A. (x : s & P x) & u = x} f)
|
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5428 |
(iterate u_4371 {u::'A. EX x::'A. (x : s & ~ P x) & u = x} g)"
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5429 |
by (import hollight ITERATE_CASES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5430 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5431 |
lemma ITERATE_OP_GEN: "[| monoidal (u_4371::'B => 'B => 'B); |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5432 |
finite (support u_4371 (f::'A => 'B) (s::'A => bool)) & |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5433 |
finite (support u_4371 (g::'A => 'B) s) |] |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5434 |
==> iterate u_4371 s (%x::'A. u_4371 (f x) (g x)) = |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5435 |
u_4371 (iterate u_4371 s f) (iterate u_4371 s g)" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5436 |
by (import hollight ITERATE_OP_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5437 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5438 |
lemma ITERATE_CLAUSES_NUMSEG: "monoidal (x::'q_63246 => 'q_63246 => 'q_63246) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5439 |
==> (ALL xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5440 |
iterate x {xa..0::nat} (f::nat => 'q_63246) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5441 |
(if xa = (0::nat) then f (0::nat) else neutral x)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5442 |
(ALL (xa::nat) xb::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5443 |
iterate x {xa..Suc xb} f =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5444 |
(if xa <= Suc xb then x (iterate x {xa..xb} f) (f (Suc xb))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5445 |
else iterate x {xa..xb} f))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5446 |
by (import hollight ITERATE_CLAUSES_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5447 |
|
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5448 |
lemma ITERATE_PAIR: "monoidal (u_4371::'q_63421 => 'q_63421 => 'q_63421) |
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5449 |
==> iterate u_4371 {(2::nat) * (m::nat)..(2::nat) * (n::nat) + (1::nat)}
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5450 |
(f::nat => 'q_63421) = |
|
43843
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5451 |
iterate u_4371 {m..n}
|
|
16f2fd9103bd
HOL/Import: Fix errors with _mk_list
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
43786
diff
changeset
|
5452 |
(%i::nat. u_4371 (f ((2::nat) * i)) (f ((2::nat) * i + (1::nat))))" |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5453 |
by (import hollight ITERATE_PAIR) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5454 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5455 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5456 |
nsum :: "('q_63439 => bool) => ('q_63439 => nat) => nat" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5457 |
"(op ==::(('q_63439::type => bool) => ('q_63439::type => nat) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5458 |
=> (('q_63439::type => bool) => ('q_63439::type => nat) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5459 |
=> prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5460 |
(nsum::('q_63439::type => bool) => ('q_63439::type => nat) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5461 |
((iterate::(nat => nat => nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5462 |
=> ('q_63439::type => bool) => ('q_63439::type => nat) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5463 |
(op +::nat => nat => nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5464 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5465 |
lemma DEF_nsum: "(op =::(('q_63439::type => bool) => ('q_63439::type => nat) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5466 |
=> (('q_63439::type => bool) => ('q_63439::type => nat) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5467 |
=> bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5468 |
(nsum::('q_63439::type => bool) => ('q_63439::type => nat) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5469 |
((iterate::(nat => nat => nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5470 |
=> ('q_63439::type => bool) => ('q_63439::type => nat) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5471 |
(op +::nat => nat => nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5472 |
by (import hollight DEF_nsum) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5473 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5474 |
lemma NEUTRAL_ADD: "neutral op + = (0::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5475 |
by (import hollight NEUTRAL_ADD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5476 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5477 |
lemma NEUTRAL_MUL: "neutral op * = (1::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5478 |
by (import hollight NEUTRAL_MUL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5479 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5480 |
lemma MONOIDAL_ADD: "(monoidal::(nat => nat => nat) => bool) (op +::nat => nat => nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5481 |
by (import hollight MONOIDAL_ADD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5482 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5483 |
lemma MONOIDAL_MUL: "(monoidal::(nat => nat => nat) => bool) (op *::nat => nat => nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5484 |
by (import hollight MONOIDAL_MUL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5485 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5486 |
lemma NSUM_CLAUSES: "(ALL x::'q_63477 => nat. nsum {} x = (0::nat)) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5487 |
(ALL (x::'q_63516) (xa::'q_63516 => nat) xb::'q_63516 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5488 |
finite xb --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5489 |
nsum (insert x xb) xa = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5490 |
(if x : xb then nsum xb xa else xa x + nsum xb xa))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5491 |
by (import hollight NSUM_CLAUSES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5492 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5493 |
lemma NSUM_UNION: "finite (xa::'q_63542 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5494 |
finite (xb::'q_63542 => bool) & xa Int xb = {}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5495 |
==> nsum (xa Un xb) (x::'q_63542 => nat) = nsum xa x + nsum xb x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5496 |
by (import hollight NSUM_UNION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5497 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5498 |
lemma NSUM_DIFF: "finite (s::'q_63597 => bool) & (t::'q_63597 => bool) <= s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5499 |
==> nsum (s - t) (f::'q_63597 => nat) = nsum s f - nsum t f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5500 |
by (import hollight NSUM_DIFF) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5501 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5502 |
lemma NSUM_INCL_EXCL: "finite (x::'A => bool) & finite (xa::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5503 |
==> nsum x (xb::'A => nat) + nsum xa xb = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5504 |
nsum (x Un xa) xb + nsum (x Int xa) xb" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5505 |
by (import hollight NSUM_INCL_EXCL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5506 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5507 |
lemma NSUM_SUPPORT: "nsum (support op + (x::'q_63686 => nat) (xa::'q_63686 => bool)) x = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5508 |
nsum xa x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5509 |
by (import hollight NSUM_SUPPORT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5510 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5511 |
lemma NSUM_ADD: "finite (xb::'q_63720 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5512 |
==> nsum xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5513 |
(%xb::'q_63720. (x::'q_63720 => nat) xb + (xa::'q_63720 => nat) xb) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5514 |
nsum xb x + nsum xb xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5515 |
by (import hollight NSUM_ADD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5516 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5517 |
lemma NSUM_ADD_GEN: "finite |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5518 |
{xa::'q_63807.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5519 |
EX xc::'q_63807. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5520 |
(xc : (xb::'q_63807 => bool) & (x::'q_63807 => nat) xc ~= (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5521 |
xa = xc} & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5522 |
finite |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5523 |
{x::'q_63807.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5524 |
EX xc::'q_63807. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5525 |
(xc : xb & (xa::'q_63807 => nat) xc ~= (0::nat)) & x = xc} |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5526 |
==> nsum xb (%xb::'q_63807. x xb + xa xb) = nsum xb x + nsum xb xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5527 |
by (import hollight NSUM_ADD_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5528 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5529 |
lemma NSUM_EQ_0: "(!!xb::'A. xb : (xa::'A => bool) ==> (x::'A => nat) xb = (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5530 |
==> nsum xa x = (0::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5531 |
by (import hollight NSUM_EQ_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5532 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5533 |
lemma NSUM_0: "nsum (x::'A => bool) (%n::'A. 0::nat) = (0::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5534 |
by (import hollight NSUM_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5535 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5536 |
lemma NSUM_LMUL: "nsum (s::'A => bool) (%x::'A. (c::nat) * (f::'A => nat) x) = c * nsum s f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5537 |
by (import hollight NSUM_LMUL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5538 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5539 |
lemma NSUM_RMUL: "nsum (xb::'A => bool) (%xb::'A. (x::'A => nat) xb * (xa::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5540 |
nsum xb x * xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5541 |
by (import hollight NSUM_RMUL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5542 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5543 |
lemma NSUM_LE: "finite (xb::'q_63997 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5544 |
(ALL xc::'q_63997. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5545 |
xc : xb --> (x::'q_63997 => nat) xc <= (xa::'q_63997 => nat) xc) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5546 |
==> nsum xb x <= nsum xb xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5547 |
by (import hollight NSUM_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5548 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5549 |
lemma NSUM_LT: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5550 |
(ALL x::'A. x : s --> (f::'A => nat) x <= (g::'A => nat) x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5551 |
(EX x::'A. x : s & f x < g x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5552 |
==> nsum s f < nsum s g" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5553 |
by (import hollight NSUM_LT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5554 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5555 |
lemma NSUM_LT_ALL: "finite (s::'q_64119 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5556 |
s ~= {} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5557 |
(ALL x::'q_64119. x : s --> (f::'q_64119 => nat) x < (g::'q_64119 => nat) x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5558 |
==> nsum s f < nsum s g" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5559 |
by (import hollight NSUM_LT_ALL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5560 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5561 |
lemma NSUM_EQ: "(!!xc::'q_64157. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5562 |
xc : (xb::'q_64157 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5563 |
==> (x::'q_64157 => nat) xc = (xa::'q_64157 => nat) xc) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5564 |
==> nsum xb x = nsum xb xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5565 |
by (import hollight NSUM_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5566 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5567 |
lemma NSUM_CONST: "finite (s::'q_64187 => bool) ==> nsum s (%n::'q_64187. c::nat) = CARD s * c" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5568 |
by (import hollight NSUM_CONST) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5569 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5570 |
lemma NSUM_POS_BOUND: "[| finite (x::'A => bool) & nsum x (f::'A => nat) <= (b::nat); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5571 |
(xa::'A) : x |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5572 |
==> f xa <= b" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5573 |
by (import hollight NSUM_POS_BOUND) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5574 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5575 |
lemma NSUM_EQ_0_IFF: "finite (s::'q_64296 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5576 |
==> (nsum s (f::'q_64296 => nat) = (0::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5577 |
(ALL x::'q_64296. x : s --> f x = (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5578 |
by (import hollight NSUM_EQ_0_IFF) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5579 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5580 |
lemma NSUM_DELETE: "finite (xa::'q_64325 => bool) & (xb::'q_64325) : xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5581 |
==> (x::'q_64325 => nat) xb + nsum (xa - {xb}) x = nsum xa x"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5582 |
by (import hollight NSUM_DELETE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5583 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5584 |
lemma NSUM_SING: "nsum {xa::'q_64354} (x::'q_64354 => nat) = x xa"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5585 |
by (import hollight NSUM_SING) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5586 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5587 |
lemma NSUM_DELTA: "nsum (x::'A => bool) (%x::'A. if x = (xa::'A) then b::nat else (0::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5588 |
(if xa : x then b else (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5589 |
by (import hollight NSUM_DELTA) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5590 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5591 |
lemma NSUM_SWAP: "finite (x::'A => bool) & finite (xa::'B => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5592 |
==> nsum x (%i::'A. nsum xa ((f::'A => 'B => nat) i)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5593 |
nsum xa (%j::'B. nsum x (%i::'A. f i j))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5594 |
by (import hollight NSUM_SWAP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5595 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5596 |
lemma NSUM_IMAGE: "(!!(xa::'q_64490) y::'q_64490. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5597 |
xa : (xb::'q_64490 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5598 |
y : xb & (x::'q_64490 => 'q_64466) xa = x y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5599 |
==> xa = y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5600 |
==> nsum (x ` xb) (xa::'q_64466 => nat) = nsum xb (xa o x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5601 |
by (import hollight NSUM_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5602 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5603 |
lemma NSUM_SUPERSET: "(xa::'A => bool) <= (xb::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5604 |
(ALL xc::'A. xc : xb & xc ~: xa --> (x::'A => nat) xc = (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5605 |
==> nsum xb x = nsum xa x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5606 |
by (import hollight NSUM_SUPERSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5607 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5608 |
lemma NSUM_UNION_RZERO: "finite (u::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5609 |
(ALL x::'A. x : (v::'A => bool) & x ~: u --> (f::'A => nat) x = (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5610 |
==> nsum (u Un v) f = nsum u f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5611 |
by (import hollight NSUM_UNION_RZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5612 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5613 |
lemma NSUM_UNION_LZERO: "finite (v::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5614 |
(ALL x::'A. x : (u::'A => bool) & x ~: v --> (f::'A => nat) x = (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5615 |
==> nsum (u Un v) f = nsum v f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5616 |
by (import hollight NSUM_UNION_LZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5617 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5618 |
lemma NSUM_RESTRICT: "finite (s::'q_64681 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5619 |
==> nsum s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5620 |
(%x::'q_64681. if x : s then (f::'q_64681 => nat) x else (0::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5621 |
nsum s f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5622 |
by (import hollight NSUM_RESTRICT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5623 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5624 |
lemma NSUM_BOUND: "finite (x::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5625 |
(ALL xc::'A. xc : x --> (xa::'A => nat) xc <= (xb::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5626 |
==> nsum x xa <= CARD x * xb" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5627 |
by (import hollight NSUM_BOUND) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5628 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5629 |
lemma NSUM_BOUND_GEN: "finite (x::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5630 |
x ~= {} & (ALL xa::'A. xa : x --> (f::'A => nat) xa <= (b::nat) div CARD x)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5631 |
==> nsum x f <= b" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5632 |
by (import hollight NSUM_BOUND_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5633 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5634 |
lemma NSUM_BOUND_LT: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5635 |
(ALL x::'A. x : s --> (f::'A => nat) x <= (b::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5636 |
(EX x::'A. x : s & f x < b) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5637 |
==> nsum s f < CARD s * b" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5638 |
by (import hollight NSUM_BOUND_LT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5639 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5640 |
lemma NSUM_BOUND_LT_ALL: "finite (s::'q_64899 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5641 |
s ~= {} & (ALL x::'q_64899. x : s --> (f::'q_64899 => nat) x < (b::nat))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5642 |
==> nsum s f < CARD s * b" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5643 |
by (import hollight NSUM_BOUND_LT_ALL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5644 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5645 |
lemma NSUM_BOUND_LT_GEN: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5646 |
s ~= {} & (ALL x::'A. x : s --> (f::'A => nat) x < (b::nat) div CARD s)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5647 |
==> nsum s f < b" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5648 |
by (import hollight NSUM_BOUND_LT_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5649 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5650 |
lemma NSUM_UNION_EQ: "finite (u::'q_65000 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5651 |
(s::'q_65000 => bool) Int (t::'q_65000 => bool) = {} & s Un t = u
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5652 |
==> nsum s (f::'q_65000 => nat) + nsum t f = nsum u f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5653 |
by (import hollight NSUM_UNION_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5654 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5655 |
lemma NSUM_EQ_SUPERSET: "finite (t::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5656 |
t <= (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5657 |
(ALL x::'A. x : t --> (f::'A => nat) x = (g::'A => nat) x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5658 |
(ALL x::'A. x : s & x ~: t --> f x = (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5659 |
==> nsum s f = nsum t g" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5660 |
by (import hollight NSUM_EQ_SUPERSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5661 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5662 |
lemma NSUM_RESTRICT_SET: "nsum |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5663 |
{u::'A. EX xb::'A. (xb : (xa::'A => bool) & (x::'A => bool) xb) & u = xb}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5664 |
(xb::'A => nat) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5665 |
nsum xa (%xa::'A. if x xa then xb xa else (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5666 |
by (import hollight NSUM_RESTRICT_SET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5667 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5668 |
lemma NSUM_NSUM_RESTRICT: "finite (s::'q_65257 => bool) & finite (t::'q_65256 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5669 |
==> nsum s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5670 |
(%x::'q_65257. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5671 |
nsum |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5672 |
{u::'q_65256.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5673 |
EX y::'q_65256. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5674 |
(y : t & (R::'q_65257 => 'q_65256 => bool) x y) & u = y} |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5675 |
((f::'q_65257 => 'q_65256 => nat) x)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5676 |
nsum t |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5677 |
(%y::'q_65256. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5678 |
nsum {u::'q_65257. EX x::'q_65257. (x : s & R x y) & u = x}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5679 |
(%x::'q_65257. f x y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5680 |
by (import hollight NSUM_NSUM_RESTRICT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5681 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5682 |
lemma CARD_EQ_NSUM: "finite (x::'q_65276 => bool) ==> CARD x = nsum x (%x::'q_65276. 1::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5683 |
by (import hollight CARD_EQ_NSUM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5684 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5685 |
lemma NSUM_MULTICOUNT_GEN: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5686 |
finite (t::'B => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5687 |
(ALL j::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5688 |
j : t --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5689 |
CARD {u::'A. EX i::'A. (i : s & (R::'A => 'B => bool) i j) & u = i} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5690 |
(k::'B => nat) j) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5691 |
==> nsum s (%i::'A. CARD {u::'B. EX j::'B. (j : t & R i j) & u = j}) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5692 |
nsum t k" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5693 |
by (import hollight NSUM_MULTICOUNT_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5694 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5695 |
lemma NSUM_MULTICOUNT: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5696 |
finite (t::'B => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5697 |
(ALL j::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5698 |
j : t --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5699 |
CARD {u::'A. EX i::'A. (i : s & (R::'A => 'B => bool) i j) & u = i} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5700 |
(k::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5701 |
==> nsum s (%i::'A. CARD {u::'B. EX j::'B. (j : t & R i j) & u = j}) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5702 |
k * CARD t" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5703 |
by (import hollight NSUM_MULTICOUNT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5704 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5705 |
lemma NSUM_IMAGE_GEN: "finite (s::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5706 |
==> nsum s (g::'A => nat) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5707 |
nsum ((f::'A => 'B) ` s) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5708 |
(%y::'B. nsum {u::'A. EX x::'A. (x : s & f x = y) & u = x} g)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5709 |
by (import hollight NSUM_IMAGE_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5710 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5711 |
lemma NSUM_GROUP: "finite (s::'A => bool) & (f::'A => 'B) ` s <= (t::'B => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5712 |
==> nsum t |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5713 |
(%y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5714 |
nsum {u::'A. EX x::'A. (x : s & f x = y) & u = x} (g::'A => nat)) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5715 |
nsum s g" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5716 |
by (import hollight NSUM_GROUP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5717 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5718 |
lemma NSUM_SUBSET: "finite (u::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5719 |
finite (v::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5720 |
(ALL x::'A. x : u - v --> (f::'A => nat) x = (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5721 |
==> nsum u f <= nsum v f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5722 |
by (import hollight NSUM_SUBSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5723 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5724 |
lemma NSUM_SUBSET_SIMPLE: "finite (v::'q_65804 => bool) & (u::'q_65804 => bool) <= v |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5725 |
==> nsum u (f::'q_65804 => nat) <= nsum v f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5726 |
by (import hollight NSUM_SUBSET_SIMPLE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5727 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5728 |
lemma NSUM_IMAGE_NONZERO: "finite (xb::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5729 |
(ALL (xc::'A) xd::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5730 |
xc : xb & xd : xb & xc ~= xd & (xa::'A => 'B) xc = xa xd --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5731 |
(x::'B => nat) (xa xc) = (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5732 |
==> nsum (xa ` xb) x = nsum xb (x o xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5733 |
by (import hollight NSUM_IMAGE_NONZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5734 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5735 |
lemma NSUM_BIJECTION: "(ALL x::'A. x : (xb::'A => bool) --> (xa::'A => 'A) x : xb) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5736 |
(ALL y::'A. y : xb --> (EX! x::'A. x : xb & xa x = y)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5737 |
==> nsum xb (x::'A => nat) = nsum xb (x o xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5738 |
by (import hollight NSUM_BIJECTION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5739 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5740 |
lemma NSUM_NSUM_PRODUCT: "finite (x::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5741 |
(ALL i::'A. i : x --> finite ((xa::'A => 'B => bool) i)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5742 |
==> nsum x (%x::'A. nsum (xa x) ((xb::'A => 'B => nat) x)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5743 |
nsum {u::'A * 'B. EX (i::'A) j::'B. (i : x & j : xa i) & u = (i, j)}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5744 |
(SOME f::'A * 'B => nat. ALL (i::'A) j::'B. f (i, j) = xb i j)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5745 |
by (import hollight NSUM_NSUM_PRODUCT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5746 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5747 |
lemma NSUM_EQ_GENERAL: "(ALL y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5748 |
y : (xa::'B => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5749 |
(EX! xa::'A. xa : (x::'A => bool) & (xd::'A => 'B) xa = y)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5750 |
(ALL xe::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5751 |
xe : x --> xd xe : xa & (xc::'B => nat) (xd xe) = (xb::'A => nat) xe) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5752 |
==> nsum x xb = nsum xa xc" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5753 |
by (import hollight NSUM_EQ_GENERAL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5754 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5755 |
lemma NSUM_EQ_GENERAL_INVERSES: "(ALL y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5756 |
y : (xa::'B => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5757 |
(xe::'B => 'A) y : (x::'A => bool) & (xd::'A => 'B) (xe y) = y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5758 |
(ALL xf::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5759 |
xf : x --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5760 |
xd xf : xa & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5761 |
xe (xd xf) = xf & (xc::'B => nat) (xd xf) = (xb::'A => nat) xf) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5762 |
==> nsum x xb = nsum xa xc" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5763 |
by (import hollight NSUM_EQ_GENERAL_INVERSES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5764 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5765 |
lemma NSUM_INJECTION: "finite (xb::'q_66274 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5766 |
(ALL x::'q_66274. x : xb --> (xa::'q_66274 => 'q_66274) x : xb) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5767 |
(ALL (x::'q_66274) y::'q_66274. x : xb & y : xb & xa x = xa y --> x = y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5768 |
==> nsum xb ((x::'q_66274 => nat) o xa) = nsum xb x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5769 |
by (import hollight NSUM_INJECTION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5770 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5771 |
lemma NSUM_UNION_NONZERO: "finite (xa::'q_66317 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5772 |
finite (xb::'q_66317 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5773 |
(ALL xc::'q_66317. xc : xa Int xb --> (x::'q_66317 => nat) xc = (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5774 |
==> nsum (xa Un xb) x = nsum xa x + nsum xb x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5775 |
by (import hollight NSUM_UNION_NONZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5776 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5777 |
lemma NSUM_UNIONS_NONZERO: "finite (x::('A => bool) => bool) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5778 |
(ALL t::'A => bool. t : x --> finite t) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5779 |
(ALL (t1::'A => bool) (t2::'A => bool) xa::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5780 |
t1 : x & t2 : x & t1 ~= t2 & xa : t1 & xa : t2 --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5781 |
(f::'A => nat) xa = (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5782 |
==> nsum (Union x) f = nsum x (%t::'A => bool. nsum t f)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5783 |
by (import hollight NSUM_UNIONS_NONZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5784 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5785 |
lemma NSUM_CASES: "finite (x::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5786 |
==> nsum x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5787 |
(%x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5788 |
if (xa::'A => bool) x then (xb::'A => nat) x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5789 |
else (xc::'A => nat) x) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5790 |
nsum {u::'A. EX xb::'A. (xb : x & xa xb) & u = xb} xb +
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5791 |
nsum {u::'A. EX xb::'A. (xb : x & ~ xa xb) & u = xb} xc"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5792 |
by (import hollight NSUM_CASES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5793 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5794 |
lemma NSUM_CLOSED: "(P::nat => bool) (0::nat) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5795 |
(ALL (x::nat) y::nat. P x & P y --> P (x + y)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5796 |
(ALL a::'A. a : (s::'A => bool) --> P ((f::'A => nat) a)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5797 |
==> P (nsum s f)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5798 |
by (import hollight NSUM_CLOSED) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5799 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5800 |
lemma NSUM_ADD_NUMSEG: "nsum {xb::nat..xc::nat} (%i::nat. (x::nat => nat) i + (xa::nat => nat) i) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5801 |
nsum {xb..xc} x + nsum {xb..xc} xa"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5802 |
by (import hollight NSUM_ADD_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5803 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5804 |
lemma NSUM_LE_NUMSEG: "(!!i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5805 |
(xb::nat) <= i & i <= (xc::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5806 |
==> (x::nat => nat) i <= (xa::nat => nat) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5807 |
==> nsum {xb..xc} x <= nsum {xb..xc} xa"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5808 |
by (import hollight NSUM_LE_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5809 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5810 |
lemma NSUM_EQ_NUMSEG: "(!!i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5811 |
(m::nat) <= i & i <= (n::nat) ==> (f::nat => nat) i = (g::nat => nat) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5812 |
==> nsum {m..n} f = nsum {m..n} g"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5813 |
by (import hollight NSUM_EQ_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5814 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5815 |
lemma NSUM_CONST_NUMSEG: "nsum {xa..xb} (%n. x) = (xb + 1 - xa) * x"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5816 |
by (import hollight NSUM_CONST_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5817 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5818 |
lemma NSUM_EQ_0_NUMSEG: "(!!i::nat. (m::nat) <= i & i <= (n::nat) ==> (x::nat => nat) i = (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5819 |
==> nsum {m..n} x = (0::nat)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5820 |
by (import hollight NSUM_EQ_0_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5821 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5822 |
lemma NSUM_EQ_0_IFF_NUMSEG: "(nsum {xa::nat..xb::nat} (x::nat => nat) = (0::nat)) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5823 |
(ALL i::nat. xa <= i & i <= xb --> x i = (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5824 |
by (import hollight NSUM_EQ_0_IFF_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5825 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5826 |
lemma NSUM_TRIV_NUMSEG: "(n::nat) < (m::nat) ==> nsum {m..n} (f::nat => nat) = (0::nat)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5827 |
by (import hollight NSUM_TRIV_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5828 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5829 |
lemma NSUM_SING_NUMSEG: "nsum {xa::nat..xa} (x::nat => nat) = x xa"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5830 |
by (import hollight NSUM_SING_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5831 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5832 |
lemma NSUM_CLAUSES_NUMSEG: "(ALL m. nsum {m..0} f = (if m = 0 then f 0 else 0)) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5833 |
(ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5834 |
nsum {m..Suc n} f =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5835 |
(if m <= Suc n then nsum {m..n} f + f (Suc n) else nsum {m..n} f))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5836 |
by (import hollight NSUM_CLAUSES_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5837 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5838 |
lemma NSUM_SWAP_NUMSEG: "nsum {a::nat..b::nat}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5839 |
(%i::nat. nsum {c::nat..d::nat} ((f::nat => nat => nat) i)) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5840 |
nsum {c..d} (%j::nat. nsum {a..b} (%i::nat. f i j))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5841 |
by (import hollight NSUM_SWAP_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5842 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5843 |
lemma NSUM_ADD_SPLIT: "(xa::nat) <= (xb::nat) + (1::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5844 |
==> nsum {xa..xb + (xc::nat)} (x::nat => nat) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5845 |
nsum {xa..xb} x + nsum {xb + (1::nat)..xb + xc} x"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5846 |
by (import hollight NSUM_ADD_SPLIT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5847 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5848 |
lemma NSUM_OFFSET: "nsum {(xb::nat) + (x::nat)..(xc::nat) + x} (xa::nat => nat) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5849 |
nsum {xb..xc} (%i::nat. xa (i + x))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5850 |
by (import hollight NSUM_OFFSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5851 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5852 |
lemma NSUM_OFFSET_0: "(xa::nat) <= (xb::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5853 |
==> nsum {xa..xb} (x::nat => nat) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5854 |
nsum {0::nat..xb - xa} (%i::nat. x (i + xa))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5855 |
by (import hollight NSUM_OFFSET_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5856 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5857 |
lemma NSUM_CLAUSES_LEFT: "(xa::nat) <= (xb::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5858 |
==> nsum {xa..xb} (x::nat => nat) = x xa + nsum {xa + (1::nat)..xb} x"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5859 |
by (import hollight NSUM_CLAUSES_LEFT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5860 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5861 |
lemma NSUM_CLAUSES_RIGHT: "(0::nat) < (n::nat) & (m::nat) <= n |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5862 |
==> nsum {m..n} (f::nat => nat) = nsum {m..n - (1::nat)} f + f n"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5863 |
by (import hollight NSUM_CLAUSES_RIGHT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5864 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5865 |
lemma NSUM_PAIR: "nsum {(2::nat) * (m::nat)..(2::nat) * (n::nat) + (1::nat)} (f::nat => nat) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5866 |
nsum {m..n} (%i::nat. f ((2::nat) * i) + f ((2::nat) * i + (1::nat)))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5867 |
by (import hollight NSUM_PAIR) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5868 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5869 |
lemma CARD_UNIONS: "finite (x::('A => bool) => bool) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5870 |
(ALL t::'A => bool. t : x --> finite t) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5871 |
(ALL (t::'A => bool) u::'A => bool. t : x & u : x & t ~= u --> t Int u = {})
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5872 |
==> CARD (Union x) = nsum x CARD" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5873 |
by (import hollight CARD_UNIONS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5874 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5875 |
consts |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5876 |
sum :: "('q_67488 => bool) => ('q_67488 => hollight.real) => hollight.real"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5877 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5878 |
defs |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5879 |
sum_def: "(op ==::(('q_67488::type => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5880 |
=> ('q_67488::type => hollight.real) => hollight.real)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5881 |
=> (('q_67488::type => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5882 |
=> ('q_67488::type => hollight.real) => hollight.real)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5883 |
=> prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5884 |
(hollight.sum::('q_67488::type => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5885 |
=> ('q_67488::type => hollight.real) => hollight.real)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5886 |
((iterate::(hollight.real => hollight.real => hollight.real) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5887 |
=> ('q_67488::type => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5888 |
=> ('q_67488::type => hollight.real) => hollight.real)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5889 |
(real_add::hollight.real => hollight.real => hollight.real))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5890 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5891 |
lemma DEF_sum: "(op =::(('q_67488::type => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5892 |
=> ('q_67488::type => hollight.real) => hollight.real)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5893 |
=> (('q_67488::type => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5894 |
=> ('q_67488::type => hollight.real) => hollight.real)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5895 |
=> bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5896 |
(hollight.sum::('q_67488::type => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5897 |
=> ('q_67488::type => hollight.real) => hollight.real)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5898 |
((iterate::(hollight.real => hollight.real => hollight.real) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5899 |
=> ('q_67488::type => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5900 |
=> ('q_67488::type => hollight.real) => hollight.real)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5901 |
(real_add::hollight.real => hollight.real => hollight.real))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5902 |
by (import hollight DEF_sum) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5903 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5904 |
lemma NEUTRAL_REAL_ADD: "neutral real_add = real_of_num 0" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5905 |
by (import hollight NEUTRAL_REAL_ADD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5906 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5907 |
lemma NEUTRAL_REAL_MUL: "neutral real_mul = real_of_num 1" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5908 |
by (import hollight NEUTRAL_REAL_MUL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5909 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5910 |
lemma MONOIDAL_REAL_ADD: "monoidal real_add" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5911 |
by (import hollight MONOIDAL_REAL_ADD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5912 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5913 |
lemma MONOIDAL_REAL_MUL: "monoidal real_mul" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5914 |
by (import hollight MONOIDAL_REAL_MUL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5915 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5916 |
lemma SUM_CLAUSES: "(ALL x::'q_67530 => hollight.real. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5917 |
hollight.sum {} x = real_of_num (0::nat)) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5918 |
(ALL (x::'q_67571) (xa::'q_67571 => hollight.real) xb::'q_67571 => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5919 |
finite xb --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5920 |
hollight.sum (insert x xb) xa = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5921 |
(if x : xb then hollight.sum xb xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5922 |
else real_add (xa x) (hollight.sum xb xa)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5923 |
by (import hollight SUM_CLAUSES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5924 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5925 |
lemma SUM_UNION: "finite (xa::'q_67597 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5926 |
finite (xb::'q_67597 => bool) & xa Int xb = {}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5927 |
==> hollight.sum (xa Un xb) (x::'q_67597 => hollight.real) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5928 |
real_add (hollight.sum xa x) (hollight.sum xb x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5929 |
by (import hollight SUM_UNION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5930 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5931 |
lemma SUM_DIFF: "finite (xa::'q_67637 => bool) & (xb::'q_67637 => bool) <= xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5932 |
==> hollight.sum (xa - xb) (x::'q_67637 => hollight.real) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5933 |
real_sub (hollight.sum xa x) (hollight.sum xb x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5934 |
by (import hollight SUM_DIFF) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5935 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5936 |
lemma SUM_INCL_EXCL: "finite (x::'A => bool) & finite (xa::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5937 |
==> real_add (hollight.sum x (xb::'A => hollight.real)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5938 |
(hollight.sum xa xb) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5939 |
real_add (hollight.sum (x Un xa) xb) (hollight.sum (x Int xa) xb)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5940 |
by (import hollight SUM_INCL_EXCL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5941 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5942 |
lemma SUM_SUPPORT: "hollight.sum |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5943 |
(support real_add (x::'q_67726 => hollight.real) (xa::'q_67726 => bool)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5944 |
x = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5945 |
hollight.sum xa x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5946 |
by (import hollight SUM_SUPPORT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5947 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5948 |
lemma SUM_ADD: "finite (xb::'q_67760 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5949 |
==> hollight.sum xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5950 |
(%xb::'q_67760. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5951 |
real_add ((x::'q_67760 => hollight.real) xb) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5952 |
((xa::'q_67760 => hollight.real) xb)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5953 |
real_add (hollight.sum xb x) (hollight.sum xb xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5954 |
by (import hollight SUM_ADD) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5955 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5956 |
lemma SUM_ADD_GEN: "finite |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5957 |
{xa::'q_67851.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5958 |
EX xc::'q_67851. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5959 |
(xc : (xb::'q_67851 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5960 |
(x::'q_67851 => hollight.real) xc ~= real_of_num (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5961 |
xa = xc} & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5962 |
finite |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5963 |
{x::'q_67851.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5964 |
EX xc::'q_67851. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5965 |
(xc : xb & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5966 |
(xa::'q_67851 => hollight.real) xc ~= real_of_num (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5967 |
x = xc} |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5968 |
==> hollight.sum xb (%xb::'q_67851. real_add (x xb) (xa xb)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5969 |
real_add (hollight.sum xb x) (hollight.sum xb xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5970 |
by (import hollight SUM_ADD_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5971 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5972 |
lemma SUM_EQ_0: "(!!xb::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5973 |
xb : (xa::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5974 |
==> (x::'A => hollight.real) xb = real_of_num (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5975 |
==> hollight.sum xa x = real_of_num (0::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5976 |
by (import hollight SUM_EQ_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5977 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5978 |
lemma SUM_0: "hollight.sum (x::'A => bool) (%n::'A. real_of_num (0::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5979 |
real_of_num (0::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5980 |
by (import hollight SUM_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5981 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5982 |
lemma SUM_LMUL: "hollight.sum (s::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5983 |
(%x::'A. real_mul (c::hollight.real) ((f::'A => hollight.real) x)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5984 |
real_mul c (hollight.sum s f)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5985 |
by (import hollight SUM_LMUL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5986 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5987 |
lemma SUM_RMUL: "hollight.sum (xb::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5988 |
(%xb::'A. real_mul ((x::'A => hollight.real) xb) (xa::hollight.real)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5989 |
real_mul (hollight.sum xb x) xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5990 |
by (import hollight SUM_RMUL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5991 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5992 |
lemma SUM_NEG: "hollight.sum (xa::'q_68051 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5993 |
(%xa::'q_68051. real_neg ((x::'q_68051 => hollight.real) xa)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5994 |
real_neg (hollight.sum xa x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5995 |
by (import hollight SUM_NEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5996 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5997 |
lemma SUM_SUB: "finite (xb::'q_68086 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5998 |
==> hollight.sum xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
5999 |
(%xb::'q_68086. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6000 |
real_sub ((x::'q_68086 => hollight.real) xb) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6001 |
((xa::'q_68086 => hollight.real) xb)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6002 |
real_sub (hollight.sum xb x) (hollight.sum xb xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6003 |
by (import hollight SUM_SUB) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6004 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6005 |
lemma SUM_LE: "finite (xb::'q_68128 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6006 |
(ALL xc::'q_68128. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6007 |
xc : xb --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6008 |
real_le ((x::'q_68128 => hollight.real) xc) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6009 |
((xa::'q_68128 => hollight.real) xc)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6010 |
==> real_le (hollight.sum xb x) (hollight.sum xb xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6011 |
by (import hollight SUM_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6012 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6013 |
lemma SUM_LT: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6014 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6015 |
x : s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6016 |
real_le ((f::'A => hollight.real) x) ((g::'A => hollight.real) x)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6017 |
(EX x::'A. x : s & real_lt (f x) (g x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6018 |
==> real_lt (hollight.sum s f) (hollight.sum s g)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6019 |
by (import hollight SUM_LT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6020 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6021 |
lemma SUM_LT_ALL: "finite (s::'q_68250 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6022 |
s ~= {} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6023 |
(ALL x::'q_68250. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6024 |
x : s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6025 |
real_lt ((f::'q_68250 => hollight.real) x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6026 |
((g::'q_68250 => hollight.real) x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6027 |
==> real_lt (hollight.sum s f) (hollight.sum s g)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6028 |
by (import hollight SUM_LT_ALL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6029 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6030 |
lemma SUM_EQ: "(!!xc::'q_68288. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6031 |
xc : (xb::'q_68288 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6032 |
==> (x::'q_68288 => hollight.real) xc = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6033 |
(xa::'q_68288 => hollight.real) xc) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6034 |
==> hollight.sum xb x = hollight.sum xb xa" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6035 |
by (import hollight SUM_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6036 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6037 |
lemma SUM_ABS: "finite (s::'q_68347 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6038 |
==> real_le (real_abs (hollight.sum s (f::'q_68347 => hollight.real))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6039 |
(hollight.sum s (%x::'q_68347. real_abs (f x)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6040 |
by (import hollight SUM_ABS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6041 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6042 |
lemma SUM_ABS_LE: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6043 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6044 |
x : s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6045 |
real_le (real_abs ((f::'A => hollight.real) x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6046 |
((g::'A => hollight.real) x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6047 |
==> real_le (real_abs (hollight.sum s f)) (hollight.sum s g)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6048 |
by (import hollight SUM_ABS_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6049 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6050 |
lemma SUM_CONST: "finite (s::'q_68423 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6051 |
==> hollight.sum s (%n::'q_68423. c::hollight.real) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6052 |
real_mul (real_of_num (CARD s)) c" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6053 |
by (import hollight SUM_CONST) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6054 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6055 |
lemma SUM_POS_LE: "finite (xa::'q_68465 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6056 |
(ALL xb::'q_68465. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6057 |
xb : xa --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6058 |
real_le (real_of_num (0::nat)) ((x::'q_68465 => hollight.real) xb)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6059 |
==> real_le (real_of_num (0::nat)) (hollight.sum xa x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6060 |
by (import hollight SUM_POS_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6061 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6062 |
lemma SUM_POS_BOUND: "[| finite (x::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6063 |
(ALL xa::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6064 |
xa : x --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6065 |
real_le (real_of_num (0::nat)) ((f::'A => hollight.real) xa)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6066 |
real_le (hollight.sum x f) (b::hollight.real); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6067 |
(xa::'A) : x |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6068 |
==> real_le (f xa) b" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6069 |
by (import hollight SUM_POS_BOUND) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6070 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6071 |
lemma SUM_POS_EQ_0: "[| finite (xa::'q_68612 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6072 |
(ALL xb::'q_68612. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6073 |
xb : xa --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6074 |
real_le (real_of_num (0::nat)) ((x::'q_68612 => hollight.real) xb)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6075 |
hollight.sum xa x = real_of_num (0::nat); |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6076 |
(xb::'q_68612) : xa |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6077 |
==> x xb = real_of_num (0::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6078 |
by (import hollight SUM_POS_EQ_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6079 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6080 |
lemma SUM_ZERO_EXISTS: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6081 |
hollight.sum s (u::'A => hollight.real) = real_of_num (0::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6082 |
==> (ALL i::'A. i : s --> u i = real_of_num (0::nat)) | |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6083 |
(EX (j::'A) k::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6084 |
j : s & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6085 |
real_lt (u j) (real_of_num (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6086 |
k : s & real_gt (u k) (real_of_num (0::nat)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6087 |
by (import hollight SUM_ZERO_EXISTS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6088 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6089 |
lemma SUM_DELETE: "finite (xa::'q_68854 => bool) & (xb::'q_68854) : xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6090 |
==> hollight.sum (xa - {xb}) (x::'q_68854 => hollight.real) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6091 |
real_sub (hollight.sum xa x) (x xb)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6092 |
by (import hollight SUM_DELETE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6093 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6094 |
lemma SUM_DELETE_CASES: "finite (s::'q_68907 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6095 |
==> hollight.sum (s - {a::'q_68907}) (f::'q_68907 => hollight.real) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6096 |
(if a : s then real_sub (hollight.sum s f) (f a) else hollight.sum s f)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6097 |
by (import hollight SUM_DELETE_CASES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6098 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6099 |
lemma SUM_SING: "hollight.sum {xa::'q_68930} (x::'q_68930 => hollight.real) = x xa"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6100 |
by (import hollight SUM_SING) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6101 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6102 |
lemma SUM_DELTA: "hollight.sum (x::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6103 |
(%x::'A. if x = (xa::'A) then b::hollight.real else real_of_num (0::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6104 |
(if xa : x then b else real_of_num (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6105 |
by (import hollight SUM_DELTA) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6106 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6107 |
lemma SUM_SWAP: "finite (x::'A => bool) & finite (xa::'B => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6108 |
==> hollight.sum x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6109 |
(%i::'A. hollight.sum xa ((f::'A => 'B => hollight.real) i)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6110 |
hollight.sum xa (%j::'B. hollight.sum x (%i::'A. f i j))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6111 |
by (import hollight SUM_SWAP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6112 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6113 |
lemma SUM_IMAGE: "(!!(xa::'q_69070) y::'q_69070. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6114 |
xa : (xb::'q_69070 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6115 |
y : xb & (x::'q_69070 => 'q_69046) xa = x y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6116 |
==> xa = y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6117 |
==> hollight.sum (x ` xb) (xa::'q_69046 => hollight.real) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6118 |
hollight.sum xb (xa o x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6119 |
by (import hollight SUM_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6120 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6121 |
lemma SUM_SUPERSET: "(xa::'A => bool) <= (xb::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6122 |
(ALL xc::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6123 |
xc : xb & xc ~: xa --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6124 |
(x::'A => hollight.real) xc = real_of_num (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6125 |
==> hollight.sum xb x = hollight.sum xa x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6126 |
by (import hollight SUM_SUPERSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6127 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6128 |
lemma SUM_UNION_RZERO: "finite (u::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6129 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6130 |
x : (v::'A => bool) & x ~: u --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6131 |
(f::'A => hollight.real) x = real_of_num (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6132 |
==> hollight.sum (u Un v) f = hollight.sum u f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6133 |
by (import hollight SUM_UNION_RZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6134 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6135 |
lemma SUM_UNION_LZERO: "finite (v::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6136 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6137 |
x : (u::'A => bool) & x ~: v --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6138 |
(f::'A => hollight.real) x = real_of_num (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6139 |
==> hollight.sum (u Un v) f = hollight.sum v f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6140 |
by (import hollight SUM_UNION_LZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6141 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6142 |
lemma SUM_RESTRICT: "finite (s::'q_69267 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6143 |
==> hollight.sum s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6144 |
(%x::'q_69267. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6145 |
if x : s then (f::'q_69267 => hollight.real) x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6146 |
else real_of_num (0::nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6147 |
hollight.sum s f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6148 |
by (import hollight SUM_RESTRICT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6149 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6150 |
lemma SUM_BOUND: "finite (x::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6151 |
(ALL xc::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6152 |
xc : x --> real_le ((xa::'A => hollight.real) xc) (xb::hollight.real)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6153 |
==> real_le (hollight.sum x xa) (real_mul (real_of_num (CARD x)) xb)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6154 |
by (import hollight SUM_BOUND) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6155 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6156 |
lemma SUM_BOUND_GEN: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6157 |
s ~= {} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6158 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6159 |
x : s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6160 |
real_le ((f::'A => hollight.real) x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6161 |
(real_div (b::hollight.real) (real_of_num (CARD s)))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6162 |
==> real_le (hollight.sum s f) b" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6163 |
by (import hollight SUM_BOUND_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6164 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6165 |
lemma SUM_ABS_BOUND: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6166 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6167 |
x : s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6168 |
real_le (real_abs ((f::'A => hollight.real) x)) (b::hollight.real)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6169 |
==> real_le (real_abs (hollight.sum s f)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6170 |
(real_mul (real_of_num (CARD s)) b)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6171 |
by (import hollight SUM_ABS_BOUND) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6172 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6173 |
lemma SUM_BOUND_LT: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6174 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6175 |
x : s --> real_le ((f::'A => hollight.real) x) (b::hollight.real)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6176 |
(EX x::'A. x : s & real_lt (f x) b) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6177 |
==> real_lt (hollight.sum s f) (real_mul (real_of_num (CARD s)) b)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6178 |
by (import hollight SUM_BOUND_LT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6179 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6180 |
lemma SUM_BOUND_LT_ALL: "finite (s::'q_69531 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6181 |
s ~= {} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6182 |
(ALL x::'q_69531. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6183 |
x : s --> real_lt ((f::'q_69531 => hollight.real) x) (b::hollight.real)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6184 |
==> real_lt (hollight.sum s f) (real_mul (real_of_num (CARD s)) b)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6185 |
by (import hollight SUM_BOUND_LT_ALL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6186 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6187 |
lemma SUM_BOUND_LT_GEN: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6188 |
s ~= {} &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6189 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6190 |
x : s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6191 |
real_lt ((f::'A => hollight.real) x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6192 |
(real_div (b::hollight.real) (real_of_num (CARD s)))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6193 |
==> real_lt (hollight.sum s f) b" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6194 |
by (import hollight SUM_BOUND_LT_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6195 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6196 |
lemma SUM_UNION_EQ: "finite (u::'q_69614 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6197 |
(s::'q_69614 => bool) Int (t::'q_69614 => bool) = {} & s Un t = u
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6198 |
==> real_add (hollight.sum s (f::'q_69614 => hollight.real)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6199 |
(hollight.sum t f) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6200 |
hollight.sum u f" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6201 |
by (import hollight SUM_UNION_EQ) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6202 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6203 |
lemma SUM_EQ_SUPERSET: "finite (t::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6204 |
t <= (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6205 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6206 |
x : t --> (f::'A => hollight.real) x = (g::'A => hollight.real) x) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6207 |
(ALL x::'A. x : s & x ~: t --> f x = real_of_num (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6208 |
==> hollight.sum s f = hollight.sum t g" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6209 |
by (import hollight SUM_EQ_SUPERSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6210 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6211 |
lemma SUM_RESTRICT_SET: "hollight.sum |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6212 |
{u::'q_69783.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6213 |
EX xb::'q_69783. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6214 |
(xb : (xa::'q_69783 => bool) & (x::'q_69783 => bool) xb) & u = xb} |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6215 |
(xb::'q_69783 => hollight.real) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6216 |
hollight.sum xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6217 |
(%xa::'q_69783. if x xa then xb xa else real_of_num (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6218 |
by (import hollight SUM_RESTRICT_SET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6219 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6220 |
lemma SUM_SUM_RESTRICT: "finite (s::'q_69875 => bool) & finite (t::'q_69874 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6221 |
==> hollight.sum s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6222 |
(%x::'q_69875. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6223 |
hollight.sum |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6224 |
{u::'q_69874.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6225 |
EX y::'q_69874. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6226 |
(y : t & (R::'q_69875 => 'q_69874 => bool) x y) & u = y} |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6227 |
((f::'q_69875 => 'q_69874 => hollight.real) x)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6228 |
hollight.sum t |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6229 |
(%y::'q_69874. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6230 |
hollight.sum {u::'q_69875. EX x::'q_69875. (x : s & R x y) & u = x}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6231 |
(%x::'q_69875. f x y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6232 |
by (import hollight SUM_SUM_RESTRICT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6233 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6234 |
lemma CARD_EQ_SUM: "finite (x::'q_69896 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6235 |
==> real_of_num (CARD x) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6236 |
hollight.sum x (%x::'q_69896. real_of_num (1::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6237 |
by (import hollight CARD_EQ_SUM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6238 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6239 |
lemma SUM_MULTICOUNT_GEN: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6240 |
finite (t::'B => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6241 |
(ALL j::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6242 |
j : t --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6243 |
CARD {u::'A. EX i::'A. (i : s & (R::'A => 'B => bool) i j) & u = i} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6244 |
(k::'B => nat) j) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6245 |
==> hollight.sum s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6246 |
(%i::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6247 |
real_of_num (CARD {u::'B. EX j::'B. (j : t & R i j) & u = j})) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6248 |
hollight.sum t (%i::'B. real_of_num (k i))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6249 |
by (import hollight SUM_MULTICOUNT_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6250 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6251 |
lemma SUM_MULTICOUNT: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6252 |
finite (t::'B => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6253 |
(ALL j::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6254 |
j : t --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6255 |
CARD {u::'A. EX i::'A. (i : s & (R::'A => 'B => bool) i j) & u = i} =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6256 |
(k::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6257 |
==> hollight.sum s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6258 |
(%i::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6259 |
real_of_num (CARD {u::'B. EX j::'B. (j : t & R i j) & u = j})) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6260 |
real_of_num (k * CARD t)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6261 |
by (import hollight SUM_MULTICOUNT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6262 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6263 |
lemma SUM_IMAGE_GEN: "finite (s::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6264 |
==> hollight.sum s (g::'A => hollight.real) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6265 |
hollight.sum ((f::'A => 'B) ` s) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6266 |
(%y::'B. hollight.sum {u::'A. EX x::'A. (x : s & f x = y) & u = x} g)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6267 |
by (import hollight SUM_IMAGE_GEN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6268 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6269 |
lemma SUM_GROUP: "finite (s::'A => bool) & (f::'A => 'B) ` s <= (t::'B => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6270 |
==> hollight.sum t |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6271 |
(%y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6272 |
hollight.sum {u::'A. EX x::'A. (x : s & f x = y) & u = x}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6273 |
(g::'A => hollight.real)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6274 |
hollight.sum s g" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6275 |
by (import hollight SUM_GROUP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6276 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6277 |
lemma REAL_OF_NUM_SUM: "finite (s::'q_70361 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6278 |
==> real_of_num (nsum s (f::'q_70361 => nat)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6279 |
hollight.sum s (%x::'q_70361. real_of_num (f x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6280 |
by (import hollight REAL_OF_NUM_SUM) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6281 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6282 |
lemma SUM_SUBSET: "finite (u::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6283 |
finite (v::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6284 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6285 |
x : u - v --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6286 |
real_le ((f::'A => hollight.real) x) (real_of_num (0::nat))) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6287 |
(ALL x::'A. x : v - u --> real_le (real_of_num (0::nat)) (f x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6288 |
==> real_le (hollight.sum u f) (hollight.sum v f)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6289 |
by (import hollight SUM_SUBSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6290 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6291 |
lemma SUM_SUBSET_SIMPLE: "finite (v::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6292 |
(u::'A => bool) <= v & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6293 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6294 |
x : v - u --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6295 |
real_le (real_of_num (0::nat)) ((f::'A => hollight.real) x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6296 |
==> real_le (hollight.sum u f) (hollight.sum v f)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6297 |
by (import hollight SUM_SUBSET_SIMPLE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6298 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6299 |
lemma SUM_IMAGE_NONZERO: "finite (xb::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6300 |
(ALL (xc::'A) xd::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6301 |
xc : xb & xd : xb & xc ~= xd & (xa::'A => 'B) xc = xa xd --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6302 |
(x::'B => hollight.real) (xa xc) = real_of_num (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6303 |
==> hollight.sum (xa ` xb) x = hollight.sum xb (x o xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6304 |
by (import hollight SUM_IMAGE_NONZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6305 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6306 |
lemma SUM_BIJECTION: "(ALL x::'A. x : (xb::'A => bool) --> (xa::'A => 'A) x : xb) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6307 |
(ALL y::'A. y : xb --> (EX! x::'A. x : xb & xa x = y)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6308 |
==> hollight.sum xb (x::'A => hollight.real) = hollight.sum xb (x o xa)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6309 |
by (import hollight SUM_BIJECTION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6310 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6311 |
lemma SUM_SUM_PRODUCT: "finite (x::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6312 |
(ALL i::'A. i : x --> finite ((xa::'A => 'B => bool) i)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6313 |
==> hollight.sum x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6314 |
(%x::'A. hollight.sum (xa x) ((xb::'A => 'B => hollight.real) x)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6315 |
hollight.sum |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6316 |
{u::'A * 'B. EX (i::'A) j::'B. (i : x & j : xa i) & u = (i, j)}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6317 |
(SOME f::'A * 'B => hollight.real. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6318 |
ALL (i::'A) j::'B. f (i, j) = xb i j)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6319 |
by (import hollight SUM_SUM_PRODUCT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6320 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6321 |
lemma SUM_EQ_GENERAL: "(ALL y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6322 |
y : (xa::'B => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6323 |
(EX! xa::'A. xa : (x::'A => bool) & (xd::'A => 'B) xa = y)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6324 |
(ALL xe::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6325 |
xe : x --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6326 |
xd xe : xa & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6327 |
(xc::'B => hollight.real) (xd xe) = (xb::'A => hollight.real) xe) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6328 |
==> hollight.sum x xb = hollight.sum xa xc" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6329 |
by (import hollight SUM_EQ_GENERAL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6330 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6331 |
lemma SUM_EQ_GENERAL_INVERSES: "(ALL y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6332 |
y : (xa::'B => bool) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6333 |
(xe::'B => 'A) y : (x::'A => bool) & (xd::'A => 'B) (xe y) = y) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6334 |
(ALL xf::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6335 |
xf : x --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6336 |
xd xf : xa & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6337 |
xe (xd xf) = xf & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6338 |
(xc::'B => hollight.real) (xd xf) = (xb::'A => hollight.real) xf) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6339 |
==> hollight.sum x xb = hollight.sum xa xc" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6340 |
by (import hollight SUM_EQ_GENERAL_INVERSES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6341 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6342 |
lemma SUM_INJECTION: "finite (xb::'q_71007 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6343 |
(ALL x::'q_71007. x : xb --> (xa::'q_71007 => 'q_71007) x : xb) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6344 |
(ALL (x::'q_71007) y::'q_71007. x : xb & y : xb & xa x = xa y --> x = y) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6345 |
==> hollight.sum xb ((x::'q_71007 => hollight.real) o xa) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6346 |
hollight.sum xb x" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6347 |
by (import hollight SUM_INJECTION) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6348 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6349 |
lemma SUM_UNION_NONZERO: "finite (xa::'q_71050 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6350 |
finite (xb::'q_71050 => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6351 |
(ALL xc::'q_71050. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6352 |
xc : xa Int xb --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6353 |
(x::'q_71050 => hollight.real) xc = real_of_num (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6354 |
==> hollight.sum (xa Un xb) x = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6355 |
real_add (hollight.sum xa x) (hollight.sum xb x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6356 |
by (import hollight SUM_UNION_NONZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6357 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6358 |
lemma SUM_UNIONS_NONZERO: "finite (x::('A => bool) => bool) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6359 |
(ALL t::'A => bool. t : x --> finite t) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6360 |
(ALL (t1::'A => bool) (t2::'A => bool) xa::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6361 |
t1 : x & t2 : x & t1 ~= t2 & xa : t1 & xa : t2 --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6362 |
(f::'A => hollight.real) xa = real_of_num (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6363 |
==> hollight.sum (Union x) f = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6364 |
hollight.sum x (%t::'A => bool. hollight.sum t f)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6365 |
by (import hollight SUM_UNIONS_NONZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6366 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6367 |
lemma SUM_CASES: "finite (x::'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6368 |
==> hollight.sum x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6369 |
(%x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6370 |
if (xa::'A => bool) x then (xb::'A => hollight.real) x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6371 |
else (xc::'A => hollight.real) x) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6372 |
real_add (hollight.sum {u::'A. EX xb::'A. (xb : x & xa xb) & u = xb} xb)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6373 |
(hollight.sum {u::'A. EX xb::'A. (xb : x & ~ xa xb) & u = xb} xc)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6374 |
by (import hollight SUM_CASES) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6375 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6376 |
lemma SUM_CASES_1: "finite (s::'q_71319 => bool) & (a::'q_71319) : s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6377 |
==> hollight.sum s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6378 |
(%x::'q_71319. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6379 |
if x = a then y::hollight.real |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6380 |
else (f::'q_71319 => hollight.real) x) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6381 |
real_add (hollight.sum s f) (real_sub y (f a))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6382 |
by (import hollight SUM_CASES_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6383 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6384 |
lemma SUM_LE_INCLUDED: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6385 |
finite (t::'B => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6386 |
(ALL y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6387 |
y : t --> real_le (real_of_num (0::nat)) ((g::'B => hollight.real) y)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6388 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6389 |
x : s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6390 |
(EX y::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6391 |
y : t & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6392 |
(i::'B => 'A) y = x & real_le ((f::'A => hollight.real) x) (g y))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6393 |
==> real_le (hollight.sum s f) (hollight.sum t g)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6394 |
by (import hollight SUM_LE_INCLUDED) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6395 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6396 |
lemma SUM_IMAGE_LE: "finite (s::'A => bool) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6397 |
(ALL x::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6398 |
x : s --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6399 |
real_le (real_of_num (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6400 |
((g::'B => hollight.real) ((f::'A => 'B) x))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6401 |
==> real_le (hollight.sum (f ` s) g) (hollight.sum s (g o f))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6402 |
by (import hollight SUM_IMAGE_LE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6403 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6404 |
lemma SUM_CLOSED: "(P::hollight.real => bool) (real_of_num (0::nat)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6405 |
(ALL (x::hollight.real) y::hollight.real. P x & P y --> P (real_add x y)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6406 |
(ALL a::'A. a : (s::'A => bool) --> P ((f::'A => hollight.real) a)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6407 |
==> P (hollight.sum s f)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6408 |
by (import hollight SUM_CLOSED) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6409 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6410 |
lemma SUM_ADD_NUMSEG: "hollight.sum {xb::nat..xc::nat}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6411 |
(%i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6412 |
real_add ((x::nat => hollight.real) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6413 |
((xa::nat => hollight.real) i)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6414 |
real_add (hollight.sum {xb..xc} x) (hollight.sum {xb..xc} xa)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6415 |
by (import hollight SUM_ADD_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6416 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6417 |
lemma SUM_SUB_NUMSEG: "hollight.sum {xb::nat..xc::nat}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6418 |
(%i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6419 |
real_sub ((x::nat => hollight.real) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6420 |
((xa::nat => hollight.real) i)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6421 |
real_sub (hollight.sum {xb..xc} x) (hollight.sum {xb..xc} xa)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6422 |
by (import hollight SUM_SUB_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6423 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6424 |
lemma SUM_LE_NUMSEG: "(!!i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6425 |
(xb::nat) <= i & i <= (xc::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6426 |
==> real_le ((x::nat => hollight.real) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6427 |
((xa::nat => hollight.real) i)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6428 |
==> real_le (hollight.sum {xb..xc} x) (hollight.sum {xb..xc} xa)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6429 |
by (import hollight SUM_LE_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6430 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6431 |
lemma SUM_EQ_NUMSEG: "(!!i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6432 |
(m::nat) <= i & i <= (n::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6433 |
==> (f::nat => hollight.real) i = (g::nat => hollight.real) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6434 |
==> hollight.sum {m..n} f = hollight.sum {m..n} g"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6435 |
by (import hollight SUM_EQ_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6436 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6437 |
lemma SUM_ABS_NUMSEG: "real_le |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6438 |
(real_abs (hollight.sum {xa::nat..xb::nat} (x::nat => hollight.real)))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6439 |
(hollight.sum {xa..xb} (%i::nat. real_abs (x i)))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6440 |
by (import hollight SUM_ABS_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6441 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6442 |
lemma SUM_CONST_NUMSEG: "hollight.sum {xa..xb} (%n. x) = real_mul (real_of_num (xb + 1 - xa)) x"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6443 |
by (import hollight SUM_CONST_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6444 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6445 |
lemma SUM_EQ_0_NUMSEG: "(!!i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6446 |
(m::nat) <= i & i <= (n::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6447 |
==> (x::nat => hollight.real) i = real_of_num (0::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6448 |
==> hollight.sum {m..n} x = real_of_num (0::nat)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6449 |
by (import hollight SUM_EQ_0_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6450 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6451 |
lemma SUM_TRIV_NUMSEG: "(n::nat) < (m::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6452 |
==> hollight.sum {m..n} (f::nat => hollight.real) = real_of_num (0::nat)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6453 |
by (import hollight SUM_TRIV_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6454 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6455 |
lemma SUM_POS_LE_NUMSEG: "(!!p::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6456 |
(x::nat) <= p & p <= (xa::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6457 |
==> real_le (real_of_num (0::nat)) ((xb::nat => hollight.real) p)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6458 |
==> real_le (real_of_num (0::nat)) (hollight.sum {x..xa} xb)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6459 |
by (import hollight SUM_POS_LE_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6460 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6461 |
lemma SUM_POS_EQ_0_NUMSEG: "[| (ALL p::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6462 |
(m::nat) <= p & p <= (n::nat) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6463 |
real_le (real_of_num (0::nat)) ((f::nat => hollight.real) p)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6464 |
hollight.sum {m..n} f = real_of_num (0::nat);
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6465 |
m <= (p::nat) & p <= n |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6466 |
==> f p = real_of_num (0::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6467 |
by (import hollight SUM_POS_EQ_0_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6468 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6469 |
lemma SUM_SING_NUMSEG: "hollight.sum {xa::nat..xa} (x::nat => hollight.real) = x xa"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6470 |
by (import hollight SUM_SING_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6471 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6472 |
lemma SUM_CLAUSES_NUMSEG: "(ALL m. hollight.sum {m..0} f = (if m = 0 then f 0 else real_of_num 0)) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6473 |
(ALL m n. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6474 |
hollight.sum {m..Suc n} f =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6475 |
(if m <= Suc n then real_add (hollight.sum {m..n} f) (f (Suc n))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6476 |
else hollight.sum {m..n} f))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6477 |
by (import hollight SUM_CLAUSES_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6478 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6479 |
lemma SUM_SWAP_NUMSEG: "hollight.sum {a::nat..b::nat}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6480 |
(%i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6481 |
hollight.sum {c::nat..d::nat} ((f::nat => nat => hollight.real) i)) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6482 |
hollight.sum {c..d} (%j::nat. hollight.sum {a..b} (%i::nat. f i j))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6483 |
by (import hollight SUM_SWAP_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6484 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6485 |
lemma SUM_ADD_SPLIT: "(xa::nat) <= (xb::nat) + (1::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6486 |
==> hollight.sum {xa..xb + (xc::nat)} (x::nat => hollight.real) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6487 |
real_add (hollight.sum {xa..xb} x)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6488 |
(hollight.sum {xb + (1::nat)..xb + xc} x)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6489 |
by (import hollight SUM_ADD_SPLIT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6490 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6491 |
lemma SUM_OFFSET: "hollight.sum {(xb::nat) + (x::nat)..(xc::nat) + x}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6492 |
(xa::nat => hollight.real) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6493 |
hollight.sum {xb..xc} (%i::nat. xa (i + x))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6494 |
by (import hollight SUM_OFFSET) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6495 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6496 |
lemma SUM_OFFSET_0: "(xa::nat) <= (xb::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6497 |
==> hollight.sum {xa..xb} (x::nat => hollight.real) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6498 |
hollight.sum {0::nat..xb - xa} (%i::nat. x (i + xa))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6499 |
by (import hollight SUM_OFFSET_0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6500 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6501 |
lemma SUM_CLAUSES_LEFT: "(xa::nat) <= (xb::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6502 |
==> hollight.sum {xa..xb} (x::nat => hollight.real) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6503 |
real_add (x xa) (hollight.sum {xa + (1::nat)..xb} x)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6504 |
by (import hollight SUM_CLAUSES_LEFT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6505 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6506 |
lemma SUM_CLAUSES_RIGHT: "(0::nat) < (n::nat) & (m::nat) <= n |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6507 |
==> hollight.sum {m..n} (f::nat => hollight.real) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6508 |
real_add (hollight.sum {m..n - (1::nat)} f) (f n)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6509 |
by (import hollight SUM_CLAUSES_RIGHT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6510 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6511 |
lemma SUM_PAIR: "hollight.sum {(2::nat) * (m::nat)..(2::nat) * (n::nat) + (1::nat)}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6512 |
(f::nat => hollight.real) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6513 |
hollight.sum {m..n}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6514 |
(%i::nat. real_add (f ((2::nat) * i)) (f ((2::nat) * i + (1::nat))))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6515 |
by (import hollight SUM_PAIR) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6516 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6517 |
lemma REAL_OF_NUM_SUM_NUMSEG: "real_of_num (nsum {xa::nat..xb::nat} (x::nat => nat)) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6518 |
hollight.sum {xa..xb} (%i::nat. real_of_num (x i))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6519 |
by (import hollight REAL_OF_NUM_SUM_NUMSEG) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6520 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6521 |
lemma SUM_PARTIAL_SUC: "hollight.sum {m::nat..n::nat}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6522 |
(%k::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6523 |
real_mul ((f::nat => hollight.real) k) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6524 |
(real_sub ((g::nat => hollight.real) (k + (1::nat))) (g k))) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6525 |
(if m <= n |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6526 |
then real_sub |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6527 |
(real_sub (real_mul (f (n + (1::nat))) (g (n + (1::nat)))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6528 |
(real_mul (f m) (g m))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6529 |
(hollight.sum {m..n}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6530 |
(%k::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6531 |
real_mul (g (k + (1::nat))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6532 |
(real_sub (f (k + (1::nat))) (f k)))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6533 |
else real_of_num (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6534 |
by (import hollight SUM_PARTIAL_SUC) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6535 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6536 |
lemma SUM_PARTIAL_PRE: "hollight.sum {m::nat..n::nat}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6537 |
(%k::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6538 |
real_mul ((f::nat => hollight.real) k) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6539 |
(real_sub ((g::nat => hollight.real) k) (g (k - (1::nat))))) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6540 |
(if m <= n |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6541 |
then real_sub |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6542 |
(real_sub (real_mul (f (n + (1::nat))) (g n)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6543 |
(real_mul (f m) (g (m - (1::nat))))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6544 |
(hollight.sum {m..n}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6545 |
(%k::nat. real_mul (g k) (real_sub (f (k + (1::nat))) (f k)))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6546 |
else real_of_num (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6547 |
by (import hollight SUM_PARTIAL_PRE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6548 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6549 |
lemma SUM_DIFFS: "hollight.sum {x::nat..xa::nat}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6550 |
(%x::nat. real_sub ((f::nat => hollight.real) x) (f (x + (1::nat)))) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6551 |
(if x <= xa then real_sub (f x) (f (xa + (1::nat))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6552 |
else real_of_num (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6553 |
by (import hollight SUM_DIFFS) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6554 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6555 |
lemma SUM_DIFFS_ALT: "hollight.sum {m::nat..n::nat}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6556 |
(%x::nat. real_sub ((f::nat => hollight.real) (x + (1::nat))) (f x)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6557 |
(if m <= n then real_sub (f (n + (1::nat))) (f m) else real_of_num (0::nat))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6558 |
by (import hollight SUM_DIFFS_ALT) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6559 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6560 |
lemma SUM_COMBINE_R: "(m::nat) <= (n::nat) + (1::nat) & n <= (p::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6561 |
==> real_add (hollight.sum {m..n} (f::nat => hollight.real))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6562 |
(hollight.sum {n + (1::nat)..p} f) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6563 |
hollight.sum {m..p} f"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6564 |
by (import hollight SUM_COMBINE_R) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6565 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6566 |
lemma SUM_COMBINE_L: "(0::nat) < (n::nat) & (m::nat) <= n & n <= (p::nat) + (1::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6567 |
==> real_add (hollight.sum {m..n - (1::nat)} (f::nat => hollight.real))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6568 |
(hollight.sum {n..p} f) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6569 |
hollight.sum {m..p} f"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6570 |
by (import hollight SUM_COMBINE_L) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6571 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6572 |
lemma REAL_SUB_POW: "1 <= xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6573 |
==> real_sub (real_pow x xb) (real_pow xa xb) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6574 |
real_mul (real_sub x xa) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6575 |
(hollight.sum {0..xb - 1}
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6576 |
(%i. real_mul (real_pow x i) (real_pow xa (xb - 1 - i))))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6577 |
by (import hollight REAL_SUB_POW) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6578 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6579 |
lemma REAL_SUB_POW_R1: "1 <= n |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6580 |
==> real_sub (real_pow x n) (real_of_num 1) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6581 |
real_mul (real_sub x (real_of_num 1)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6582 |
(hollight.sum {0..n - 1} (real_pow x))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6583 |
by (import hollight REAL_SUB_POW_R1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6584 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6585 |
lemma REAL_SUB_POW_L1: "1 <= xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6586 |
==> real_sub (real_of_num 1) (real_pow x xa) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6587 |
real_mul (real_sub (real_of_num 1) x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6588 |
(hollight.sum {0..xa - 1} (real_pow x))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6589 |
by (import hollight REAL_SUB_POW_L1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6590 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6591 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6592 |
dimindex :: "('A => bool) => nat" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6593 |
"(op ==::(('A::type => bool) => nat) => (('A::type => bool) => nat) => prop)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6594 |
(dimindex::('A::type => bool) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6595 |
(%u::'A::type => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6596 |
(If::bool => nat => nat => nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6597 |
((finite::('A::type => bool) => bool) (UNIV::'A::type => bool))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6598 |
((CARD::('A::type => bool) => nat) (UNIV::'A::type => bool)) (1::nat))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6599 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6600 |
lemma DEF_dimindex: "(op =::(('A::type => bool) => nat) => (('A::type => bool) => nat) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6601 |
(dimindex::('A::type => bool) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6602 |
(%u::'A::type => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6603 |
(If::bool => nat => nat => nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6604 |
((finite::('A::type => bool) => bool) (UNIV::'A::type => bool))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6605 |
((CARD::('A::type => bool) => nat) (UNIV::'A::type => bool)) (1::nat))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6606 |
by (import hollight DEF_dimindex) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6607 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6608 |
lemma DIMINDEX_NONZERO: "dimindex (s::'A => bool) ~= (0::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6609 |
by (import hollight DIMINDEX_NONZERO) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6610 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6611 |
lemma DIMINDEX_GE_1: "(1::nat) <= dimindex (x::'A => bool)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6612 |
by (import hollight DIMINDEX_GE_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6613 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6614 |
lemma DIMINDEX_UNIV: "(op =::nat => nat => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6615 |
((dimindex::('A::type => bool) => nat) (x::'A::type => bool))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6616 |
((dimindex::('A::type => bool) => nat) (UNIV::'A::type => bool))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6617 |
by (import hollight DIMINDEX_UNIV) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6618 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6619 |
lemma DIMINDEX_UNIQUE: "(op ==>::prop => prop => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6620 |
((Trueprop::bool => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6621 |
((HAS_SIZE::('A::type => bool) => nat => bool) (UNIV::'A::type => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6622 |
(n::nat))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6623 |
((Trueprop::bool => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6624 |
((op =::nat => nat => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6625 |
((dimindex::('A::type => bool) => nat) (UNIV::'A::type => bool)) n))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6626 |
by (import hollight DIMINDEX_UNIQUE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6627 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6628 |
typedef (open) ('A) finite_image = "{x::nat. x : dotdot (NUMERAL (NUMERAL_BIT1 (0::nat))) (dimindex UNIV)}" morphisms "dest_finite_image" "finite_index"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6629 |
apply (rule light_ex_imp_nonempty[where t="SOME x::nat. x : dotdot (NUMERAL (NUMERAL_BIT1 (0::nat))) (dimindex UNIV)"]) |
| 17644 | 6630 |
by (import hollight TYDEF_finite_image) |
6631 |
||
6632 |
syntax |
|
6633 |
dest_finite_image :: _ |
|
6634 |
||
6635 |
syntax |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6636 |
finite_index :: _ |
| 17644 | 6637 |
|
6638 |
lemmas "TYDEF_finite_image_@intern" = typedef_hol2hollight |
|
| 17652 | 6639 |
[where a="a :: 'A finite_image" and r=r , |
| 17644 | 6640 |
OF type_definition_finite_image] |
6641 |
||
6642 |
lemma FINITE_IMAGE_IMAGE: "(op =::('A::type finite_image => bool)
|
|
6643 |
=> ('A::type finite_image => bool) => bool)
|
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6644 |
(UNIV::'A::type finite_image => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6645 |
((op `::(nat => 'A::type finite_image) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6646 |
=> (nat => bool) => 'A::type finite_image => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6647 |
(finite_index::nat => 'A::type finite_image) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6648 |
((atLeastAtMost::nat => nat => nat => bool) (1::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6649 |
((dimindex::('A::type => bool) => nat) (UNIV::'A::type => bool))))"
|
| 17644 | 6650 |
by (import hollight FINITE_IMAGE_IMAGE) |
6651 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6652 |
lemma HAS_SIZE_FINITE_IMAGE: "(HAS_SIZE::('A::type finite_image => bool) => nat => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6653 |
(UNIV::'A::type finite_image => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6654 |
((dimindex::('A::type => bool) => nat) (s::'A::type => bool))"
|
| 17644 | 6655 |
by (import hollight HAS_SIZE_FINITE_IMAGE) |
6656 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6657 |
lemma CARD_FINITE_IMAGE: "(op =::nat => nat => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6658 |
((CARD::('A::type finite_image => bool) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6659 |
(UNIV::'A::type finite_image => bool)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6660 |
((dimindex::('A::type => bool) => nat) (s::'A::type => bool))"
|
| 17644 | 6661 |
by (import hollight CARD_FINITE_IMAGE) |
6662 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6663 |
lemma FINITE_FINITE_IMAGE: "(finite::('A::type finite_image => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6664 |
(UNIV::'A::type finite_image => bool)" |
| 17644 | 6665 |
by (import hollight FINITE_FINITE_IMAGE) |
6666 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6667 |
lemma DIMINDEX_FINITE_IMAGE: "dimindex (s::'A finite_image => bool) = dimindex (t::'A => bool)" |
| 17644 | 6668 |
by (import hollight DIMINDEX_FINITE_IMAGE) |
6669 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6670 |
lemma FINITE_INDEX_WORKS: "(Ex1::(nat => bool) => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6671 |
(%xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6672 |
(op &::bool => bool => bool) ((op <=::nat => nat => bool) (1::nat) xa) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6673 |
((op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6674 |
((op <=::nat => nat => bool) xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6675 |
((dimindex::('A::type => bool) => nat) (UNIV::'A::type => bool)))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6676 |
((op =::'A::type finite_image => 'A::type finite_image => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6677 |
((finite_index::nat => 'A::type finite_image) xa) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6678 |
(x::'A::type finite_image))))" |
| 17644 | 6679 |
by (import hollight FINITE_INDEX_WORKS) |
6680 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6681 |
lemma FINITE_INDEX_INJ: "(op ==>::prop => prop => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6682 |
((Trueprop::bool => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6683 |
((op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6684 |
((op <=::nat => nat => bool) (1::nat) (i::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6685 |
((op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6686 |
((op <=::nat => nat => bool) i |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6687 |
((dimindex::('A::type => bool) => nat) (UNIV::'A::type => bool)))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6688 |
((op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6689 |
((op <=::nat => nat => bool) (1::nat) (j::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6690 |
((op <=::nat => nat => bool) j |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6691 |
((dimindex::('A::type => bool) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6692 |
(UNIV::'A::type => bool))))))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6693 |
((Trueprop::bool => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6694 |
((op =::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6695 |
((op =::'A::type finite_image => 'A::type finite_image => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6696 |
((finite_index::nat => 'A::type finite_image) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6697 |
((finite_index::nat => 'A::type finite_image) j)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6698 |
((op =::nat => nat => bool) i j)))" |
| 17644 | 6699 |
by (import hollight FINITE_INDEX_INJ) |
6700 |
||
6701 |
lemma FORALL_FINITE_INDEX: "(op =::bool => bool => bool) |
|
6702 |
((All::('N::type finite_image => bool) => bool)
|
|
6703 |
(P::'N::type finite_image => bool)) |
|
6704 |
((All::(nat => bool) => bool) |
|
6705 |
(%i::nat. |
|
6706 |
(op -->::bool => bool => bool) |
|
6707 |
((op &::bool => bool => bool) |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6708 |
((op <=::nat => nat => bool) (1::nat) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6709 |
((op <=::nat => nat => bool) i |
| 17644 | 6710 |
((dimindex::('N::type => bool) => nat)
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6711 |
(UNIV::'N::type => bool)))) |
| 17644 | 6712 |
(P ((finite_index::nat => 'N::type finite_image) i))))" |
6713 |
by (import hollight FORALL_FINITE_INDEX) |
|
6714 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6715 |
typedef (open) ('A, 'B) cart = "{f. True}" morphisms "dest_cart" "mk_cart"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6716 |
apply (rule light_ex_imp_nonempty[where t="SOME f. True"]) |
| 17644 | 6717 |
by (import hollight TYDEF_cart) |
6718 |
||
6719 |
syntax |
|
6720 |
dest_cart :: _ |
|
6721 |
||
6722 |
syntax |
|
6723 |
mk_cart :: _ |
|
6724 |
||
6725 |
lemmas "TYDEF_cart_@intern" = typedef_hol2hollight |
|
| 17652 | 6726 |
[where a="a :: ('A, 'B) cart" and r=r ,
|
| 17644 | 6727 |
OF type_definition_cart] |
6728 |
||
6729 |
consts |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6730 |
"$" :: "('q_73536, 'q_73546) cart => nat => 'q_73536" ("$")
|
| 17644 | 6731 |
|
6732 |
defs |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6733 |
"$_def": "$ == %(u::('q_73536, 'q_73546) cart) ua::nat. dest_cart u (finite_index ua)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6734 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6735 |
lemma "DEF_$": "$ = (%(u::('q_73536, 'q_73546) cart) ua::nat. dest_cart u (finite_index ua))"
|
| 17644 | 6736 |
by (import hollight "DEF_$") |
6737 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6738 |
lemma CART_EQ: "(op =::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6739 |
((op =::('A::type, 'B::type) cart => ('A::type, 'B::type) cart => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6740 |
(x::('A::type, 'B::type) cart) (y::('A::type, 'B::type) cart))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6741 |
((All::(nat => bool) => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6742 |
(%xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6743 |
(op -->::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6744 |
((op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6745 |
((op <=::nat => nat => bool) (1::nat) xa) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6746 |
((op <=::nat => nat => bool) xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6747 |
((dimindex::('B::type => bool) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6748 |
(UNIV::'B::type => bool)))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6749 |
((op =::'A::type => 'A::type => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6750 |
(($::('A::type, 'B::type) cart => nat => 'A::type) x xa)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6751 |
(($::('A::type, 'B::type) cart => nat => 'A::type) y xa))))"
|
| 17644 | 6752 |
by (import hollight CART_EQ) |
6753 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6754 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6755 |
lambda :: "(nat => 'A) => ('A, 'B) cart" where
|
| 17644 | 6756 |
"(op ==::((nat => 'A::type) => ('A::type, 'B::type) cart)
|
6757 |
=> ((nat => 'A::type) => ('A::type, 'B::type) cart) => prop)
|
|
6758 |
(lambda::(nat => 'A::type) => ('A::type, 'B::type) cart)
|
|
6759 |
(%u::nat => 'A::type. |
|
6760 |
(Eps::(('A::type, 'B::type) cart => bool) => ('A::type, 'B::type) cart)
|
|
6761 |
(%f::('A::type, 'B::type) cart.
|
|
6762 |
(All::(nat => bool) => bool) |
|
6763 |
(%i::nat. |
|
6764 |
(op -->::bool => bool => bool) |
|
6765 |
((op &::bool => bool => bool) |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6766 |
((op <=::nat => nat => bool) (1::nat) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6767 |
((op <=::nat => nat => bool) i |
| 17644 | 6768 |
((dimindex::('B::type => bool) => nat)
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6769 |
(UNIV::'B::type => bool)))) |
| 17644 | 6770 |
((op =::'A::type => 'A::type => bool) |
6771 |
(($::('A::type, 'B::type) cart => nat => 'A::type) f i)
|
|
6772 |
(u i)))))" |
|
6773 |
||
6774 |
lemma DEF_lambda: "(op =::((nat => 'A::type) => ('A::type, 'B::type) cart)
|
|
6775 |
=> ((nat => 'A::type) => ('A::type, 'B::type) cart) => bool)
|
|
6776 |
(lambda::(nat => 'A::type) => ('A::type, 'B::type) cart)
|
|
6777 |
(%u::nat => 'A::type. |
|
6778 |
(Eps::(('A::type, 'B::type) cart => bool) => ('A::type, 'B::type) cart)
|
|
6779 |
(%f::('A::type, 'B::type) cart.
|
|
6780 |
(All::(nat => bool) => bool) |
|
6781 |
(%i::nat. |
|
6782 |
(op -->::bool => bool => bool) |
|
6783 |
((op &::bool => bool => bool) |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6784 |
((op <=::nat => nat => bool) (1::nat) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6785 |
((op <=::nat => nat => bool) i |
| 17644 | 6786 |
((dimindex::('B::type => bool) => nat)
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6787 |
(UNIV::'B::type => bool)))) |
| 17644 | 6788 |
((op =::'A::type => 'A::type => bool) |
6789 |
(($::('A::type, 'B::type) cart => nat => 'A::type) f i)
|
|
6790 |
(u i)))))" |
|
6791 |
by (import hollight DEF_lambda) |
|
6792 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6793 |
lemma LAMBDA_BETA: "(op ==>::prop => prop => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6794 |
((Trueprop::bool => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6795 |
((op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6796 |
((op <=::nat => nat => bool) (1::nat) (x::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6797 |
((op <=::nat => nat => bool) x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6798 |
((dimindex::('B::type => bool) => nat) (UNIV::'B::type => bool)))))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6799 |
((Trueprop::bool => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6800 |
((op =::'A::type => 'A::type => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6801 |
(($::('A::type, 'B::type) cart => nat => 'A::type)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6802 |
((lambda::(nat => 'A::type) => ('A::type, 'B::type) cart)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6803 |
(g::nat => 'A::type)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6804 |
x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6805 |
(g x)))" |
| 17644 | 6806 |
by (import hollight LAMBDA_BETA) |
6807 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6808 |
lemma LAMBDA_UNIQUE: "(op =::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6809 |
((All::(nat => bool) => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6810 |
(%i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6811 |
(op -->::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6812 |
((op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6813 |
((op <=::nat => nat => bool) (1::nat) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6814 |
((op <=::nat => nat => bool) i |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6815 |
((dimindex::('B::type => bool) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6816 |
(UNIV::'B::type => bool)))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6817 |
((op =::'A::type => 'A::type => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6818 |
(($::('A::type, 'B::type) cart => nat => 'A::type)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6819 |
(x::('A::type, 'B::type) cart) i)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6820 |
((xa::nat => 'A::type) i)))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6821 |
((op =::('A::type, 'B::type) cart => ('A::type, 'B::type) cart => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6822 |
((lambda::(nat => 'A::type) => ('A::type, 'B::type) cart) xa) x)"
|
| 17644 | 6823 |
by (import hollight LAMBDA_UNIQUE) |
6824 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6825 |
lemma LAMBDA_ETA: "lambda ($ (x::('q_73734, 'q_73738) cart)) = x"
|
| 17644 | 6826 |
by (import hollight LAMBDA_ETA) |
6827 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6828 |
lemma FINITE_INDEX_INRANGE: "(Ex::(nat => bool) => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6829 |
(%xa::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6830 |
(op &::bool => bool => bool) ((op <=::nat => nat => bool) (1::nat) xa) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6831 |
((op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6832 |
((op <=::nat => nat => bool) xa |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6833 |
((dimindex::('N::type => bool) => nat) (UNIV::'N::type => bool)))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6834 |
((All::(('A::type, 'N::type) cart => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6835 |
(%xb::('A::type, 'N::type) cart.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6836 |
(op =::'A::type => 'A::type => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6837 |
(($::('A::type, 'N::type) cart => nat => 'A::type) xb
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6838 |
(x::nat)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6839 |
(($::('A::type, 'N::type) cart => nat => 'A::type) xb xa)))))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6840 |
by (import hollight FINITE_INDEX_INRANGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6841 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6842 |
lemma CART_EQ_FULL: "((x::('A, 'N) cart) = (y::('A, 'N) cart)) = (ALL i::nat. $ x i = $ y i)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6843 |
by (import hollight CART_EQ_FULL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6844 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6845 |
typedef (open) ('A, 'B) finite_sum = "{x::nat.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6846 |
x : dotdot (NUMERAL (NUMERAL_BIT1 (0::nat))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6847 |
(dimindex UNIV + dimindex UNIV)}" morphisms "dest_finite_sum" "mk_finite_sum" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6848 |
apply (rule light_ex_imp_nonempty[where t="SOME x::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6849 |
x : dotdot (NUMERAL (NUMERAL_BIT1 (0::nat))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6850 |
(dimindex UNIV + dimindex UNIV)"]) |
| 17644 | 6851 |
by (import hollight TYDEF_finite_sum) |
6852 |
||
6853 |
syntax |
|
6854 |
dest_finite_sum :: _ |
|
6855 |
||
6856 |
syntax |
|
6857 |
mk_finite_sum :: _ |
|
6858 |
||
6859 |
lemmas "TYDEF_finite_sum_@intern" = typedef_hol2hollight |
|
| 17652 | 6860 |
[where a="a :: ('A, 'B) finite_sum" and r=r ,
|
| 17644 | 6861 |
OF type_definition_finite_sum] |
6862 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6863 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6864 |
pastecart :: "('A, 'M) cart => ('A, 'N) cart => ('A, ('M, 'N) finite_sum) cart" where
|
| 17644 | 6865 |
"(op ==::(('A::type, 'M::type) cart
|
6866 |
=> ('A::type, 'N::type) cart
|
|
6867 |
=> ('A::type, ('M::type, 'N::type) finite_sum) cart)
|
|
6868 |
=> (('A::type, 'M::type) cart
|
|
6869 |
=> ('A::type, 'N::type) cart
|
|
6870 |
=> ('A::type, ('M::type, 'N::type) finite_sum) cart)
|
|
6871 |
=> prop) |
|
6872 |
(pastecart::('A::type, 'M::type) cart
|
|
6873 |
=> ('A::type, 'N::type) cart
|
|
6874 |
=> ('A::type, ('M::type, 'N::type) finite_sum) cart)
|
|
6875 |
(%(u::('A::type, 'M::type) cart) ua::('A::type, 'N::type) cart.
|
|
6876 |
(lambda::(nat => 'A::type) |
|
6877 |
=> ('A::type, ('M::type, 'N::type) finite_sum) cart)
|
|
6878 |
(%i::nat. |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6879 |
(If::bool => 'A::type => 'A::type => 'A::type) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6880 |
((op <=::nat => nat => bool) i |
| 17644 | 6881 |
((dimindex::('M::type => bool) => nat)
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6882 |
(UNIV::'M::type => bool))) |
| 17644 | 6883 |
(($::('A::type, 'M::type) cart => nat => 'A::type) u i)
|
6884 |
(($::('A::type, 'N::type) cart => nat => 'A::type) ua
|
|
6885 |
((op -::nat => nat => nat) i |
|
6886 |
((dimindex::('M::type => bool) => nat)
|
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6887 |
(UNIV::'M::type => bool))))))" |
| 17644 | 6888 |
|
6889 |
lemma DEF_pastecart: "(op =::(('A::type, 'M::type) cart
|
|
6890 |
=> ('A::type, 'N::type) cart
|
|
6891 |
=> ('A::type, ('M::type, 'N::type) finite_sum) cart)
|
|
6892 |
=> (('A::type, 'M::type) cart
|
|
6893 |
=> ('A::type, 'N::type) cart
|
|
6894 |
=> ('A::type, ('M::type, 'N::type) finite_sum) cart)
|
|
6895 |
=> bool) |
|
6896 |
(pastecart::('A::type, 'M::type) cart
|
|
6897 |
=> ('A::type, 'N::type) cart
|
|
6898 |
=> ('A::type, ('M::type, 'N::type) finite_sum) cart)
|
|
6899 |
(%(u::('A::type, 'M::type) cart) ua::('A::type, 'N::type) cart.
|
|
6900 |
(lambda::(nat => 'A::type) |
|
6901 |
=> ('A::type, ('M::type, 'N::type) finite_sum) cart)
|
|
6902 |
(%i::nat. |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6903 |
(If::bool => 'A::type => 'A::type => 'A::type) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6904 |
((op <=::nat => nat => bool) i |
| 17644 | 6905 |
((dimindex::('M::type => bool) => nat)
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6906 |
(UNIV::'M::type => bool))) |
| 17644 | 6907 |
(($::('A::type, 'M::type) cart => nat => 'A::type) u i)
|
6908 |
(($::('A::type, 'N::type) cart => nat => 'A::type) ua
|
|
6909 |
((op -::nat => nat => nat) i |
|
6910 |
((dimindex::('M::type => bool) => nat)
|
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6911 |
(UNIV::'M::type => bool))))))" |
| 17644 | 6912 |
by (import hollight DEF_pastecart) |
6913 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6914 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6915 |
fstcart :: "('A, ('M, 'N) finite_sum) cart => ('A, 'M) cart" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6916 |
"fstcart == %u::('A, ('M, 'N) finite_sum) cart. lambda ($ u)"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6917 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6918 |
lemma DEF_fstcart: "fstcart = (%u::('A, ('M, 'N) finite_sum) cart. lambda ($ u))"
|
| 17644 | 6919 |
by (import hollight DEF_fstcart) |
6920 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6921 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6922 |
sndcart :: "('A, ('M, 'N) finite_sum) cart => ('A, 'N) cart" where
|
| 17644 | 6923 |
"(op ==::(('A::type, ('M::type, 'N::type) finite_sum) cart
|
6924 |
=> ('A::type, 'N::type) cart)
|
|
6925 |
=> (('A::type, ('M::type, 'N::type) finite_sum) cart
|
|
6926 |
=> ('A::type, 'N::type) cart)
|
|
6927 |
=> prop) |
|
6928 |
(sndcart::('A::type, ('M::type, 'N::type) finite_sum) cart
|
|
6929 |
=> ('A::type, 'N::type) cart)
|
|
6930 |
(%u::('A::type, ('M::type, 'N::type) finite_sum) cart.
|
|
6931 |
(lambda::(nat => 'A::type) => ('A::type, 'N::type) cart)
|
|
6932 |
(%i::nat. |
|
6933 |
($::('A::type, ('M::type, 'N::type) finite_sum) cart
|
|
6934 |
=> nat => 'A::type) |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6935 |
u ((op +::nat => nat => nat) i |
| 17644 | 6936 |
((dimindex::('M::type => bool) => nat)
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6937 |
(UNIV::'M::type => bool)))))" |
| 17644 | 6938 |
|
6939 |
lemma DEF_sndcart: "(op =::(('A::type, ('M::type, 'N::type) finite_sum) cart
|
|
6940 |
=> ('A::type, 'N::type) cart)
|
|
6941 |
=> (('A::type, ('M::type, 'N::type) finite_sum) cart
|
|
6942 |
=> ('A::type, 'N::type) cart)
|
|
6943 |
=> bool) |
|
6944 |
(sndcart::('A::type, ('M::type, 'N::type) finite_sum) cart
|
|
6945 |
=> ('A::type, 'N::type) cart)
|
|
6946 |
(%u::('A::type, ('M::type, 'N::type) finite_sum) cart.
|
|
6947 |
(lambda::(nat => 'A::type) => ('A::type, 'N::type) cart)
|
|
6948 |
(%i::nat. |
|
6949 |
($::('A::type, ('M::type, 'N::type) finite_sum) cart
|
|
6950 |
=> nat => 'A::type) |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6951 |
u ((op +::nat => nat => nat) i |
| 17644 | 6952 |
((dimindex::('M::type => bool) => nat)
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6953 |
(UNIV::'M::type => bool)))))" |
| 17644 | 6954 |
by (import hollight DEF_sndcart) |
6955 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6956 |
lemma FINITE_SUM_IMAGE: "(op =::(('A::type, 'B::type) finite_sum => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6957 |
=> (('A::type, 'B::type) finite_sum => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6958 |
(UNIV::('A::type, 'B::type) finite_sum => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6959 |
((op `::(nat => ('A::type, 'B::type) finite_sum)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6960 |
=> (nat => bool) => ('A::type, 'B::type) finite_sum => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6961 |
(mk_finite_sum::nat => ('A::type, 'B::type) finite_sum)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6962 |
((atLeastAtMost::nat => nat => nat => bool) (1::nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6963 |
((op +::nat => nat => nat) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6964 |
((dimindex::('A::type => bool) => nat) (UNIV::'A::type => bool))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6965 |
((dimindex::('B::type => bool) => nat) (UNIV::'B::type => bool)))))"
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6966 |
by (import hollight FINITE_SUM_IMAGE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6967 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6968 |
lemma HAS_SIZE_1: "(HAS_SIZE::(unit => bool) => nat => bool) (UNIV::unit => bool) (1::nat)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6969 |
by (import hollight HAS_SIZE_1) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6970 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6971 |
typedef (open) N_2 = "{x. x : dotdot (NUMERAL (NUMERAL_BIT1 0))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6972 |
(NUMERAL (NUMERAL_BIT0 (NUMERAL_BIT1 0)))}" morphisms "dest_auto_define_finite_type_2" "mk_auto_define_finite_type_2" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6973 |
apply (rule light_ex_imp_nonempty[where t="SOME x. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6974 |
x : dotdot (NUMERAL (NUMERAL_BIT1 0)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6975 |
(NUMERAL (NUMERAL_BIT0 (NUMERAL_BIT1 0)))"]) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6976 |
by (import hollight TYDEF_2) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6977 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6978 |
syntax |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6979 |
dest_auto_define_finite_type_2 :: _ |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6980 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6981 |
syntax |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6982 |
mk_auto_define_finite_type_2 :: _ |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6983 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6984 |
lemmas "TYDEF_2_@intern" = typedef_hol2hollight |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6985 |
[where a="a :: N_2" and r=r , |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6986 |
OF type_definition_N_2] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6987 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6988 |
typedef (open) N_3 = "{x. x : dotdot (NUMERAL (NUMERAL_BIT1 0))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6989 |
(NUMERAL (NUMERAL_BIT1 (NUMERAL_BIT1 0)))}" morphisms "dest_auto_define_finite_type_3" "mk_auto_define_finite_type_3" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6990 |
apply (rule light_ex_imp_nonempty[where t="SOME x. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6991 |
x : dotdot (NUMERAL (NUMERAL_BIT1 0)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6992 |
(NUMERAL (NUMERAL_BIT1 (NUMERAL_BIT1 0)))"]) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6993 |
by (import hollight TYDEF_3) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6994 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6995 |
syntax |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6996 |
dest_auto_define_finite_type_3 :: _ |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6997 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6998 |
syntax |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
6999 |
mk_auto_define_finite_type_3 :: _ |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7000 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7001 |
lemmas "TYDEF_3_@intern" = typedef_hol2hollight |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7002 |
[where a="a :: N_3" and r=r , |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7003 |
OF type_definition_N_3] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7004 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7005 |
lemma FINITE_CART: "(op ==>::prop => prop => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7006 |
((all::(nat => prop) => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7007 |
(%i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7008 |
(op ==>::prop => prop => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7009 |
((Trueprop::bool => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7010 |
((op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7011 |
((op <=::nat => nat => bool) (1::nat) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7012 |
((op <=::nat => nat => bool) i |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7013 |
((dimindex::('N::type => bool) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7014 |
(UNIV::'N::type => bool))))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7015 |
((Trueprop::bool => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7016 |
((finite::('A::type => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7017 |
((Collect::('A::type => bool) => 'A::type => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7018 |
(%u::'A::type. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7019 |
(Ex::('A::type => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7020 |
(%x::'A::type. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7021 |
(op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7022 |
((P::nat => 'A::type => bool) i x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7023 |
((op =::'A::type => 'A::type => bool) u x)))))))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7024 |
((Trueprop::bool => prop) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7025 |
((finite::(('A::type, 'N::type) cart => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7026 |
((Collect::(('A::type, 'N::type) cart => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7027 |
=> ('A::type, 'N::type) cart => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7028 |
(%u::('A::type, 'N::type) cart.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7029 |
(Ex::(('A::type, 'N::type) cart => bool) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7030 |
(%v::('A::type, 'N::type) cart.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7031 |
(op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7032 |
((All::(nat => bool) => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7033 |
(%i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7034 |
(op -->::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7035 |
((op &::bool => bool => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7036 |
((op <=::nat => nat => bool) (1::nat) i) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7037 |
((op <=::nat => nat => bool) i |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7038 |
((dimindex::('N::type => bool) => nat)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7039 |
(UNIV::'N::type => bool)))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7040 |
(P i (($::('A::type, 'N::type) cart
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7041 |
=> nat => 'A::type) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7042 |
v i)))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7043 |
((op =::('A::type, 'N::type) cart
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7044 |
=> ('A::type, 'N::type) cart => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7045 |
u v))))))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7046 |
by (import hollight FINITE_CART) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7047 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7048 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7049 |
vector :: "'A list => ('A, 'N) cart" where
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7050 |
"(op ==::('A::type list => ('A::type, 'N::type) cart)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7051 |
=> ('A::type list => ('A::type, 'N::type) cart) => prop)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7052 |
(vector::'A::type list => ('A::type, 'N::type) cart)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7053 |
(%u::'A::type list. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7054 |
(lambda::(nat => 'A::type) => ('A::type, 'N::type) cart)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7055 |
(%i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7056 |
(op !::'A::type list => nat => 'A::type) u |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7057 |
((op -::nat => nat => nat) i (1::nat))))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7058 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7059 |
lemma DEF_vector: "(op =::('A::type list => ('A::type, 'N::type) cart)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7060 |
=> ('A::type list => ('A::type, 'N::type) cart) => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7061 |
(vector::'A::type list => ('A::type, 'N::type) cart)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7062 |
(%u::'A::type list. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7063 |
(lambda::(nat => 'A::type) => ('A::type, 'N::type) cart)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7064 |
(%i::nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7065 |
(op !::'A::type list => nat => 'A::type) u |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7066 |
((op -::nat => nat => nat) i (1::nat))))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7067 |
by (import hollight DEF_vector) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7068 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7069 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7070 |
CASEWISE :: "(('q_74835 => 'q_74839) * ('q_74840 => 'q_74835 => 'q_74799)) list
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7071 |
=> 'q_74840 => 'q_74839 => 'q_74799" where |
| 17644 | 7072 |
"CASEWISE == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7073 |
SOME CASEWISE::(('q_74835 => 'q_74839) *
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7074 |
('q_74840 => 'q_74835 => 'q_74799)) list
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7075 |
=> 'q_74840 => 'q_74839 => 'q_74799. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7076 |
(ALL (f::'q_74840) x::'q_74839. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7077 |
CASEWISE [] f x = (SOME y::'q_74799. True)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7078 |
(ALL (h::('q_74835 => 'q_74839) * ('q_74840 => 'q_74835 => 'q_74799))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7079 |
(t::(('q_74835 => 'q_74839) *
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7080 |
('q_74840 => 'q_74835 => 'q_74799)) list)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7081 |
(f::'q_74840) x::'q_74839. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7082 |
CASEWISE (h # t) f x = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7083 |
(if EX y::'q_74835. fst h y = x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7084 |
then snd h f (SOME y::'q_74835. fst h y = x) else CASEWISE t f x))" |
| 17644 | 7085 |
|
7086 |
lemma DEF_CASEWISE: "CASEWISE = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7087 |
(SOME CASEWISE::(('q_74835 => 'q_74839) *
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7088 |
('q_74840 => 'q_74835 => 'q_74799)) list
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7089 |
=> 'q_74840 => 'q_74839 => 'q_74799. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7090 |
(ALL (f::'q_74840) x::'q_74839. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7091 |
CASEWISE [] f x = (SOME y::'q_74799. True)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7092 |
(ALL (h::('q_74835 => 'q_74839) * ('q_74840 => 'q_74835 => 'q_74799))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7093 |
(t::(('q_74835 => 'q_74839) *
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7094 |
('q_74840 => 'q_74835 => 'q_74799)) list)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7095 |
(f::'q_74840) x::'q_74839. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7096 |
CASEWISE (h # t) f x = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7097 |
(if EX y::'q_74835. fst h y = x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7098 |
then snd h f (SOME y::'q_74835. fst h y = x) else CASEWISE t f x)))" |
| 17644 | 7099 |
by (import hollight DEF_CASEWISE) |
7100 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7101 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7102 |
admissible :: "('q_75137 => 'q_75130 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7103 |
=> (('q_75137 => 'q_75133) => 'q_75143 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7104 |
=> ('q_75143 => 'q_75130)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7105 |
=> (('q_75137 => 'q_75133) => 'q_75143 => 'q_75138) => bool" where
|
| 17644 | 7106 |
"admissible == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7107 |
%(u::'q_75137 => 'q_75130 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7108 |
(ua::('q_75137 => 'q_75133) => 'q_75143 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7109 |
(ub::'q_75143 => 'q_75130) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7110 |
uc::('q_75137 => 'q_75133) => 'q_75143 => 'q_75138.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7111 |
ALL (f::'q_75137 => 'q_75133) (g::'q_75137 => 'q_75133) a::'q_75143. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7112 |
ua f a & ua g a & (ALL z::'q_75137. u z (ub a) --> f z = g z) --> |
| 17644 | 7113 |
uc f a = uc g a" |
7114 |
||
7115 |
lemma DEF_admissible: "admissible = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7116 |
(%(u::'q_75137 => 'q_75130 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7117 |
(ua::('q_75137 => 'q_75133) => 'q_75143 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7118 |
(ub::'q_75143 => 'q_75130) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7119 |
uc::('q_75137 => 'q_75133) => 'q_75143 => 'q_75138.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7120 |
ALL (f::'q_75137 => 'q_75133) (g::'q_75137 => 'q_75133) a::'q_75143. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7121 |
ua f a & ua g a & (ALL z::'q_75137. u z (ub a) --> f z = g z) --> |
| 17644 | 7122 |
uc f a = uc g a)" |
7123 |
by (import hollight DEF_admissible) |
|
7124 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7125 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7126 |
tailadmissible :: "('A => 'A => bool)
|
| 17652 | 7127 |
=> (('A => 'B) => 'P => bool)
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7128 |
=> ('P => 'A) => (('A => 'B) => 'P => 'B) => bool" where
|
| 17644 | 7129 |
"tailadmissible == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7130 |
%(u::'A => 'A => bool) (ua::('A => 'B) => 'P => bool) (ub::'P => 'A)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7131 |
uc::('A => 'B) => 'P => 'B.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7132 |
EX (P::('A => 'B) => 'P => bool) (G::('A => 'B) => 'P => 'A)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7133 |
H::('A => 'B) => 'P => 'B.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7134 |
(ALL (f::'A => 'B) (a::'P) y::'A. |
| 17644 | 7135 |
P f a & u y (G f a) --> u y (ub a)) & |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7136 |
(ALL (f::'A => 'B) (g::'A => 'B) a::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7137 |
(ALL z::'A. u z (ub a) --> f z = g z) --> |
| 17644 | 7138 |
P f a = P g a & G f a = G g a & H f a = H g a) & |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7139 |
(ALL (f::'A => 'B) a::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7140 |
ua f a --> uc f a = (if P f a then f (G f a) else H f a))" |
| 17644 | 7141 |
|
7142 |
lemma DEF_tailadmissible: "tailadmissible = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7143 |
(%(u::'A => 'A => bool) (ua::('A => 'B) => 'P => bool) (ub::'P => 'A)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7144 |
uc::('A => 'B) => 'P => 'B.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7145 |
EX (P::('A => 'B) => 'P => bool) (G::('A => 'B) => 'P => 'A)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7146 |
H::('A => 'B) => 'P => 'B.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7147 |
(ALL (f::'A => 'B) (a::'P) y::'A. |
| 17644 | 7148 |
P f a & u y (G f a) --> u y (ub a)) & |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7149 |
(ALL (f::'A => 'B) (g::'A => 'B) a::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7150 |
(ALL z::'A. u z (ub a) --> f z = g z) --> |
| 17644 | 7151 |
P f a = P g a & G f a = G g a & H f a = H g a) & |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7152 |
(ALL (f::'A => 'B) a::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7153 |
ua f a --> uc f a = (if P f a then f (G f a) else H f a)))" |
| 17644 | 7154 |
by (import hollight DEF_tailadmissible) |
7155 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7156 |
definition |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7157 |
superadmissible :: "('q_75287 => 'q_75287 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7158 |
=> (('q_75287 => 'q_75289) => 'q_75295 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7159 |
=> ('q_75295 => 'q_75287)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7160 |
=> (('q_75287 => 'q_75289) => 'q_75295 => 'q_75289) => bool" where
|
| 17644 | 7161 |
"superadmissible == |
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7162 |
%(u::'q_75287 => 'q_75287 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7163 |
(ua::('q_75287 => 'q_75289) => 'q_75295 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7164 |
(ub::'q_75295 => 'q_75287) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7165 |
uc::('q_75287 => 'q_75289) => 'q_75295 => 'q_75289.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7166 |
admissible u (%(f::'q_75287 => 'q_75289) a::'q_75295. True) ub ua --> |
| 17644 | 7167 |
tailadmissible u ua ub uc" |
7168 |
||
7169 |
lemma DEF_superadmissible: "superadmissible = |
|
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7170 |
(%(u::'q_75287 => 'q_75287 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7171 |
(ua::('q_75287 => 'q_75289) => 'q_75295 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7172 |
(ub::'q_75295 => 'q_75287) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7173 |
uc::('q_75287 => 'q_75289) => 'q_75295 => 'q_75289.
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7174 |
admissible u (%(f::'q_75287 => 'q_75289) a::'q_75295. True) ub ua --> |
| 17644 | 7175 |
tailadmissible u ua ub uc)" |
7176 |
by (import hollight DEF_superadmissible) |
|
7177 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7178 |
lemma MATCH_SEQPATTERN: "_MATCH (x::'q_75330) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7179 |
(_SEQPATTERN (r::'q_75330 => 'q_75323 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7180 |
(s::'q_75330 => 'q_75323 => bool)) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7181 |
(if Ex (r x) then _MATCH x r else _MATCH x s)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7182 |
by (import hollight MATCH_SEQPATTERN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7183 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7184 |
lemma ADMISSIBLE_CONST: "admissible (u_556::'q_75351 => 'q_75350 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7185 |
(x::('q_75351 => 'q_75352) => 'q_75353 => bool) (xa::'q_75353 => 'q_75350)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7186 |
(%f::'q_75351 => 'q_75352. xb::'q_75353 => 'q_75354)" |
| 17644 | 7187 |
by (import hollight ADMISSIBLE_CONST) |
7188 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7189 |
lemma ADMISSIBLE_BASE: "(!!(f::'A => 'B) a::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7190 |
(xa::('A => 'B) => 'P => bool) f a
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7191 |
==> (x::'A => 'A => bool) ((xc::'P => 'A) a) ((xb::'P => 'A) a)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7192 |
==> admissible x xa xb (%(f::'A => 'B) x::'P. f (xc x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7193 |
by (import hollight ADMISSIBLE_BASE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7194 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7195 |
lemma ADMISSIBLE_COMB: "admissible (x::'A => 'A => bool) (xa::('A => 'B) => 'P => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7196 |
(xb::'P => 'A) (xc::('A => 'B) => 'P => 'C => 'D) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7197 |
admissible x xa xb (xd::('A => 'B) => 'P => 'C)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7198 |
==> admissible x xa xb (%(f::'A => 'B) x::'P. xc f x (xd f x))" |
| 17644 | 7199 |
by (import hollight ADMISSIBLE_COMB) |
7200 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7201 |
lemma ADMISSIBLE_RAND: "admissible (x::'A => 'A => bool) (xa::('A => 'B) => 'P => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7202 |
(xb::'P => 'A) (xd::('A => 'B) => 'P => 'C)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7203 |
==> admissible x xa xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7204 |
(%(f::'A => 'B) x::'P. (xc::'P => 'C => 'D) x (xd f x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7205 |
by (import hollight ADMISSIBLE_RAND) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7206 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7207 |
lemma ADMISSIBLE_LAMBDA: "admissible (x::'A => 'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7208 |
(%f::'A => 'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7209 |
SOME fa::'C * 'P => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7210 |
ALL (u::'C) x::'P. fa (u, x) = (xa::('A => 'B) => 'P => bool) f x)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7211 |
(SOME f::'C * 'P => 'A. ALL (u::'C) x::'P. f (u, x) = (xb::'P => 'A) x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7212 |
(%f::'A => 'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7213 |
SOME fa::'C * 'P => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7214 |
ALL (u::'C) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7215 |
fa (u, x) = (xc::('A => 'B) => 'C => 'P => bool) f u x)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7216 |
==> admissible x xa xb (%(f::'A => 'B) (x::'P) u::'C. xc f u x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7217 |
by (import hollight ADMISSIBLE_LAMBDA) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7218 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7219 |
lemma ADMISSIBLE_NEST: "admissible (x::'A => 'A => bool) (xa::('A => 'B) => 'P => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7220 |
(xb::'P => 'A) (xc::('A => 'B) => 'P => 'A) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7221 |
(ALL (f::'A => 'B) a::'P. xa f a --> x (xc f a) (xb a)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7222 |
==> admissible x xa xb (%(f::'A => 'B) x::'P. f (xc f x))" |
| 17644 | 7223 |
by (import hollight ADMISSIBLE_NEST) |
7224 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7225 |
lemma ADMISSIBLE_COND: "admissible (u_556::'q_75688 => 'q_75687 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7226 |
(p::('q_75688 => 'q_75719) => 'P => bool) (s::'P => 'q_75687)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7227 |
(P::('q_75688 => 'q_75719) => 'P => bool) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7228 |
admissible u_556 (%(f::'q_75688 => 'q_75719) x::'P. p f x & P f x) s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7229 |
(h::('q_75688 => 'q_75719) => 'P => 'q_75744) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7230 |
admissible u_556 (%(f::'q_75688 => 'q_75719) x::'P. p f x & ~ P f x) s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7231 |
(k::('q_75688 => 'q_75719) => 'P => 'q_75744)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7232 |
==> admissible u_556 p s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7233 |
(%(f::'q_75688 => 'q_75719) x::'P. if P f x then h f x else k f x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7234 |
by (import hollight ADMISSIBLE_COND) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7235 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7236 |
lemma ADMISSIBLE_MATCH: "admissible (x::'q_75790 => 'q_75789 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7237 |
(xa::('q_75790 => 'q_75791) => 'P => bool) (xb::'P => 'q_75789)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7238 |
(xc::('q_75790 => 'q_75791) => 'P => 'q_75826) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7239 |
admissible x xa xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7240 |
(%(f::'q_75790 => 'q_75791) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7241 |
(c::('q_75790 => 'q_75791) => 'P => 'q_75826 => 'q_75823 => bool) f x
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7242 |
(xc f x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7243 |
==> admissible x xa xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7244 |
(%(f::'q_75790 => 'q_75791) x::'P. _MATCH (xc f x) (c f x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7245 |
by (import hollight ADMISSIBLE_MATCH) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7246 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7247 |
lemma ADMISSIBLE_SEQPATTERN: "admissible (x::'q_75867 => 'q_75866 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7248 |
(xa::('q_75867 => 'q_75929) => 'P => bool) (xb::'P => 'q_75866)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7249 |
(%(f::'q_75867 => 'q_75929) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7250 |
Ex ((xc::('q_75867 => 'q_75929) => 'P => 'q_75955 => 'q_75945 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7251 |
f x ((xe::('q_75867 => 'q_75929) => 'P => 'q_75955) f x))) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7252 |
admissible x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7253 |
(%(f::'q_75867 => 'q_75929) x::'P. xa f x & Ex (xc f x (xe f x))) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7254 |
(%(f::'q_75867 => 'q_75929) x::'P. xc f x (xe f x)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7255 |
admissible x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7256 |
(%(f::'q_75867 => 'q_75929) x::'P. xa f x & ~ Ex (xc f x (xe f x))) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7257 |
(%(f::'q_75867 => 'q_75929) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7258 |
(xd::('q_75867 => 'q_75929) => 'P => 'q_75955 => 'q_75945 => bool) f x
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7259 |
(xe f x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7260 |
==> admissible x xa xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7261 |
(%(f::'q_75867 => 'q_75929) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7262 |
_SEQPATTERN (xc f x) (xd f x) (xe f x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7263 |
by (import hollight ADMISSIBLE_SEQPATTERN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7264 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7265 |
lemma ADMISSIBLE_UNGUARDED_PATTERN: "admissible (u_556::'q_76041 => 'q_76040 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7266 |
(p::('q_76041 => 'q_76088) => 'P => bool) (s::'P => 'q_76040)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7267 |
(pat::('q_76041 => 'q_76088) => 'P => 'q_76121) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7268 |
admissible u_556 p s (e::('q_76041 => 'q_76088) => 'P => 'q_76121) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7269 |
admissible u_556 (%(f::'q_76041 => 'q_76088) x::'P. p f x & pat f x = e f x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7270 |
s (t::('q_76041 => 'q_76088) => 'P => 'q_76128) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7271 |
admissible u_556 (%(f::'q_76041 => 'q_76088) x::'P. p f x & pat f x = e f x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7272 |
s (y::('q_76041 => 'q_76088) => 'P => 'q_76128)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7273 |
==> admissible u_556 p s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7274 |
(%(f::'q_76041 => 'q_76088) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7275 |
_UNGUARDED_PATTERN (pat f x = e f x) (t f x = y f x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7276 |
by (import hollight ADMISSIBLE_UNGUARDED_PATTERN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7277 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7278 |
lemma ADMISSIBLE_GUARDED_PATTERN: "admissible (u_556::'q_76215 => 'q_76214 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7279 |
(p::('q_76215 => 'q_76292) => 'P => bool) (s::'P => 'q_76214)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7280 |
(pat::('q_76215 => 'q_76292) => 'P => 'q_76330) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7281 |
admissible u_556 p s (e::('q_76215 => 'q_76292) => 'P => 'q_76330) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7282 |
admissible u_556 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7283 |
(%(f::'q_76215 => 'q_76292) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7284 |
p f x & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7285 |
pat f x = e f x & (q::('q_76215 => 'q_76292) => 'P => bool) f x)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7286 |
s (t::('q_76215 => 'q_76292) => 'P => 'q_76339) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7287 |
admissible u_556 (%(f::'q_76215 => 'q_76292) x::'P. p f x & pat f x = e f x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7288 |
s q & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7289 |
admissible u_556 |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7290 |
(%(f::'q_76215 => 'q_76292) x::'P. p f x & pat f x = e f x & q f x) s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7291 |
(y::('q_76215 => 'q_76292) => 'P => 'q_76339)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7292 |
==> admissible u_556 p s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7293 |
(%(f::'q_76215 => 'q_76292) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7294 |
_GUARDED_PATTERN (pat f x = e f x) (q f x) (t f x = y f x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7295 |
by (import hollight ADMISSIBLE_GUARDED_PATTERN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7296 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7297 |
lemma ADMISSIBLE_NSUM: "admissible (x::'B => 'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7298 |
(%f::'B => 'C. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7299 |
SOME fa::nat * 'P => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7300 |
ALL (k::nat) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7301 |
fa (k, x) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7302 |
((xd::'P => nat) x <= k & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7303 |
k <= (xe::'P => nat) x & (xa::('B => 'C) => 'P => bool) f x))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7304 |
(SOME f::nat * 'P => 'A. ALL (k::nat) x::'P. f (k, x) = (xb::'P => 'A) x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7305 |
(%f::'B => 'C. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7306 |
SOME fa::nat * 'P => nat. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7307 |
ALL (k::nat) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7308 |
fa (k, x) = (xc::('B => 'C) => 'P => nat => nat) f x k)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7309 |
==> admissible x xa xb (%(f::'B => 'C) x::'P. nsum {xd x..xe x} (xc f x))"
|
| 19093 | 7310 |
by (import hollight ADMISSIBLE_NSUM) |
7311 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7312 |
lemma ADMISSIBLE_SUM: "admissible (x::'B => 'A => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7313 |
(%f::'B => 'C. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7314 |
SOME fa::nat * 'P => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7315 |
ALL (k::nat) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7316 |
fa (k, x) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7317 |
((xd::'P => nat) x <= k & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7318 |
k <= (xe::'P => nat) x & (xa::('B => 'C) => 'P => bool) f x))
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7319 |
(SOME f::nat * 'P => 'A. ALL (k::nat) x::'P. f (k, x) = (xb::'P => 'A) x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7320 |
(%f::'B => 'C. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7321 |
SOME fa::nat * 'P => hollight.real. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7322 |
ALL (k::nat) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7323 |
fa (k, x) = (xc::('B => 'C) => 'P => nat => hollight.real) f x k)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7324 |
==> admissible x xa xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7325 |
(%(f::'B => 'C) x::'P. hollight.sum {xd x..xe x} (xc f x))"
|
| 19093 | 7326 |
by (import hollight ADMISSIBLE_SUM) |
7327 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7328 |
lemma ADMISSIBLE_MAP: "admissible (x::'A => 'q_76632 => bool) (xa::('A => 'B) => 'P => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7329 |
(xb::'P => 'q_76632) (xd::('A => 'B) => 'P => 'q_76647 list) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7330 |
admissible x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7331 |
(%f::'A => 'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7332 |
SOME fa::'q_76647 * 'P => bool. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7333 |
ALL (y::'q_76647) x::'P. fa (y, x) = (xa f x & y : set (xd f x))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7334 |
(SOME f::'q_76647 * 'P => 'q_76632. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7335 |
ALL (y::'q_76647) x::'P. f (y, x) = xb x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7336 |
(%f::'A => 'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7337 |
SOME fa::'q_76647 * 'P => 'q_76641. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7338 |
ALL (y::'q_76647) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7339 |
fa (y, x) = (xc::('A => 'B) => 'P => 'q_76647 => 'q_76641) f x y)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7340 |
==> admissible x xa xb (%(f::'A => 'B) x::'P. map (xc f x) (xd f x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7341 |
by (import hollight ADMISSIBLE_MAP) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7342 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7343 |
lemma ADMISSIBLE_MATCH_SEQPATTERN: "admissible (x::'q_76705 => 'q_76704 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7344 |
(xa::('q_76705 => 'q_76770) => 'P => bool) (xb::'P => 'q_76704)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7345 |
(%(f::'q_76705 => 'q_76770) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7346 |
Ex ((xc::('q_76705 => 'q_76770) => 'P => 'q_76825 => 'q_76794 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7347 |
f x ((xe::('q_76705 => 'q_76770) => 'P => 'q_76825) f x))) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7348 |
admissible x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7349 |
(%(f::'q_76705 => 'q_76770) x::'P. xa f x & Ex (xc f x (xe f x))) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7350 |
(%(f::'q_76705 => 'q_76770) x::'P. _MATCH (xe f x) (xc f x)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7351 |
admissible x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7352 |
(%(f::'q_76705 => 'q_76770) x::'P. xa f x & ~ Ex (xc f x (xe f x))) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7353 |
(%(f::'q_76705 => 'q_76770) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7354 |
_MATCH (xe f x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7355 |
((xd::('q_76705 => 'q_76770) => 'P => 'q_76825 => 'q_76794 => bool) f
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7356 |
x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7357 |
==> admissible x xa xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7358 |
(%(x::'q_76705 => 'q_76770) xa::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7359 |
_MATCH (xe x xa) (_SEQPATTERN (xc x xa) (xd x xa)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7360 |
by (import hollight ADMISSIBLE_MATCH_SEQPATTERN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7361 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7362 |
lemma ADMISSIBLE_IMP_SUPERADMISSIBLE: "admissible (x::'A => 'A => bool) (xa::('A => 'B) => 'P => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7363 |
(xb::'P => 'A) (xc::('A => 'B) => 'P => 'B)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7364 |
==> superadmissible x xa xb xc" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7365 |
by (import hollight ADMISSIBLE_IMP_SUPERADMISSIBLE) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7366 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7367 |
lemma SUPERADMISSIBLE_CONST: "superadmissible (u_556::'q_76904 => 'q_76904 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7368 |
(p::('q_76904 => 'q_76906) => 'q_76905 => bool) (s::'q_76905 => 'q_76904)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7369 |
(%f::'q_76904 => 'q_76906. c::'q_76905 => 'q_76906)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7370 |
by (import hollight SUPERADMISSIBLE_CONST) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7371 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7372 |
lemma SUPERADMISSIBLE_TAIL: "admissible (x::'A => 'A => bool) (xa::('A => 'B) => 'P => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7373 |
(xb::'P => 'A) (xc::('A => 'B) => 'P => 'A) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7374 |
(ALL (f::'A => 'B) a::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7375 |
xa f a --> (ALL y::'A. x y (xc f a) --> x y (xb a))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7376 |
==> superadmissible x xa xb (%(f::'A => 'B) x::'P. f (xc f x))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7377 |
by (import hollight SUPERADMISSIBLE_TAIL) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7378 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7379 |
lemma SUPERADMISSIBLE_COND: "admissible (x::'A => 'A => bool) (xa::('A => 'B) => 'P => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7380 |
(xc::'P => 'A) (xb::('A => 'B) => 'P => bool) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7381 |
superadmissible x (%(f::'A => 'B) x::'P. xa f x & xb f x) xc |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7382 |
(xd::('A => 'B) => 'P => 'B) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7383 |
superadmissible x (%(f::'A => 'B) x::'P. xa f x & ~ xb f x) xc |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7384 |
(xe::('A => 'B) => 'P => 'B)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7385 |
==> superadmissible x xa xc |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7386 |
(%(f::'A => 'B) x::'P. if xb f x then xd f x else xe f x)" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7387 |
by (import hollight SUPERADMISSIBLE_COND) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7388 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7389 |
lemma SUPERADMISSIBLE_MATCH_SEQPATTERN: "admissible (x::'q_77225 => 'q_77225 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7390 |
(xa::('q_77225 => 'q_77341) => 'P => bool) (xb::'P => 'q_77225)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7391 |
(%(f::'q_77225 => 'q_77341) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7392 |
Ex ((xc::('q_77225 => 'q_77341) => 'P => 'q_77340 => 'q_77341 => bool)
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7393 |
f x ((xe::('q_77225 => 'q_77341) => 'P => 'q_77340) f x))) &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7394 |
superadmissible x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7395 |
(%(f::'q_77225 => 'q_77341) x::'P. xa f x & Ex (xc f x (xe f x))) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7396 |
(%(f::'q_77225 => 'q_77341) x::'P. _MATCH (xe f x) (xc f x)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7397 |
superadmissible x |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7398 |
(%(f::'q_77225 => 'q_77341) x::'P. xa f x & ~ Ex (xc f x (xe f x))) xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7399 |
(%(f::'q_77225 => 'q_77341) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7400 |
_MATCH (xe f x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7401 |
((xd::('q_77225 => 'q_77341) => 'P => 'q_77340 => 'q_77341 => bool) f
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7402 |
x)) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7403 |
==> superadmissible x xa xb |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7404 |
(%(x::'q_77225 => 'q_77341) xa::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7405 |
_MATCH (xe x xa) (_SEQPATTERN (xc x xa) (xd x xa)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7406 |
by (import hollight SUPERADMISSIBLE_MATCH_SEQPATTERN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7407 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7408 |
lemma SUPERADMISSIBLE_MATCH_UNGUARDED_PATTERN: "(ALL (f::'A => 'B) (a::'P) (t::'Q) u::'Q. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7409 |
(p::('A => 'B) => 'P => bool) f a &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7410 |
(pat::'Q => 'D) t = (e::'P => 'D) a & pat u = e a --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7411 |
(arg::'P => 'Q => 'A) a t = arg a u) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7412 |
(ALL (f::'A => 'B) (a::'P) t::'Q. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7413 |
p f a & pat t = e a --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7414 |
(ALL y::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7415 |
(u_556::'A => 'A => bool) y (arg a t) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7416 |
u_556 y ((s::'P => 'A) a))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7417 |
==> superadmissible u_556 p s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7418 |
(%(f::'A => 'B) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7419 |
_MATCH (e x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7420 |
(%(u::'D) v::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7421 |
EX t::'Q. _UNGUARDED_PATTERN (pat t = u) (f (arg x t) = v)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7422 |
by (import hollight SUPERADMISSIBLE_MATCH_UNGUARDED_PATTERN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7423 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7424 |
lemma SUPERADMISSIBLE_MATCH_GUARDED_PATTERN: "(ALL (f::'A => 'B) (a::'P) (t::'Q) u::'Q. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7425 |
(p::('A => 'B) => 'P => bool) f a &
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7426 |
(pat::'Q => 'D) t = (e::'P => 'D) a & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7427 |
(q::'P => 'Q => bool) a t & pat u = e a & q a u --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7428 |
(arg::'P => 'Q => 'A) a t = arg a u) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7429 |
(ALL (f::'A => 'B) (a::'P) t::'Q. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7430 |
p f a & q a t & pat t = e a --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7431 |
(ALL y::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7432 |
(u_556::'A => 'A => bool) y (arg a t) --> |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7433 |
u_556 y ((s::'P => 'A) a))) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7434 |
==> superadmissible u_556 p s |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7435 |
(%(f::'A => 'B) x::'P. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7436 |
_MATCH (e x) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7437 |
(%(u::'D) v::'B. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7438 |
EX t::'Q. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7439 |
_GUARDED_PATTERN (pat t = u) (q x t) (f (arg x t) = v)))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7440 |
by (import hollight SUPERADMISSIBLE_MATCH_GUARDED_PATTERN) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7441 |
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7442 |
lemma cth: "[| !!(c::'q_78547) (x::'A) y::'A. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7443 |
(p1::'A => 'q_78536) x = (p1'::'A => 'q_78536) y |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7444 |
==> (p2::'q_78547 => 'A => 'q_78541) c x = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7445 |
(p2'::'q_78547 => 'A => 'q_78541) c y; |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7446 |
p1' (x::'A) = p1 (y::'A) |] |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7447 |
==> p2' (c::'q_78547) x = p2 c y" |
| 17644 | 7448 |
by (import hollight cth) |
7449 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7450 |
lemma SUPERADMISSIBLE_T: "superadmissible (u_556::'q_78694 => 'q_78694 => bool) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7451 |
(%(f::'q_78694 => 'q_78696) x::'q_78700. True) (s::'q_78700 => 'q_78694) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7452 |
(t::('q_78694 => 'q_78696) => 'q_78700 => 'q_78696) =
|
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7453 |
tailadmissible u_556 (%(f::'q_78694 => 'q_78696) x::'q_78700. True) s t" |
| 17644 | 7454 |
by (import hollight SUPERADMISSIBLE_T) |
7455 |
||
|
43786
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7456 |
lemma elemma0: "(ALL z::'q_78985 * 'q_78984. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7457 |
(f::'q_78985 * 'q_78984 => 'q_78975) z = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7458 |
(g::'q_78985 * 'q_78984 => 'q_78975) z) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7459 |
(ALL (x::'q_78985) y::'q_78984. f (x, y) = g (x, y)) & |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7460 |
(P::'q_79002 * 'q_79001 => 'q_78994) = |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7461 |
(SOME f::'q_79002 * 'q_79001 => 'q_78994. |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7462 |
ALL (x::'q_79002) y::'q_79001. f (x, y) = P (x, y))" |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7463 |
by (import hollight elemma0) |
|
fea3ed6951e3
Update files generated in HOL/Import/HOLLight
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents:
35416
diff
changeset
|
7464 |
|
| 17644 | 7465 |
;end_setup |
7466 |
||
7467 |
end |
|
7468 |