src/Provers/Arith/extract_common_term.ML
changeset 17412 e26cb20ef0cc
parent 17223 430edc6b7826
child 20044 92cc2f4c7335
equal deleted inserted replaced
17411:664434175578 17412:e26cb20ef0cc
    37 =
    37 =
    38 struct
    38 struct
    39 
    39 
    40 (*a left-to-right scan of terms1, seeking a term u that is also in terms2*)
    40 (*a left-to-right scan of terms1, seeking a term u that is also in terms2*)
    41 fun find_common (terms1,terms2) =
    41 fun find_common (terms1,terms2) =
    42   let val tab2 = fold (Termtab.curried_update o rpair ()) terms2 Termtab.empty
    42   let val tab2 = fold (Termtab.update o rpair ()) terms2 Termtab.empty
    43       fun seek [] = raise TERM("find_common", []) 
    43       fun seek [] = raise TERM("find_common", []) 
    44 	| seek (u::terms) =
    44 	| seek (u::terms) =
    45 	      if Termtab.defined tab2 u then u
    45 	      if Termtab.defined tab2 u then u
    46 	      else seek terms
    46 	      else seek terms
    47   in seek terms1 end;
    47   in seek terms1 end;