abstract Query = { flags startcat = Query ; cat Query ; Kind ; Property ; Term ; fun QWhich : Kind -> Property -> Query ; -- which numbers are prime QHowMany : Kind -> Property -> Query ; -- how many numbers are prime QWhether : Term -> Property -> Query ; -- is any number prime TAll : Kind -> Term ; -- all numbers TAny : Kind -> Term ; -- any number PAnd : Property -> Property -> Property ; -- even and prime POr : Property -> Property -> Property ; -- even or odd PNot : Property -> Property ; -- not prime KProperty : Property -> Kind -> Kind ; -- even number }