src/HOL/Tools/Function/termination.ML
changeset 47835 2d48bf79b725
parent 47433 07f4bf913230
child 52723 2ebcc81f599c
equal deleted inserted replaced
47829:0e36cc70cb3e 47835:2d48bf79b725
   313 fun mk_dgraph D cs =
   313 fun mk_dgraph D cs =
   314   Term_Graph.empty
   314   Term_Graph.empty
   315   |> fold (fn c => Term_Graph.new_node (c, ())) cs
   315   |> fold (fn c => Term_Graph.new_node (c, ())) cs
   316   |> fold_product (fn c1 => fn c2 =>
   316   |> fold_product (fn c1 => fn c2 =>
   317      if is_none (get_chain D c1 c2 |> the_default NONE)
   317      if is_none (get_chain D c1 c2 |> the_default NONE)
   318      then Term_Graph.add_edge (c1, c2) else I)
   318      then Term_Graph.add_edge (c2, c1) else I)
   319      cs cs
   319      cs cs
   320 
   320 
   321 fun ucomp_empty_tac T =
   321 fun ucomp_empty_tac T =
   322   REPEAT_ALL_NEW (rtac @{thm union_comp_emptyR}
   322   REPEAT_ALL_NEW (rtac @{thm union_comp_emptyR}
   323     ORELSE' rtac @{thm union_comp_emptyL}
   323     ORELSE' rtac @{thm union_comp_emptyL}