equal
deleted
inserted
replaced
16 |
16 |
17 goal Map.thy "!!A. a~:A ==> Sigma(A,B)``{a} = 0"; |
17 goal Map.thy "!!A. a~:A ==> Sigma(A,B)``{a} = 0"; |
18 by (Fast_tac 1); |
18 by (Fast_tac 1); |
19 qed "qbeta_emp"; |
19 qed "qbeta_emp"; |
20 |
20 |
21 goal Map.thy "!!A.a ~: A ==> Sigma(A,B)``{a}=0"; |
21 goal Map.thy "!!A. a ~: A ==> Sigma(A,B)``{a}=0"; |
22 by (Fast_tac 1); |
22 by (Fast_tac 1); |
23 qed "image_Sigma1"; |
23 qed "image_Sigma1"; |
24 |
24 |
25 goal Map.thy "0``A = 0"; |
25 goal Map.thy "0``A = 0"; |
26 by (Fast_tac 1); |
26 by (Fast_tac 1); |
42 qed "MapQU_lemma"; |
42 qed "MapQU_lemma"; |
43 |
43 |
44 (* Theorems *) |
44 (* Theorems *) |
45 |
45 |
46 val prems = goalw Map.thy [PMap_def,TMap_def] |
46 val prems = goalw Map.thy [PMap_def,TMap_def] |
47 "[| m:PMap(A,quniv(B)); !!x.x:A ==> x:univ(B) |] ==> m:quniv(B)"; |
47 "[| m:PMap(A,quniv(B)); !!x. x:A ==> x:univ(B) |] ==> m:quniv(B)"; |
48 by (cut_facts_tac prems 1); |
48 by (cut_facts_tac prems 1); |
49 by (rtac (MapQU_lemma RS subsetD) 1); |
49 by (rtac (MapQU_lemma RS subsetD) 1); |
50 by (rtac subsetI 1); |
50 by (rtac subsetI 1); |
51 by (eresolve_tac prems 1); |
51 by (eresolve_tac prems 1); |
52 by (Fast_tac 1); |
52 by (Fast_tac 1); |
54 |
54 |
55 (* ############################################################ *) |
55 (* ############################################################ *) |
56 (* Monotonicity *) |
56 (* Monotonicity *) |
57 (* ############################################################ *) |
57 (* ############################################################ *) |
58 |
58 |
59 goalw Map.thy [PMap_def,TMap_def] "!!A.B<=C ==> PMap(A,B)<=PMap(A,C)"; |
59 goalw Map.thy [PMap_def,TMap_def] "!!A. B<=C ==> PMap(A,B)<=PMap(A,C)"; |
60 by (Fast_tac 1); |
60 by (Fast_tac 1); |
61 qed "map_mono"; |
61 qed "map_mono"; |
62 |
62 |
63 (* Rename to pmap_mono *) |
63 (* Rename to pmap_mono *) |
64 |
64 |
137 |
137 |
138 (** Domain **) |
138 (** Domain **) |
139 |
139 |
140 (* Lemmas *) |
140 (* Lemmas *) |
141 |
141 |
142 goal Map.thy "domain(UN x:A.B(x)) = (UN x:A.domain(B(x)))"; |
142 goal Map.thy "domain(UN x:A. B(x)) = (UN x:A. domain(B(x)))"; |
143 by (Fast_tac 1); |
143 by (Fast_tac 1); |
144 qed "domain_UN"; |
144 qed "domain_UN"; |
145 |
145 |
146 goal Map.thy "domain(Sigma(A,B)) = {x:A.EX y.y:B(x)}"; |
146 goal Map.thy "domain(Sigma(A,B)) = {x:A. EX y. y:B(x)}"; |
147 by (simp_tac (!simpset addsimps [domain_UN,domain_0,domain_cons]) 1); |
147 by (simp_tac (!simpset addsimps [domain_UN,domain_0,domain_cons]) 1); |
148 by (Fast_tac 1); |
148 by (Fast_tac 1); |
149 qed "domain_Sigma"; |
149 qed "domain_Sigma"; |
150 |
150 |
151 (* Theorems *) |
151 (* Theorems *) |
153 goalw Map.thy [map_emp_def] "domain(map_emp) = 0"; |
153 goalw Map.thy [map_emp_def] "domain(map_emp) = 0"; |
154 by (Fast_tac 1); |
154 by (Fast_tac 1); |
155 qed "map_domain_emp"; |
155 qed "map_domain_emp"; |
156 |
156 |
157 goalw Map.thy [map_owr_def] |
157 goalw Map.thy [map_owr_def] |
158 "!!a.b ~= 0 ==> domain(map_owr(f,a,b)) = {a} Un domain(f)"; |
158 "!!a. b ~= 0 ==> domain(map_owr(f,a,b)) = {a} Un domain(f)"; |
159 by (simp_tac (!simpset addsimps [domain_Sigma]) 1); |
159 by (simp_tac (!simpset addsimps [domain_Sigma]) 1); |
160 by (rtac equalityI 1); |
160 by (rtac equalityI 1); |
161 by (Fast_tac 1); |
161 by (Fast_tac 1); |
162 by (rtac subsetI 1); |
162 by (rtac subsetI 1); |
163 by (rtac CollectI 1); |
163 by (rtac CollectI 1); |
177 by (Fast_tac 1); |
177 by (Fast_tac 1); |
178 by (Simp_tac 1); |
178 by (Simp_tac 1); |
179 qed "map_app_owr1"; |
179 qed "map_app_owr1"; |
180 |
180 |
181 goalw Map.thy [map_app_def,map_owr_def] |
181 goalw Map.thy [map_app_def,map_owr_def] |
182 "!!a.c ~= a ==> map_app(map_owr(f,a,b),c)= map_app(f,c)"; |
182 "!!a. c ~= a ==> map_app(map_owr(f,a,b),c)= map_app(f,c)"; |
183 by (rtac (excluded_middle RS disjE) 1); |
183 by (rtac (excluded_middle RS disjE) 1); |
184 by (stac qbeta_emp 1); |
184 by (stac qbeta_emp 1); |
185 by (assume_tac 1); |
185 by (assume_tac 1); |
186 by (Fast_tac 1); |
186 by (Fast_tac 1); |
187 by (etac (qbeta RS ssubst) 1); |
187 by (etac (qbeta RS ssubst) 1); |