equal
deleted
inserted
replaced
511 | (x :: xs) subset_int ys = x mem_int ys andalso xs subset_int ys; |
511 | (x :: xs) subset_int ys = x mem_int ys andalso xs subset_int ys; |
512 |
512 |
513 (*subset, optimized version for strings*) |
513 (*subset, optimized version for strings*) |
514 fun ([]:string list) subset_string ys = true |
514 fun ([]:string list) subset_string ys = true |
515 | (x :: xs) subset_string ys = x mem_string ys andalso xs subset_string ys; |
515 | (x :: xs) subset_string ys = x mem_string ys andalso xs subset_string ys; |
|
516 |
|
517 (*set equality*) |
|
518 fun eq_set (xs, ys) = |
|
519 xs = ys orelse (xs subset ys andalso ys subset xs); |
516 |
520 |
517 (*set equality for strings*) |
521 (*set equality for strings*) |
518 fun eq_set_string ((xs:string list), ys) = |
522 fun eq_set_string ((xs:string list), ys) = |
519 xs = ys orelse (xs subset_string ys andalso ys subset_string xs); |
523 xs = ys orelse (xs subset_string ys andalso ys subset_string xs); |
520 |
524 |