equal
deleted
inserted
replaced
31 val mk_liftN_in_bd_tac: int -> thm -> thm -> thm -> tactic |
31 val mk_liftN_in_bd_tac: int -> thm -> thm -> thm -> tactic |
32 val mk_liftN_set_bd_tac: thm -> tactic |
32 val mk_liftN_set_bd_tac: thm -> tactic |
33 |
33 |
34 val mk_permute_in_alt_tac: ''a list -> ''a list -> tactic |
34 val mk_permute_in_alt_tac: ''a list -> ''a list -> tactic |
35 val mk_permute_in_bd_tac: ''a list -> ''a list -> thm -> thm -> thm -> tactic |
35 val mk_permute_in_bd_tac: ''a list -> ''a list -> thm -> thm -> thm -> tactic |
|
36 |
|
37 val mk_map_wpull_tac: thm -> thm list -> thm -> tactic |
|
38 val mk_simple_wit_tac: thm list -> tactic |
36 end; |
39 end; |
37 |
40 |
38 structure BNF_Comp_Tactics : BNF_COMP_TACTICS = |
41 structure BNF_Comp_Tactics : BNF_COMP_TACTICS = |
39 struct |
42 struct |
40 |
43 |
389 rtac @{thm ctwo_Cnotzero} THEN' |
392 rtac @{thm ctwo_Cnotzero} THEN' |
390 rtac disjI1 THEN' |
393 rtac disjI1 THEN' |
391 TRY o rtac @{thm csum_Cnotzero2} THEN' |
394 TRY o rtac @{thm csum_Cnotzero2} THEN' |
392 rtac @{thm ctwo_Cnotzero}) 1; |
395 rtac @{thm ctwo_Cnotzero}) 1; |
393 |
396 |
|
397 fun mk_map_wpull_tac comp_in_alt inner_map_wpulls outer_map_wpull = |
|
398 (rtac (@{thm wpull_cong} OF (replicate 3 comp_in_alt)) THEN' rtac outer_map_wpull) 1 THEN |
|
399 WRAP (fn thm => rtac thm 1 THEN REPEAT_DETERM (atac 1)) (K all_tac) inner_map_wpulls all_tac THEN |
|
400 TRY (REPEAT_DETERM (atac 1 ORELSE rtac @{thm wpull_id} 1)); |
|
401 |
|
402 fun mk_simple_wit_tac wit_thms = ALLGOALS (atac ORELSE' eresolve_tac (@{thm emptyE} :: wit_thms)); |
|
403 |
394 end; |
404 end; |