Casse-tête C# n°2

Encore un petit casse-tête basé sur un problème que j’ai rencontré au boulot…

Regardez ce morceau de code :

Console.WriteLine($"x > y is {x > y}");
Console.WriteLine($"!(x <= y) is {!(x <= y)}");

Comment faudrait-il déclarer x et y pour que le programme produise la sortie (apparemment illogique) suivante ?

x > y is False
!(x <= y) is True