src/HOL/Codatatype/Tools/bnf_sugar_tactics.ML
changeset 49020 f379cf5d71bd
child 49022 005ce926a932
equal deleted inserted replaced
49019:fc4decdba5ce 49020:f379cf5d71bd
       
     1 (*  Title:      HOL/Codatatype/Tools/bnf_sugar_tactics.ML
       
     2     Author:     Jasmin Blanchette, TU Muenchen
       
     3     Copyright   2012
       
     4 
       
     5 Tactics for sugar on top of a BNF.
       
     6 *)
       
     7 
       
     8 signature BNF_SUGAR_TACTICS =
       
     9 sig
       
    10   val mk_nchotomy_tac: int -> thm -> tactic
       
    11 end;
       
    12 
       
    13 structure BNF_Sugar_Tactics : BNF_SUGAR_TACTICS =
       
    14 struct
       
    15 
       
    16 open BNF_FP_Util
       
    17 
       
    18 fun mk_nchotomy_tac n exhaust =
       
    19   (rtac allI THEN' rtac exhaust THEN'
       
    20    EVERY' (maps (fn i => [rtac (mk_disjIN n i), REPEAT_DETERM o rtac exI, atac]) (1 upto n))) 1;
       
    21 
       
    22 end;