src/Provers/simplifier.ML
changeset 7423 28b48fcb0d55
parent 7273 d80b9be87535
child 7558 08b2d5c94b8a
equal deleted inserted replaced
7422:c63d619286a3 7423:28b48fcb0d55
   471 val simp_args = Method.only_sectioned_args simp_modifiers';
   471 val simp_args = Method.only_sectioned_args simp_modifiers';
   472 
   472 
   473 fun simp_meth thin cut tac ctxt = Method.METHOD (fn facts =>
   473 fun simp_meth thin cut tac ctxt = Method.METHOD (fn facts =>
   474   FIRSTGOAL
   474   FIRSTGOAL
   475     ((if thin then REPEAT_DETERM o etac Drule.thin_rl else K all_tac)
   475     ((if thin then REPEAT_DETERM o etac Drule.thin_rl else K all_tac)
   476       THEN' (if cut then Method.same_tac facts else K all_tac)
   476       THEN' (if cut then Method.insert_tac facts else K all_tac)
   477       THEN' tac (get_local_simpset ctxt)));
   477       THEN' tac (get_local_simpset ctxt)));
   478 
   478 
   479 val simp_method = simp_args ooo simp_meth;
   479 val simp_method = simp_args ooo simp_meth;
   480 
   480 
   481 
   481 
   482 (* setup_methods *)
   482 (* setup_methods *)
   483 
   483 
   484 val setup_methods = Method.add_methods
   484 val setup_methods = Method.add_methods
   485  [(simpN,               simp_method true true (CHANGED oo asm_full_simp_tac), "simplification"),
   485  [(simpN,               simp_method true true (CHANGED oo asm_full_simp_tac),
       
   486     "full simplification (including facts, excluding assumptions)"),
   486   (asm_simpN,           simp_method false true (CHANGED oo asm_full_simp_tac),
   487   (asm_simpN,           simp_method false true (CHANGED oo asm_full_simp_tac),
   487     "simplification (including assumption)"),
   488     "full simplification (including facts and assumptions)"),
   488   ("simp_tac",          simp_method false false simp_tac, "simp_tac (improper!)"),
   489   ("simp_tac",          simp_method false false simp_tac, "simp_tac (improper!)"),
   489   ("asm_simp_tac",      simp_method false false asm_simp_tac, "asm_simp_tac (improper!)"),
   490   ("asm_simp_tac",      simp_method false false asm_simp_tac, "asm_simp_tac (improper!)"),
   490   ("full_simp_tac",     simp_method false false full_simp_tac, "full_simp_tac (improper!)"),
   491   ("full_simp_tac",     simp_method false false full_simp_tac, "full_simp_tac (improper!)"),
   491   ("asm_full_simp_tac", simp_method false false asm_full_simp_tac, "asm_full_simp_tac (improper!)"),
   492   ("asm_full_simp_tac", simp_method false false asm_full_simp_tac, "asm_full_simp_tac (improper!)"),
   492   ("asm_lr_simp_tac",   simp_method false false asm_lr_simp_tac, "asm_lr_simp_tac (improper!)")];
   493   ("asm_lr_simp_tac",   simp_method false false asm_lr_simp_tac, "asm_lr_simp_tac (improper!)")];