src/HOL/Analysis/metric_arith.ML
changeset 74630 779ae499ca8b
parent 74629 9264ef3a2ba3
child 74631 f1099c7330b7
equal deleted inserted replaced
74629:9264ef3a2ba3 74630:779ae499ca8b
   215     (K (trace_tac ctxt "Embedding into \<real>\<^sup>n") THEN'
   215     (K (trace_tac ctxt "Embedding into \<real>\<^sup>n") THEN'
   216       CONVERSION (Conv.top_sweep_rewrs_conv (eq1 @ eq2) ctxt)) i
   216       CONVERSION (Conv.top_sweep_rewrs_conv (eq1 @ eq2) ctxt)) i
   217   end)
   217   end)
   218 
   218 
   219 (* decision procedure for linear real arithmetic *)
   219 (* decision procedure for linear real arithmetic *)
   220 fun lin_real_arith_tac ctxt metric_ty i goal =
   220 fun lin_real_arith_tac ctxt metric_ty = CSUBGOAL (fn (goal, i) =>
   221   let
   221   let
   222     val dist_thms = augment_dist_pos metric_ty (Thm.cprem_of goal 1)
   222     val dist_thms = augment_dist_pos metric_ty goal
   223     val ctxt' = argo_trace_ctxt ctxt
   223     val ctxt' = argo_trace_ctxt ctxt
   224   in (Argo_Tactic.argo_tac ctxt' dist_thms) i goal end
   224   in Argo_Tactic.argo_tac ctxt' dist_thms i end)
   225 
   225 
   226 fun basic_metric_arith_tac ctxt metric_ty =
   226 fun basic_metric_arith_tac ctxt metric_ty =
   227   HEADGOAL (dist_refl_sym_tac ctxt THEN'
   227   HEADGOAL (dist_refl_sym_tac ctxt THEN'
   228   IF_UNSOLVED o (embedding_tac ctxt metric_ty) THEN'
   228   IF_UNSOLVED o (embedding_tac ctxt metric_ty) THEN'
   229   IF_UNSOLVED o (pre_arith_tac ctxt) THEN'
   229   IF_UNSOLVED o (pre_arith_tac ctxt) THEN'