src/Pure/simplifier.ML
changeset 45620 f2a587696afb
parent 45375 7fe19930dfc9
child 45625 750c5a47400b
equal deleted inserted replaced
45619:76c5f277b234 45620:f2a587696afb
    35   val clear_ss: simpset -> simpset
    35   val clear_ss: simpset -> simpset
    36   val debug_bounds: bool Unsynchronized.ref
    36   val debug_bounds: bool Unsynchronized.ref
    37   val prems_of: simpset -> thm list
    37   val prems_of: simpset -> thm list
    38   val add_simp: thm -> simpset -> simpset
    38   val add_simp: thm -> simpset -> simpset
    39   val del_simp: thm -> simpset -> simpset
    39   val del_simp: thm -> simpset -> simpset
       
    40   val add_eqcong: thm -> simpset -> simpset
       
    41   val del_eqcong: thm -> simpset -> simpset
       
    42   val add_cong: thm -> simpset -> simpset
       
    43   val del_cong: thm -> simpset -> simpset
    40   val add_prems: thm list -> simpset -> simpset
    44   val add_prems: thm list -> simpset -> simpset
    41   val inherit_context: simpset -> simpset -> simpset
    45   val inherit_context: simpset -> simpset -> simpset
    42   val the_context: simpset -> Proof.context
    46   val the_context: simpset -> Proof.context
    43   val context: Proof.context -> simpset -> simpset
    47   val context: Proof.context -> simpset -> simpset
    44   val global_context: theory -> simpset -> simpset
    48   val global_context: theory -> simpset -> simpset
    52   val full_rewrite: simpset -> conv
    56   val full_rewrite: simpset -> conv
    53   val asm_lr_rewrite: simpset -> conv
    57   val asm_lr_rewrite: simpset -> conv
    54   val asm_full_rewrite: simpset -> conv
    58   val asm_full_rewrite: simpset -> conv
    55   val get_ss: Context.generic -> simpset
    59   val get_ss: Context.generic -> simpset
    56   val map_ss: (simpset -> simpset) -> Context.generic -> Context.generic
    60   val map_ss: (simpset -> simpset) -> Context.generic -> Context.generic
    57   val attrib: (simpset * thm list -> simpset) -> attribute
    61   val attrib: (thm -> simpset -> simpset) -> attribute
    58   val simp_add: attribute
    62   val simp_add: attribute
    59   val simp_del: attribute
    63   val simp_del: attribute
    60   val cong_add: attribute
    64   val cong_add: attribute
    61   val cong_del: attribute
    65   val cong_del: attribute
    62   val check_simproc: Proof.context -> xstring * Position.T -> string
    66   val check_simproc: Proof.context -> xstring * Position.T -> string
   125 
   129 
   126 (** simpset data **)
   130 (** simpset data **)
   127 
   131 
   128 (* attributes *)
   132 (* attributes *)
   129 
   133 
   130 fun attrib f = Thm.declaration_attribute (fn th => map_ss (fn ss => f (ss, [th])));
   134 fun attrib f = Thm.declaration_attribute (map_ss o f);
   131 
   135 
   132 val simp_add = attrib (op addsimps);
   136 val simp_add = attrib add_simp;
   133 val simp_del = attrib (op delsimps);
   137 val simp_del = attrib del_simp;
   134 val cong_add = attrib (op addcongs);
   138 val cong_add = attrib add_cong;
   135 val cong_del = attrib (op delcongs);
   139 val cong_del = attrib del_cong;
   136 
   140 
   137 
   141 
   138 (* local simpset *)
   142 (* local simpset *)
   139 
   143 
   140 fun map_simpset f = Context.proof_map (map_ss f);
   144 fun map_simpset f = Context.proof_map (map_ss f);