src/HOL/Library/normarith.ML
changeset 36936 c52d1c130898
parent 36753 5cf4e9128f22
equal deleted inserted replaced
36935:a3715d7ff337 36936:c52d1c130898
   180 
   180 
   181 fun sub_conv cv ct = (comb_conv cv else_conv absc cv) ct;
   181 fun sub_conv cv ct = (comb_conv cv else_conv absc cv) ct;
   182 fun botc1 conv ct = 
   182 fun botc1 conv ct = 
   183   ((sub_conv (botc1 conv)) then_conv (conv else_conv all_conv)) ct;
   183   ((sub_conv (botc1 conv)) then_conv (conv else_conv all_conv)) ct;
   184 
   184 
   185  fun rewrs_conv eqs ct = first_conv (map rewr_conv eqs) ct;
       
   186  val apply_pth1 = rewr_conv @{thm pth_1};
   185  val apply_pth1 = rewr_conv @{thm pth_1};
   187  val apply_pth2 = rewr_conv @{thm pth_2};
   186  val apply_pth2 = rewr_conv @{thm pth_2};
   188  val apply_pth3 = rewr_conv @{thm pth_3};
   187  val apply_pth3 = rewr_conv @{thm pth_3};
   189  val apply_pth4 = rewrs_conv @{thms pth_4};
   188  val apply_pth4 = rewrs_conv @{thms pth_4};
   190  val apply_pth5 = rewr_conv @{thm pth_5};
   189  val apply_pth5 = rewr_conv @{thm pth_5};
   331         (fn t => null (FuncUtil.Ctermfunc.dom (vector_lincomb t))) (map snd rawdests)
   330         (fn t => null (FuncUtil.Ctermfunc.dom (vector_lincomb t))) (map snd rawdests)
   332 
   331 
   333   in fst (RealArith.real_linear_prover translator
   332   in fst (RealArith.real_linear_prover translator
   334         (map (fn t => instantiate ([(tv_n, ctyp_of_term t)],[]) pth_zero)
   333         (map (fn t => instantiate ([(tv_n, ctyp_of_term t)],[]) pth_zero)
   335             zerodests,
   334             zerodests,
   336         map (fconv_rule (try_conv (More_Conv.top_sweep_conv (K norm_canon_conv) ctxt) then_conv
   335         map (fconv_rule (try_conv (Conv.top_sweep_conv (K norm_canon_conv) ctxt) then_conv
   337                        arg_conv (arg_conv real_poly_conv))) ges',
   336                        arg_conv (arg_conv real_poly_conv))) ges',
   338         map (fconv_rule (try_conv (More_Conv.top_sweep_conv (K norm_canon_conv) ctxt) then_conv 
   337         map (fconv_rule (try_conv (Conv.top_sweep_conv (K norm_canon_conv) ctxt) then_conv 
   339                        arg_conv (arg_conv real_poly_conv))) gts))
   338                        arg_conv (arg_conv real_poly_conv))) gts))
   340   end
   339   end
   341 in val real_vector_combo_prover = real_vector_combo_prover
   340 in val real_vector_combo_prover = real_vector_combo_prover
   342 end;
   341 end;
   343 
   342