#lang karp/problem-definition

(decision-problem #:name set-cover
                  #:instance ([E is-a set]
                              [F is-a (set #:of-type (subset-of E))]
                              [k is-a (natural)])
                  #:certificate (subset-of F))

(define-set-cover-verifier a-inst a-cert
  ;; your code here
  #t)

; example to test your verifier
(define Ele1 (set 'x1 'x2 'x3 'x4 'x5))
(define Set1 (set
              (set 'x1 'x2 'x3)
              (set 'x2 'x4)
              (set 'x3 'x4)
              (set 'x4 'x5)))
(define/set-cover-instance SC-1 ([E Ele1]
                                 [F Set1]
                                 [k 2]))
(E SC-1)
(F SC-1)
(set-cover-solver SC-1)