src/HOL/Orderings.thy
changeset 26496 49ae9456eba9
parent 26324 456f726a11e4
child 26796 c554b77061e5
equal deleted inserted replaced
26495:dd8996960cb0 26496:49ae9456eba9
   514      | SOME thm => SOME(mk_meta_eq(thm RS @{thm linorder_class.antisym_conv2}))
   514      | SOME thm => SOME(mk_meta_eq(thm RS @{thm linorder_class.antisym_conv2}))
   515   end
   515   end
   516   handle THM _ => NONE;
   516   handle THM _ => NONE;
   517 
   517 
   518 fun add_simprocs procs thy =
   518 fun add_simprocs procs thy =
   519   (Simplifier.change_simpset_of thy (fn ss => ss
   519   Simplifier.map_simpset (fn ss => ss
   520     addsimprocs (map (fn (name, raw_ts, proc) =>
   520     addsimprocs (map (fn (name, raw_ts, proc) =>
   521       Simplifier.simproc thy name raw_ts proc)) procs); thy);
   521       Simplifier.simproc thy name raw_ts proc) procs)) thy;
   522 fun add_solver name tac thy =
   522 fun add_solver name tac =
   523   (Simplifier.change_simpset_of thy (fn ss => ss addSolver
   523   Simplifier.map_simpset (fn ss => ss addSolver
   524     (mk_solver' name (fn ss => tac (MetaSimplifier.prems_of_ss ss) (MetaSimplifier.the_context ss)))); thy);
   524     mk_solver' name (fn ss => tac (Simplifier.prems_of_ss ss) (Simplifier.the_context ss)));
   525 
   525 
   526 in
   526 in
   527   add_simprocs [
   527   add_simprocs [
   528        ("antisym le", ["(x::'a::order) <= y"], prove_antisym_le),
   528        ("antisym le", ["(x::'a::order) <= y"], prove_antisym_le),
   529        ("antisym less", ["~ (x::'a::linorder) < y"], prove_antisym_less)
   529        ("antisym less", ["~ (x::'a::linorder) < y"], prove_antisym_less)