src/Provers/classical.ML
changeset 24021 491c68f40bc4
parent 23594 e65e466dda01
child 24218 fbf1646b267c
equal deleted inserted replaced
24020:ed4d7abffee7 24021:491c68f40bc4
   141   val del_context_unsafe_wrapper: string -> theory -> theory
   141   val del_context_unsafe_wrapper: string -> theory -> theory
   142   val get_claset: theory -> claset
   142   val get_claset: theory -> claset
   143   val get_local_claset: Proof.context -> claset
   143   val get_local_claset: Proof.context -> claset
   144   val put_local_claset: claset -> Proof.context -> Proof.context
   144   val put_local_claset: claset -> Proof.context -> Proof.context
   145   val print_local_claset: Proof.context -> unit
   145   val print_local_claset: Proof.context -> unit
       
   146   val get_cs: Context.generic -> claset
       
   147   val map_cs: (claset -> claset) -> Context.generic -> Context.generic
   146   val safe_dest: int option -> attribute
   148   val safe_dest: int option -> attribute
   147   val safe_elim: int option -> attribute
   149   val safe_elim: int option -> attribute
   148   val safe_intro: int option -> attribute
   150   val safe_intro: int option -> attribute
   149   val haz_dest: int option -> attribute
   151   val haz_dest: int option -> attribute
   150   val haz_elim: int option -> attribute
   152   val haz_elim: int option -> attribute
   858 
   860 
   859 
   861 
   860 
   862 
   861 (** claset data **)
   863 (** claset data **)
   862 
   864 
   863 (* global claset *)
   865 (* global clasets *)
   864 
   866 
   865 structure GlobalClaset = TheoryDataFun
   867 structure GlobalClaset = TheoryDataFun
   866 (
   868 (
   867   type T = claset ref * context_cs;
   869   type T = claset ref * context_cs;
   868   val empty = (ref empty_cs, empty_context_cs);
   870   val empty = (ref empty_cs, empty_context_cs);
   910   (AList.update (op =) wrapper);
   912   (AList.update (op =) wrapper);
   911 fun del_context_unsafe_wrapper name = (map_context_cs o apsnd)
   913 fun del_context_unsafe_wrapper name = (map_context_cs o apsnd)
   912   (AList.delete (op =) name);
   914   (AList.delete (op =) name);
   913 
   915 
   914 
   916 
   915 (* local claset *)
   917 (* local clasets *)
   916 
   918 
   917 structure LocalClaset = ProofDataFun
   919 structure LocalClaset = ProofDataFun
   918 (
   920 (
   919   type T = claset;
   921   type T = claset;
   920   val init = get_claset;
   922   val init = get_claset;
   925 
   927 
   926 fun local_claset_of ctxt =
   928 fun local_claset_of ctxt =
   927   context_cs ctxt (get_local_claset ctxt) (get_context_cs ctxt);
   929   context_cs ctxt (get_local_claset ctxt) (get_context_cs ctxt);
   928 
   930 
   929 val print_local_claset = print_cs o local_claset_of;
   931 val print_local_claset = print_cs o local_claset_of;
       
   932 
       
   933 
       
   934 (* generic clasets *)
       
   935 
       
   936 fun get_cs (Context.Theory thy) = claset_of thy
       
   937   | get_cs (Context.Proof ctxt) = local_claset_of ctxt;
       
   938 
       
   939 fun map_cs f (Context.Theory thy) = (change_claset_of thy f; Context.Theory thy)
       
   940   | map_cs f (Context.Proof ctxt) = Context.Proof (LocalClaset.map f ctxt);
   930 
   941 
   931 
   942 
   932 (* attributes *)
   943 (* attributes *)
   933 
   944 
   934 fun attrib f = Thm.declaration_attribute (fn th =>
   945 fun attrib f = Thm.declaration_attribute (fn th =>