equal
deleted
inserted
replaced
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' |