equal
deleted
inserted
replaced
84 |
84 |
85 val mk_conjIN: int -> thm |
85 val mk_conjIN: int -> thm |
86 val mk_nthI: int -> int -> thm |
86 val mk_nthI: int -> int -> thm |
87 val mk_nth_conv: int -> int -> thm |
87 val mk_nth_conv: int -> int -> thm |
88 val mk_ordLeq_csum: int -> int -> thm -> thm |
88 val mk_ordLeq_csum: int -> int -> thm -> thm |
|
89 val mk_pointful: Proof.context -> thm -> thm |
89 val mk_rel_funDN: int -> thm -> thm |
90 val mk_rel_funDN: int -> thm -> thm |
90 val mk_rel_funDN_rotated: int -> thm -> thm |
91 val mk_rel_funDN_rotated: int -> thm -> thm |
91 val mk_sym: thm -> thm |
92 val mk_sym: thm -> thm |
92 val mk_trans: thm -> thm -> thm |
93 val mk_trans: thm -> thm -> thm |
93 val mk_UnIN: int -> int -> thm |
94 val mk_UnIN: int -> int -> thm |
358 val mk_transp = mk_pred @{const_name transp}; |
359 val mk_transp = mk_pred @{const_name transp}; |
359 |
360 |
360 fun mk_trans thm1 thm2 = trans OF [thm1, thm2]; |
361 fun mk_trans thm1 thm2 = trans OF [thm1, thm2]; |
361 fun mk_sym thm = thm RS sym; |
362 fun mk_sym thm = thm RS sym; |
362 |
363 |
363 (*TODO: antiquote heavily used theorems once*) |
|
364 val prod_injectD = @{thm iffD1[OF prod.inject]}; |
364 val prod_injectD = @{thm iffD1[OF prod.inject]}; |
365 val prod_injectI = @{thm iffD2[OF prod.inject]}; |
365 val prod_injectI = @{thm iffD2[OF prod.inject]}; |
366 val ctrans = @{thm ordLeq_transitive}; |
366 val ctrans = @{thm ordLeq_transitive}; |
367 val id_apply = @{thm id_apply}; |
367 val id_apply = @{thm id_apply}; |
368 val meta_mp = @{thm meta_mp}; |
368 val meta_mp = @{thm meta_mp}; |
372 val rel_funI = @{thm rel_funI}; |
372 val rel_funI = @{thm rel_funI}; |
373 val set_mp = @{thm set_mp}; |
373 val set_mp = @{thm set_mp}; |
374 val set_rev_mp = @{thm set_rev_mp}; |
374 val set_rev_mp = @{thm set_rev_mp}; |
375 val subset_UNIV = @{thm subset_UNIV}; |
375 val subset_UNIV = @{thm subset_UNIV}; |
376 |
376 |
|
377 fun mk_pointful ctxt thm = unfold_thms ctxt [o_apply] (thm RS fun_cong); |
|
378 |
377 fun mk_nthN 1 t 1 = t |
379 fun mk_nthN 1 t 1 = t |
378 | mk_nthN _ t 1 = HOLogic.mk_fst t |
380 | mk_nthN _ t 1 = HOLogic.mk_fst t |
379 | mk_nthN 2 t 2 = HOLogic.mk_snd t |
381 | mk_nthN 2 t 2 = HOLogic.mk_snd t |
380 | mk_nthN n t m = mk_nthN (n - 1) (HOLogic.mk_snd t) (m - 1); |
382 | mk_nthN n t m = mk_nthN (n - 1) (HOLogic.mk_snd t) (m - 1); |
381 |
383 |