src/Provers/Arith/fast_lin_arith.ML
changeset 33245 65232054ffd0
parent 33042 ddf1f03a9ad9
child 33317 b4534348b8fd
equal deleted inserted replaced
33244:db230399f890 33245:65232054ffd0
   700   trace_msg ("Splitting of inequalities yields " ^
   700   trace_msg ("Splitting of inequalities yields " ^
   701     string_of_int (length result) ^ " subgoal(s) total.");
   701     string_of_int (length result) ^ " subgoal(s) total.");
   702   result
   702   result
   703 end;
   703 end;
   704 
   704 
   705 fun add_datoms (dats : (bool * term) list, ((lhs,_,_,rhs,_,d) : LA_Data.decomp, _)) :
   705 fun add_datoms ((lhs,_,_,rhs,_,d) : LA_Data.decomp, _) (dats : (bool * term) list) =
   706   (bool * term) list =
       
   707   union_bterm (map (pair d o fst) lhs) (union_bterm (map (pair d o fst) rhs) dats);
   706   union_bterm (map (pair d o fst) lhs) (union_bterm (map (pair d o fst) rhs) dats);
   708 
   707 
   709 fun discr (initems : (LA_Data.decomp * int) list) : bool list =
   708 fun discr (initems : (LA_Data.decomp * int) list) : bool list =
   710   map fst (Library.foldl add_datoms ([],initems));
   709   map fst (fold add_datoms initems []);
   711 
   710 
   712 fun refutes ctxt params show_ex :
   711 fun refutes ctxt params show_ex :
   713     (typ list * (LA_Data.decomp * int) list) list -> injust list -> injust list option =
   712     (typ list * (LA_Data.decomp * int) list) list -> injust list -> injust list option =
   714   let
   713   let
   715     fun refute ((Ts, initems : (LA_Data.decomp * int) list) :: initemss) (js: injust list) =
   714     fun refute ((Ts, initems : (LA_Data.decomp * int) list) :: initemss) (js: injust list) =