equal
deleted
inserted
replaced
56 "a +o B == {c. EX b:B. c = a + b}" |
56 "a +o B == {c. EX b:B. c = a + b}" |
57 |
57 |
58 elt_set_times :: "'a::times => 'a set => 'a set" (infixl "*o" 80) |
58 elt_set_times :: "'a::times => 'a set => 'a set" (infixl "*o" 80) |
59 "a *o B == {c. EX b:B. c = a * b}" |
59 "a *o B == {c. EX b:B. c = a * b}" |
60 |
60 |
61 syntax |
61 abbreviation (inout) |
62 "elt_set_eq" :: "'a => 'a set => bool" (infix "=o" 50) |
62 elt_set_eq :: "'a => 'a set => bool" (infix "=o" 50) |
63 |
63 "x =o A == x : A" |
64 translations |
|
65 "x =o A" => "x : A" |
|
66 |
64 |
67 instance fun :: (type,semigroup_add)semigroup_add |
65 instance fun :: (type,semigroup_add)semigroup_add |
68 apply intro_classes |
66 by default (auto simp add: func_plus add_assoc) |
69 apply (auto simp add: func_plus add_assoc) |
|
70 done |
|
71 |
67 |
72 instance fun :: (type,comm_monoid_add)comm_monoid_add |
68 instance fun :: (type,comm_monoid_add)comm_monoid_add |
73 apply intro_classes |
69 by default (auto simp add: func_zero func_plus add_ac) |
74 apply (auto simp add: func_zero func_plus add_ac) |
|
75 done |
|
76 |
70 |
77 instance fun :: (type,ab_group_add)ab_group_add |
71 instance fun :: (type,ab_group_add)ab_group_add |
78 apply intro_classes |
72 apply intro_classes |
79 apply (simp add: func_minus func_plus func_zero) |
73 apply (simp add: func_minus func_plus func_zero) |
80 apply (simp add: func_minus func_plus func_diff diff_minus) |
74 apply (simp add: func_minus func_plus func_diff diff_minus) |
348 elt_set_plus_def elt_set_times_def set_times |
342 elt_set_plus_def elt_set_times_def set_times |
349 set_plus ring_distrib) |
343 set_plus ring_distrib) |
350 apply auto |
344 apply auto |
351 done |
345 done |
352 |
346 |
353 theorems set_times_plus_distribs = set_times_plus_distrib |
347 theorems set_times_plus_distribs = |
|
348 set_times_plus_distrib |
354 set_times_plus_distrib2 |
349 set_times_plus_distrib2 |
355 |
350 |
356 lemma set_neg_intro: "(a::'a::ring_1) : (- 1) *o C ==> |
351 lemma set_neg_intro: "(a::'a::ring_1) : (- 1) *o C ==> |
357 - a : C" |
352 - a : C" |
358 by (auto simp add: elt_set_times_def) |
353 by (auto simp add: elt_set_times_def) |