936 fun term_value (dep, (naming, program1)) = |
936 fun term_value (dep, (naming, program1)) = |
937 let |
937 let |
938 val Fun (_, ((vs_ty, [(([], t), _)]), _)) = |
938 val Fun (_, ((vs_ty, [(([], t), _)]), _)) = |
939 Graph.get_node program1 Term.dummy_patternN; |
939 Graph.get_node program1 Term.dummy_patternN; |
940 val deps = Graph.immediate_succs program1 Term.dummy_patternN; |
940 val deps = Graph.immediate_succs program1 Term.dummy_patternN; |
941 val program2 = Graph.del_nodes [Term.dummy_patternN] program1; |
941 val program2 = Graph.del_node Term.dummy_patternN program1; |
942 val deps_all = Graph.all_succs program2 deps; |
942 val deps_all = Graph.all_succs program2 deps; |
943 val program3 = Graph.restrict (member (op =) deps_all) program2; |
943 val program3 = Graph.restrict (member (op =) deps_all) program2; |
944 in (((naming, program3), ((vs_ty, t), deps)), (dep, (naming, program2))) end; |
944 in (((naming, program3), ((vs_ty, t), deps)), (dep, (naming, program2))) end; |
945 in |
945 in |
946 ensure_stmt ((K o K) NONE) pair stmt_value Term.dummy_patternN |
946 ensure_stmt ((K o K) NONE) pair stmt_value Term.dummy_patternN |