الشطرنج أصعب بكثير مما يبدو. لديها العديد من القواعد: التبييت، والتمرير، وترقية البيدق، والتثبيت، والشيك المكتشف، وحالة الجمود. إنه نظام متزامن، ولكن مع نوع محدد جدًا من التزامن: التنفيذ المشذر.
ثوابت الدولة
عند اشتقاق الثوابت نسأل: ما الذي يجب أن يكون صحيحًا دائمًا؟ أجد أنه من المفيد تقسيم ثوابت الأمان إلى معسكرين: ثوابت الحالة (وهي مسندات على حالة واحدة) وثوابت الانتقال (وهي مسندات على خطوة).
- اكتبموافق: كل متغير يعيش في المكان المناسب.
- OneKingPerColor: لكل لون ملك واحد.
- BothKingsOnBoard: كلا الملكين على اللوح.
الثوابت الانتقالية
هذه هي المسندات على زوج، مكتوب بالشكل بين قوسين: . يعبرون عن كيفية تغير الأشياء مع القيود.
- MoveCountStrictlyIncreases: عدد الحركات يزيد بشكل صارم.
- TurnAlternates: التناوب بين الألوان.
- SingleCapturePerMove: قطعة واحدة فقط يتم التقاطها لكل حركة.