equal
deleted
inserted
replaced
115 |
115 |
116 val prems = goalw Set.thy [subset_def] "(!!x. x:A ==> x:B) ==> A <= B"; |
116 val prems = goalw Set.thy [subset_def] "(!!x. x:A ==> x:B) ==> A <= B"; |
117 by (REPEAT (ares_tac (prems @ [ballI]) 1)); |
117 by (REPEAT (ares_tac (prems @ [ballI]) 1)); |
118 qed "subsetI"; |
118 qed "subsetI"; |
119 |
119 |
120 Blast.overload ("op <=", domain_type); (*The <= relation is overloaded*) |
120 Blast.overloaded ("op <=", domain_type); (*The <= relation is overloaded*) |
121 |
121 |
122 (*While (:) is not, its type must be kept |
122 (*While (:) is not, its type must be kept |
123 for overloading of = to work.*) |
123 for overloading of = to work.*) |
124 Blast.overload ("op :", domain_type); |
124 Blast.overloaded ("op :", domain_type); |
125 seq (fn a => Blast.overload (a, HOLogic.dest_setT o domain_type)) |
125 seq (fn a => Blast.overloaded (a, HOLogic.dest_setT o domain_type)) |
126 ["Ball", "Bex"]; |
126 ["Ball", "Bex"]; |
127 (*need UNION, INTER also?*) |
127 (*need UNION, INTER also?*) |
128 |
128 |
129 |
129 |
130 (*Rule in Modus Ponens style*) |
130 (*Rule in Modus Ponens style*) |