assign:
#1 suit in {0..3}
#1 rank in {0,2..5,7..12}
#2 suit in {0..3}
#2 rank in {0,1,3..6,8..12}
#3 suit in {0..3}
#3 rank in {1..7,9..12}
#4 suit in {0..3}
#4 rank in {0..8,10,11}
#5 suit in {0..3}
#5 rank in {0..9,12}
subject to:
AllDiff((13*#1 suit + #1 rank), (13*#2 suit + #2 rank), (13*#3 suit + #3 rank), (13*#4 suit + #4 rank), (13*#5 suit + #5 rank))
(((#1 rank == 1) + (#2 rank == 2) + (#3 rank == 0) + (#4 rank == 12) + (#5 rank == 11)) == 0)
((((#1 rank != 1) * OR((#2 rank == 1), (#3 rank == 1), (#4 rank == 1), (#5 rank == 1))) + ((#2 rank != 2) * OR((#1 rank == 2), (#3 rank == 2), (#4 rank == 2), (#5 rank == 2))) + ((#3 rank != 0) * OR((#1 rank == 0), (#2 rank == 0), (#4 rank == 0), (#5 rank == 0))) + ((#4 rank != 12) * OR((#1 rank == 12), (#2 rank == 12), (#3 rank == 12), (#5 rank == 12))) + ((#5 rank != 11) * OR((#1 rank == 11), (#2 rank == 11), (#3 rank == 11), (#4 rank == 11)))) == 3)
(((#1 suit == 3) + (#2 suit == 0) + (#3 suit == 1) + (#4 suit == 2) + (#5 suit == 3)) == 1)
(((#1 rank == 6) + (#2 rank == 7) + (#3 rank == 8) + (#4 rank == 9) + (#5 rank == 10)) == 0)
((((#1 rank != 6) * OR((#2 rank == 6), (#3 rank == 6), (#4 rank == 6), (#5 rank == 6))) + ((#2 rank != 7) * OR((#1 rank == 7), (#3 rank == 7), (#4 rank == 7), (#5 rank == 7))) + ((#3 rank != 8) * OR((#1 rank == 8), (#2 rank == 8), (#4 rank == 8), (#5 rank == 8))) + ((#4 rank != 9) * OR((#1 rank == 9), (#2 rank == 9), (#3 rank == 9), (#5 rank == 9))) + ((#5 rank != 10) * OR((#1 rank == 10), (#2 rank == 10), (#3 rank == 10), (#4 rank == 10)))) == 1)
(((#1 suit == 0) + (#2 suit == 1) + (#3 suit == 2) + (#4 suit == 3) + (#5 suit == 0)) == 1)
(((#1 rank == 3) + (#2 rank == 4) + (#3 rank == 5) + (#4 rank == 6) + (#5 rank == 6)) == 1)
((((#1 rank != 3) * OR((#2 rank == 3), (#3 rank == 3), (#4 rank == 3), (#5 rank == 3))) + ((#2 rank != 4) * OR((#1 rank == 4), (#3 rank == 4), (#4 rank == 4), (#5 rank == 4))) + ((#3 rank != 5) * OR((#1 rank == 5), (#2 rank == 5), (#4 rank == 5), (#5 rank == 5))) + ((#4 rank != 6) * OR((#1 rank == 6), (#2 rank == 6), (#3 rank == 6), (#5 rank == 6))) + ((#5 rank != 6) * OR((#1 rank == 6), (#2 rank == 6), (#3 rank == 6), (#4 rank == 6)))) == 1)
(((#1 suit == 1) + (#2 suit == 2) + (#3 suit == 0) + (#4 suit == 0) + (#5 suit == 1)) == 1)
(((#1 rank == 11) + (#2 rank == 6) + (#3 rank == 12) + (#4 rank == 6) + (#5 rank == 2)) == 3)
((((#1 rank != 11) * OR((#2 rank == 11), (#3 rank == 11), (#4 rank == 11), (#5 rank == 11))) + ((#2 rank != 6) * OR((#1 rank == 6), (#3 rank == 6), (#4 rank == 6), (#5 rank == 6))) + ((#3 rank != 12) * OR((#1 rank == 12), (#2 rank == 12), (#4 rank == 12), (#5 rank == 12))) + ((#4 rank != 6) * OR((#1 rank == 6), (#2 rank == 6), (#3 rank == 6), (#5 rank == 6))) + ((#5 rank != 2) * OR((#1 rank == 2), (#2 rank == 2), (#3 rank == 2), (#4 rank == 2)))) == 0)
(((#1 suit == 0) + (#2 suit == 0) + (#3 suit == 0) + (#4 suit == 2) + (#5 suit == 3)) == 3)
(((#1 rank == 6) + (#2 rank == 12) + (#3 rank == 1) + (#4 rank == 6) + (#5 rank == 0)) == 3)
((((#1 rank != 6) * OR((#2 rank == 6), (#3 rank == 6), (#4 rank == 6), (#5 rank == 6))) + ((#2 rank != 12) * OR((#1 rank == 12), (#3 rank == 12), (#4 rank == 12), (#5 rank == 12))) + ((#3 rank != 1) * OR((#1 rank == 1), (#2 rank == 1), (#4 rank == 1), (#5 rank == 1))) + ((#4 rank != 6) * OR((#1 rank == 6), (#2 rank == 6), (#3 rank == 6), (#5 rank == 6))) + ((#5 rank != 0) * OR((#1 rank == 0), (#2 rank == 0), (#3 rank == 0), (#4 rank == 0)))) == 1)
(((#1 suit == 1) + (#2 suit == 0) + (#3 suit == 0) + (#4 suit == 0) + (#5 suit == 3)) == 1)
#1 Q of hearts
#2 7 of spades
#3 2 of hearts
#4 7 of clubs
#5 A of clubs