src/Sequents/prover.ML
changeset 16458 4c6fd0c01d28
parent 13105 3d1e7a199bdc
child 18708 4b3dadb4fe33
equal deleted inserted replaced
16457:e0f22edf38a5 16458:4c6fd0c01d28
   166   SELECT_GOAL (BEST_FIRST (has_fewer_prems 1, size_of_thm) 
   166   SELECT_GOAL (BEST_FIRST (has_fewer_prems 1, size_of_thm) 
   167 	       (step_tac pack 1));
   167 	       (step_tac pack 1));
   168 
   168 
   169 
   169 
   170 
   170 
   171 structure ProverArgs =
   171 structure ProverData = TheoryDataFun
   172   struct
   172 (struct
   173   val name = "Sequents/prover";
   173   val name = "Sequents/prover";
   174   type T = pack ref;
   174   type T = pack ref;
   175   val empty = ref empty_pack
   175   val empty = ref empty_pack
   176   fun copy (ref pack) = ref pack;
   176   fun copy (ref pack) = ref pack;
   177   val prep_ext = copy;
   177   val extend = copy;
   178   fun merge (ref pack1, ref pack2) = ref (merge_pack (pack1, pack2));
   178   fun merge _ (ref pack1, ref pack2) = ref (merge_pack (pack1, pack2));
   179   fun print _ (ref pack) = print_pack pack;
   179   fun print _ (ref pack) = print_pack pack;
   180   end;
   180 end);
   181 
       
   182 structure ProverData = TheoryDataFun(ProverArgs);
       
   183 
   181 
   184 val prover_setup = [ProverData.init];
   182 val prover_setup = [ProverData.init];
   185 
   183 
   186 val print_pack = ProverData.print;
   184 val print_pack = ProverData.print;
   187 val pack_ref_of_sg = ProverData.get_sg;
       
   188 val pack_ref_of = ProverData.get;
   185 val pack_ref_of = ProverData.get;
   189 
   186 
   190 (* access global pack *)
   187 (* access global pack *)
   191 
   188 
   192 val pack_of_sg = ! o pack_ref_of_sg;
   189 val pack_of = ! o pack_ref_of;
   193 val pack_of = pack_of_sg o sign_of;
       
   194 
       
   195 val pack = pack_of o Context.the_context;
   190 val pack = pack_of o Context.the_context;
   196 val pack_ref = pack_ref_of_sg o sign_of o Context.the_context;
   191 val pack_ref = pack_ref_of o Context.the_context;
   197 
   192 
   198 
   193 
   199 (* change global pack *)
   194 (* change global pack *)
   200 
   195 
   201 fun change_pack f x = pack_ref () := (f (pack (), x));
   196 fun change_pack f x = pack_ref () := (f (pack (), x));