{ma, mb} = {0, 100};
EmptySet[] := False;
SetUnion[s_, r_] := Or[s@#, r@#] &;
SetIntersection[s_, r_] := And[s@#, r@#] &;
SetDifference[s_, r_] := And[s@#, Not[r@#]] &;
SetSymDifference[s_, r_] := Xor[s@#, r@#] &;
SetEvaluate[s_, a_, b_] := Select[Table[i, {i, a, b}], s];
SetFilter[s_, p_] := SetEvaluate[And[s@#, p@#] &];
SetAll[s_, p_] := SetFilter[s, p] == SetEvaluate[s];
SetAny[s_, p_] := SetFilter[s, p] != SetEvaluate[EmptySet[]];
s = Mod[#, 2] == 0 &;
r = Mod[#, 3] == 0 &;
SetEvaluate[s]
SetEvaluate[r]
SetEvaluate[SetUnion[s, r]]
SetEvaluate[SetIntersection[s, r]]
SetEvaluate[SetDifference[s, r]]
SetEvaluate[SetSymDifference[s, r]]
p = Mod[#, 12] == 0 &;
SetFilter[s, p]
SetAll[s, p]
SetAny[s, p]
{0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100}
{0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99}
{0, 2, 3, 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 26, 27, 28, 30, 32, 33, 34, 36, 38, 39, 40, 42, 44, 45, 46, 48, 50, 51, 52, 54, 56, 57, 58, 60, 62, 63, 64, 66, 68, 69, 70, 72, 74, 75, 76, 78, 80, 81, 82, 84, 86, 87, 88, 90, 92, 93, 94, 96, 98, 99, 100}
{0, 6, 12, 18, 24, 30, 36, 42, 48, 54, 60, 66, 72, 78, 84, 90, 96}
{2, 4, 8, 10, 14, 16, 20, 22, 26, 28, 32, 34, 38, 40, 44, 46, 50, 52, 56, 58, 62, 64, 68, 70, 74, 76, 80, 82, 86, 88, 92, 94, 98, 100}
{2, 3, 4, 8, 9, 10, 14, 15, 16, 20, 21, 22, 26, 27, 28, 32, 33, 34, 38, 39, 40, 44, 45, 46, 50, 51, 52, 56, 57, 58, 62, 63, 64, 68, 69, 70, 74, 75, 76, 80, 81, 82, 86, 87, 88, 92, 93, 94, 98, 99, 100}
{0, 12, 24, 36, 48, 60, 72, 84, 96}
False
True
SetMap[s_, f_] := SetEvaluate[Compose[s, FunctionInverse[f]]];