src/HOL/Tools/res_axioms.ML
changeset 20362 bbff23c3e2ca
parent 20292 6f2b8ed987ec
child 20373 dcb321249aa9
equal deleted inserted replaced
20361:1aaf9ebe248d 20362:bbff23c3e2ca
   345 val cnf_rules_pairs = cnf_rules_pairs_aux [];
   345 val cnf_rules_pairs = cnf_rules_pairs_aux [];
   346 
   346 
   347 
   347 
   348 (**** Convert all theorems of a claset/simpset into clauses (ResClause.clause, or ResHolClause.clause) ****)
   348 (**** Convert all theorems of a claset/simpset into clauses (ResClause.clause, or ResHolClause.clause) ****)
   349 
   349 
   350 (*These should include any plausibly-useful theorems, especially if they need
       
   351   Skolem functions. FIXME: this list is VERY INCOMPLETE*)
       
   352 val default_initial_thms = map pairname
       
   353   [refl_def, antisym_def, sym_def, trans_def, single_valued_def,
       
   354    subset_refl, Union_least, Inter_greatest];
       
   355 
       
   356 (*Setup function: takes a theory and installs ALL simprules and claset rules 
   350 (*Setup function: takes a theory and installs ALL simprules and claset rules 
   357   into the clause cache*)
   351   into the clause cache*)
   358 fun clause_cache_setup thy =
   352 fun clause_cache_setup thy =
   359   let val simps = simpset_rules_of_thy thy
   353   let val simps = simpset_rules_of_thy thy
   360       and clas  = claset_rules_of_thy thy
   354       and clas  = claset_rules_of_thy thy
   361       and thy0  = List.foldl skolem_cache thy default_initial_thms
   355       val thy1  = List.foldl skolem_cache thy clas
   362       val thy1  = List.foldl skolem_cache thy0 clas
       
   363   in List.foldl skolem_cache thy1 simps end;
   356   in List.foldl skolem_cache thy1 simps end;
   364 (*Could be duplicate theorem names, due to multiple attributes*)
   357 (*Could be duplicate theorem names, due to multiple attributes*)
   365   
   358   
   366 
   359 
   367 (*** meson proof methods ***)
   360 (*** meson proof methods ***)