301 lemma add_mono_Fin_le: |
301 lemma add_mono_Fin_le: |
302 "\<lbrakk>Fin y1 \<le> x1; Fin y2 \<le> x2\<rbrakk> \<Longrightarrow> Fin(y1 + y2::'a::ordered_ab_group_add) \<le> x1 + x2" |
302 "\<lbrakk>Fin y1 \<le> x1; Fin y2 \<le> x2\<rbrakk> \<Longrightarrow> Fin(y1 + y2::'a::ordered_ab_group_add) \<le> x1 + x2" |
303 by(drule (1) add_mono) simp |
303 by(drule (1) add_mono) simp |
304 |
304 |
305 global_interpretation Val_semilattice |
305 global_interpretation Val_semilattice |
306 where \<gamma> = \<gamma>_ivl and num' = num_ivl and plus' = "op +" |
306 where \<gamma> = \<gamma>_ivl and num' = num_ivl and plus' = "(+)" |
307 proof (standard, goal_cases) |
307 proof (standard, goal_cases) |
308 case 1 thus ?case by transfer (simp add: le_iff_subset) |
308 case 1 thus ?case by transfer (simp add: le_iff_subset) |
309 next |
309 next |
310 case 2 show ?case by transfer (simp add: \<gamma>_rep_def) |
310 case 2 show ?case by transfer (simp add: \<gamma>_rep_def) |
311 next |
311 next |
317 by(auto simp: empty_rep_def is_empty_rep_def) |
317 by(auto simp: empty_rep_def is_empty_rep_def) |
318 qed |
318 qed |
319 |
319 |
320 |
320 |
321 global_interpretation Val_lattice_gamma |
321 global_interpretation Val_lattice_gamma |
322 where \<gamma> = \<gamma>_ivl and num' = num_ivl and plus' = "op +" |
322 where \<gamma> = \<gamma>_ivl and num' = num_ivl and plus' = "(+)" |
323 defines aval_ivl = aval' |
323 defines aval_ivl = aval' |
324 proof (standard, goal_cases) |
324 proof (standard, goal_cases) |
325 case 1 show ?case by(simp add: \<gamma>_inf) |
325 case 1 show ?case by(simp add: \<gamma>_inf) |
326 next |
326 next |
327 case 2 show ?case unfolding bot_ivl_def by transfer simp |
327 case 2 show ?case unfolding bot_ivl_def by transfer simp |
328 qed |
328 qed |
329 |
329 |
330 global_interpretation Val_inv |
330 global_interpretation Val_inv |
331 where \<gamma> = \<gamma>_ivl and num' = num_ivl and plus' = "op +" |
331 where \<gamma> = \<gamma>_ivl and num' = num_ivl and plus' = "(+)" |
332 and test_num' = in_ivl |
332 and test_num' = in_ivl |
333 and inv_plus' = inv_plus_ivl and inv_less' = inv_less_ivl |
333 and inv_plus' = inv_plus_ivl and inv_less' = inv_less_ivl |
334 proof (standard, goal_cases) |
334 proof (standard, goal_cases) |
335 case 1 thus ?case by transfer (auto simp: \<gamma>_rep_def) |
335 case 1 thus ?case by transfer (auto simp: \<gamma>_rep_def) |
336 next |
336 next |
349 apply(simp add: \<gamma>_aboveI[of i2] \<gamma>_belowI[of i1]) |
349 apply(simp add: \<gamma>_aboveI[of i2] \<gamma>_belowI[of i1]) |
350 done |
350 done |
351 qed |
351 qed |
352 |
352 |
353 global_interpretation Abs_Int_inv |
353 global_interpretation Abs_Int_inv |
354 where \<gamma> = \<gamma>_ivl and num' = num_ivl and plus' = "op +" |
354 where \<gamma> = \<gamma>_ivl and num' = num_ivl and plus' = "(+)" |
355 and test_num' = in_ivl |
355 and test_num' = in_ivl |
356 and inv_plus' = inv_plus_ivl and inv_less' = inv_less_ivl |
356 and inv_plus' = inv_plus_ivl and inv_less' = inv_less_ivl |
357 defines inv_aval_ivl = inv_aval' |
357 defines inv_aval_ivl = inv_aval' |
358 and inv_bval_ivl = inv_bval' |
358 and inv_bval_ivl = inv_bval' |
359 and step_ivl = step' |
359 and step_ivl = step' |
383 apply transfer |
383 apply transfer |
384 apply(auto simp: below_rep_def le_iff_subset split: if_splits prod.split) |
384 apply(auto simp: below_rep_def le_iff_subset split: if_splits prod.split) |
385 by(auto simp: is_empty_rep_iff \<gamma>_rep_cases split: extended.splits) |
385 by(auto simp: is_empty_rep_iff \<gamma>_rep_cases split: extended.splits) |
386 |
386 |
387 global_interpretation Abs_Int_inv_mono |
387 global_interpretation Abs_Int_inv_mono |
388 where \<gamma> = \<gamma>_ivl and num' = num_ivl and plus' = "op +" |
388 where \<gamma> = \<gamma>_ivl and num' = num_ivl and plus' = "(+)" |
389 and test_num' = in_ivl |
389 and test_num' = in_ivl |
390 and inv_plus' = inv_plus_ivl and inv_less' = inv_less_ivl |
390 and inv_plus' = inv_plus_ivl and inv_less' = inv_less_ivl |
391 proof (standard, goal_cases) |
391 proof (standard, goal_cases) |
392 case 1 thus ?case by (rule mono_plus_ivl) |
392 case 1 thus ?case by (rule mono_plus_ivl) |
393 next |
393 next |