equal
  deleted
  inserted
  replaced
  
    
    
   491 text \<open>  | 
   491 text \<open>  | 
   492   The function @{ML all_elims} takes a list of (certified) terms and instantiates | 
   492   The function @{ML all_elims} takes a list of (certified) terms and instantiates | 
   493   theorems of the form @{thm [source] all_elims_test}. For example we can instantiate | 
   493   theorems of the form @{thm [source] all_elims_test}. For example we can instantiate | 
   494   the quantifiers in this theorem with @{term a}, @{term b} and @{term c} as follows: | 
   494   the quantifiers in this theorem with @{term a}, @{term b} and @{term c} as follows: | 
   495   | 
   495   | 
   496   @{ML_response_fake [display, gray] | 
   496   @{ML_matchresult_fake [display, gray] | 
   497 "let  | 
   497 "let  | 
   498   val ctrms = [@{cterm \"a::nat\"}, @{cterm \"b::nat\"}, @{cterm \"c::nat\"}] | 
   498   val ctrms = [@{cterm \"a::nat\"}, @{cterm \"b::nat\"}, @{cterm \"c::nat\"}] | 
   499   val new_thm = all_elims ctrms @{thm all_elims_test} | 
   499   val new_thm = all_elims ctrms @{thm all_elims_test} | 
   500 in  | 
   500 in  | 
   501   pwriteln (pretty_thm_no_vars @{context} new_thm) | 
   501   pwriteln (pretty_thm_no_vars @{context} new_thm) | 
   508   | 
   508   | 
   509   Similarly, the function @{ML imp_elims} eliminates preconditions from implications.  | 
   509   Similarly, the function @{ML imp_elims} eliminates preconditions from implications.  | 
   510   For example we can eliminate the preconditions \<open>A\<close> and \<open>B\<close> from  | 
   510   For example we can eliminate the preconditions \<open>A\<close> and \<open>B\<close> from  | 
   511   @{thm [source] imp_elims_test}: | 
   511   @{thm [source] imp_elims_test}: | 
   512   | 
   512   | 
   513   @{ML_response_fake [display, gray] | 
   513   @{ML_matchresult_fake [display, gray] | 
   514 "let  | 
   514 "let  | 
   515   val res = imp_elims @{thms imp_elims_test'} @{thm imp_elims_test} | 
   515   val res = imp_elims @{thms imp_elims_test'} @{thm imp_elims_test} | 
   516 in  | 
   516 in  | 
   517   pwriteln (pretty_thm_no_vars @{context} res) | 
   517   pwriteln (pretty_thm_no_vars @{context} res) | 
   518 end"  | 
   518 end"  |