src/Pure/term_items.ML
changeset 77835 c18c0dbefd55
parent 77828 6fae9f5157b5
child 77878 35a1788dd6f9
equal deleted inserted replaced
77829:69ee23f83884 77835:c18c0dbefd55
    76   Table (if Table.defined tab x then tab else Table.update_new (x, Table.size tab + 1) tab);
    76   Table (if Table.defined tab x then tab else Table.update_new (x, Table.size tab + 1) tab);
    77 
    77 
    78 fun make_set xs = build (fold add_set xs);
    78 fun make_set xs = build (fold add_set xs);
    79 
    79 
    80 fun subset (A: set, B: set) = forall (defined B o #1) A;
    80 fun subset (A: set, B: set) = forall (defined B o #1) A;
    81 fun eq_set (A: set, B: set) = size A = size B andalso subset (A, B);
    81 fun eq_set (A: set, B: set) = pointer_eq (A, B) orelse size A = size B andalso subset (A, B);
    82 
    82 
    83 fun list_set_ord ord (Table tab) = tab |> Table.dest |> sort (ord o apply2 #2) |> map #1;
    83 fun list_set_ord ord (Table tab) = tab |> Table.dest |> sort (ord o apply2 #2) |> map #1;
    84 val list_set = list_set_ord int_ord;
    84 val list_set = list_set_ord int_ord;
    85 val list_set_rev = list_set_ord (rev_order o int_ord);
    85 val list_set_rev = list_set_ord (rev_order o int_ord);
    86 
    86