equal
deleted
inserted
replaced
226 |
226 |
227 Goal "[| i<j; j<k |] ==> i<k"; |
227 Goal "[| i<j; j<k |] ==> i<k"; |
228 by (blast_tac (claset() addSIs [ltI] addSEs [ltE] addIs [Ord_trans]) 1); |
228 by (blast_tac (claset() addSIs [ltI] addSEs [ltE] addIs [Ord_trans]) 1); |
229 qed "lt_trans"; |
229 qed "lt_trans"; |
230 |
230 |
231 Goalw [lt_def] "[| i<j; j<i |] ==> P"; |
231 Goalw [lt_def] "i<j ==> ~ (j<i)"; |
232 by (REPEAT (eresolve_tac [asm_rl, conjE, mem_asym] 1)); |
232 by (blast_tac (claset() addEs [mem_asym]) 1); |
233 qed "lt_asym"; |
233 qed "lt_not_sym"; |
|
234 |
|
235 (* [| i<j; ~P ==> j<i |] ==> P *) |
|
236 bind_thm ("lt_asym", lt_not_sym RS swap); |
234 |
237 |
235 qed_goal "lt_irrefl" Ordinal.thy "i<i ==> P" |
238 qed_goal "lt_irrefl" Ordinal.thy "i<i ==> P" |
236 (fn [major]=> [ (rtac (major RS (major RS lt_asym)) 1) ]); |
239 (fn [major]=> [ (rtac (major RS (major RS lt_asym)) 1) ]); |
237 |
240 |
238 qed_goal "lt_not_refl" Ordinal.thy "~ i<i" |
241 qed_goal "lt_not_refl" Ordinal.thy "~ i<i" |
281 |
284 |
282 AddIs [le_refl]; |
285 AddIs [le_refl]; |
283 AddSDs [le0D]; |
286 AddSDs [le0D]; |
284 Addsimps [le0_iff]; |
287 Addsimps [le0_iff]; |
285 |
288 |
286 (*blast_tac will NOT see lt_asym*) |
|
287 val le_cs = claset() addSIs [leCI] addSEs [leE] addEs [lt_asym]; |
289 val le_cs = claset() addSIs [leCI] addSEs [leE] addEs [lt_asym]; |
288 |
290 |
289 |
291 |
290 (*** Natural Deduction rules for Memrel ***) |
292 (*** Natural Deduction rules for Memrel ***) |
291 |
293 |