equal
deleted
inserted
replaced
88 val num_branches = map_index (apsnd branch_vars) (prems_of crule) |
88 val num_branches = map_index (apsnd branch_vars) (prems_of crule) |
89 in |
89 in |
90 IntGraph.empty |
90 IntGraph.empty |
91 |> fold (fn (i,_)=> IntGraph.new_node (i,i)) num_branches |
91 |> fold (fn (i,_)=> IntGraph.new_node (i,i)) num_branches |
92 |> fold_product (fn (i, (c1, _)) => fn (j, (_, t2)) => |
92 |> fold_product (fn (i, (c1, _)) => fn (j, (_, t2)) => |
93 if i = j orelse null (gen_inter (op =) (c1, t2)) |
93 if i = j orelse null (inter (op =) (c1, t2)) |
94 then I else IntGraph.add_edge_acyclic (i,j)) |
94 then I else IntGraph.add_edge_acyclic (i,j)) |
95 num_branches num_branches |
95 num_branches num_branches |
96 end |
96 end |
97 |
97 |
98 val default_congs = map (fn c => c RS eq_reflection) [@{thm "cong"}, @{thm "ext"}] |
98 val default_congs = map (fn c => c RS eq_reflection) [@{thm "cong"}, @{thm "ext"}] |