src/Provers/clasimp.ML
changeset 44890 22f665a2e91c
parent 43331 01f051619eee
child 45375 7fe19930dfc9
equal deleted inserted replaced
44889:340df9f3491f 44890:22f665a2e91c
    21   val addss: Proof.context -> Proof.context
    21   val addss: Proof.context -> Proof.context
    22   val clarsimp_tac: Proof.context -> int -> tactic
    22   val clarsimp_tac: Proof.context -> int -> tactic
    23   val mk_auto_tac: Proof.context -> int -> int -> tactic
    23   val mk_auto_tac: Proof.context -> int -> int -> tactic
    24   val auto_tac: Proof.context -> tactic
    24   val auto_tac: Proof.context -> tactic
    25   val force_tac: Proof.context -> int -> tactic
    25   val force_tac: Proof.context -> int -> tactic
    26   val fast_simp_tac: Proof.context -> int -> tactic
    26   val fast_force_tac: Proof.context -> int -> tactic
    27   val slow_simp_tac: Proof.context -> int -> tactic
    27   val slow_simp_tac: Proof.context -> int -> tactic
    28   val best_simp_tac: Proof.context -> int -> tactic
    28   val best_simp_tac: Proof.context -> int -> tactic
    29   val iff_add: attribute
    29   val iff_add: attribute
    30   val iff_add': attribute
    30   val iff_add': attribute
    31   val iff_del: attribute
    31   val iff_del: attribute
   167   end;
   167   end;
   168 
   168 
   169 
   169 
   170 (* basic combinations *)
   170 (* basic combinations *)
   171 
   171 
   172 val fast_simp_tac = Classical.fast_tac o addss;
   172 fun fast_simp_tac ctxt i =
       
   173   let val _ = legacy_feature "Old name 'fastsimp' - use 'fastforce' instead"
       
   174   in Classical.fast_tac (addss ctxt) i end;
       
   175 
       
   176 val fast_force_tac = Classical.fast_tac o addss;
   173 val slow_simp_tac = Classical.slow_tac o addss;
   177 val slow_simp_tac = Classical.slow_tac o addss;
   174 val best_simp_tac = Classical.best_tac o addss;
   178 val best_simp_tac = Classical.best_tac o addss;
   175 
       
   176 
       
   177 
   179 
   178 (** concrete syntax **)
   180 (** concrete syntax **)
   179 
   181 
   180 (* attributes *)
   182 (* attributes *)
   181 
   183 
   213 
   215 
   214 (* theory setup *)
   216 (* theory setup *)
   215 
   217 
   216 val clasimp_setup =
   218 val clasimp_setup =
   217   Attrib.setup @{binding iff} iff_att "declaration of Simplifier / Classical rules" #>
   219   Attrib.setup @{binding iff} iff_att "declaration of Simplifier / Classical rules" #>
   218   Method.setup @{binding fastsimp} (clasimp_method' fast_simp_tac) "combined fast and simp" #>
   220   Method.setup @{binding fastsimp} (clasimp_method' fast_simp_tac) "combined fast and simp (legacy name)" #>
       
   221   Method.setup @{binding fastforce} (clasimp_method' fast_force_tac) "combined fast and simp" #>
   219   Method.setup @{binding slowsimp} (clasimp_method' slow_simp_tac) "combined slow and simp" #>
   222   Method.setup @{binding slowsimp} (clasimp_method' slow_simp_tac) "combined slow and simp" #>
   220   Method.setup @{binding bestsimp} (clasimp_method' best_simp_tac) "combined best and simp" #>
   223   Method.setup @{binding bestsimp} (clasimp_method' best_simp_tac) "combined best and simp" #>
   221   Method.setup @{binding force} (clasimp_method' force_tac) "force" #>
   224   Method.setup @{binding force} (clasimp_method' force_tac) "force" #>
   222   Method.setup @{binding auto} auto_method "auto" #>
   225   Method.setup @{binding auto} auto_method "auto" #>
   223   Method.setup @{binding clarsimp} (clasimp_method' (CHANGED_PROP oo clarsimp_tac))
   226   Method.setup @{binding clarsimp} (clasimp_method' (CHANGED_PROP oo clarsimp_tac))