SUBSETP.html -- ACL2 Version 6.3

### SUBSETP

test if every `member` of one list is a `member` of the other

    Major Section:  ACL2-BUILT-INS

    General Forms:
    (subsetp x y)
    (subsetp x y :test 'eql)   ; same as above (eql as equality test)
    (subsetp x y :test 'eq)    ; same, but eq is equality test
    (subsetp x y :test 'equal) ; same, but equal is equality test

`(Subsetp x y)` is true if and only if every `member` of the list `x` is a `member` of the list `y`. The optional keyword, `:TEST`, has no effect logically, but provides the test (default `eql`) used for comparing members of the two lists.

The guard for a call of `subsetp` depends on the test. In all cases, both arguments must satisfy `true-listp`. If the test is `eql`, then one of the arguments must satisfy `eqlable-listp`. If the test is `eq`, then one of the arguments must satisfy `symbol-listp`.

See equality-variants for a discussion of the relation between `subsetp` and its variants:

> `(subsetp-eq x lst)` is equivalent to `(subsetp x lst :test 'eq)`;

> `(subsetp-equal x lst)` is equivalent to `(subsetp x lst :test 'equal)`.

In particular, reasoning about any of these primitives reduces to reasoning about the function `subsetp-equal`.

`Subsetp` is defined by Common Lisp. See any Common Lisp documentation for more information.