src/HOL/Tools/record_package.ML
changeset 20049 f48c4a3a34bc
parent 19841 f2fa72c13186
child 20071 8f3e1ddb50e6
equal deleted inserted replaced
20048:a7964311f1fb 20049:f48c4a3a34bc
   816 val record_quick_and_dirty_sensitive = ref false;
   816 val record_quick_and_dirty_sensitive = ref false;
   817 
   817 
   818 
   818 
   819 fun quick_and_dirty_prove stndrd thy asms prop tac =
   819 fun quick_and_dirty_prove stndrd thy asms prop tac =
   820   if !record_quick_and_dirty_sensitive andalso !quick_and_dirty
   820   if !record_quick_and_dirty_sensitive andalso !quick_and_dirty
   821   then Goal.prove thy [] [] (Logic.list_implies (map Logic.varify asms,Logic.varify prop))
   821   then Goal.prove (ProofContext.init thy) [] []
       
   822         (Logic.list_implies (map Logic.varify asms,Logic.varify prop))
   822         (K (SkipProof.cheat_tac HOL.thy))
   823         (K (SkipProof.cheat_tac HOL.thy))
   823         (* standard can take quite a while for large records, thats why
   824         (* standard can take quite a while for large records, thats why
   824          * we varify the proposition manually here.*)
   825          * we varify the proposition manually here.*)
   825   else let val prf = Goal.prove thy [] asms prop tac;
   826   else let val prf = Goal.prove (ProofContext.init thy) [] asms prop tac;
   826        in if stndrd then standard prf else prf end;
   827        in if stndrd then standard prf else prf end;
   827 
   828 
   828 fun quick_and_dirty_prf noopt opt () =
   829 fun quick_and_dirty_prf noopt opt () =
   829       if !record_quick_and_dirty_sensitive andalso !quick_and_dirty
   830       if !record_quick_and_dirty_sensitive andalso !quick_and_dirty
   830       then noopt ()
   831       then noopt ()