src/HOL/Matrix/matrixlp.ML
changeset 46531 eff798e48efc
parent 44121 44adaa6db327
child 46540 5522e28a566e
equal deleted inserted replaced
46530:d5d14046686f 46531:eff798e48efc
    49         lp_dual_estimate_prt_primitive certificate
    49         lp_dual_estimate_prt_primitive certificate
    50     end
    50     end
    51 
    51 
    52 end
    52 end
    53 
    53 
    54 fun prep ths = ComputeHOL.prep_thms ths
       
    55 
       
    56 fun inst_tvar ty thm =
       
    57     let
       
    58         val certT = Thm.ctyp_of (Thm.theory_of_thm thm);
       
    59         val ord = prod_ord (prod_ord string_ord int_ord) (list_ord string_ord)
       
    60         val v = TVar (hd (sort ord (Misc_Legacy.term_tvars (prop_of thm))))
       
    61     in
       
    62         Drule.export_without_context (Thm.instantiate ([(certT v, certT ty)], []) thm)
       
    63     end
       
    64 
       
    65 fun inst_tvars [] thms = thms
       
    66   | inst_tvars (ty::tys) thms = inst_tvars tys (map (inst_tvar ty) thms)
       
    67 
       
    68 local
    54 local
    69     val ths = ComputeHOL.prep_thms @{thms "ComputeHOL.compute_list_case" "ComputeHOL.compute_let"
    55     val ths = ComputeHOL.prep_thms @{thms "ComputeHOL.compute_list_case" "ComputeHOL.compute_let"
    70       "ComputeHOL.compute_if" "ComputeFloat.arith" "SparseMatrix.sparse_row_matrix_arith_simps"
    56       "ComputeHOL.compute_if" "ComputeFloat.arith" "SparseMatrix.sparse_row_matrix_arith_simps"
    71       "ComputeHOL.compute_bool" "ComputeHOL.compute_pair"
    57       "ComputeHOL.compute_bool" "ComputeHOL.compute_pair"
    72       "SparseMatrix.sorted_sp_simps" "ComputeNumeral.number_norm"
    58       "SparseMatrix.sorted_sp_simps" "ComputeNumeral.number_norm"