<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="1.3" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">appliedmath</journal-id>
      <journal-title-group>
        <journal-title>AppliedMath</journal-title>
        <abbrev-journal-title abbrev-type="publisher">AppliedMath</abbrev-journal-title>
        <abbrev-journal-title abbrev-type="pubmed">AppliedMath</abbrev-journal-title>
      </journal-title-group>
      <issn pub-type="epub">2673-9909</issn>
      <publisher>
        <publisher-name>MDPI</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.3390/appliedmath6030048</article-id>
      <article-id pub-id-type="publisher-id">appliedmath-06-00048</article-id>
      <article-categories>
        <subj-group>
          <subject>Article</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>A Mathematical Framework for Four-Dimensional Chess: Extending Game Mechanics Through Higher-Dimensional Geometry</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <contrib-id contrib-id-type="orcid" authenticated="true">https://orcid.org/0009-0009-0368-2653</contrib-id>
          <name>
            <surname>Oana</surname>
            <given-names>Rinaldi (Unciuleanu)</given-names>
          </name>
          <xref rid="c1-appliedmath-06-00048" ref-type="corresp">*</xref>
        </contrib>
        <contrib contrib-type="author">
          <contrib-id contrib-id-type="orcid" authenticated="true">https://orcid.org/0000-0002-1142-8008</contrib-id>
          <name>
            <surname>Chiru</surname>
            <given-names>Costin-Gabriel</given-names>
          </name>
          <xref rid="c1-appliedmath-06-00048" ref-type="corresp">*</xref>
        </contrib>
      </contrib-group>
      <contrib-group>
        <contrib contrib-type="editor">
          <name>
            <surname>Woolley</surname>
            <given-names>Thomas</given-names>
          </name>
          <role>Academic Editor</role>
        </contrib>
        <contrib contrib-type="editor">
          <name>
            <surname>Khalique</surname>
            <given-names>Chaudry Masood</given-names>
          </name>
          <role>Academic Editor</role>
        </contrib>
      </contrib-group>
      <aff id="af1-appliedmath-06-00048">Department of Computer Science, National University of Science and Technology POLITEHNICA Bucharest, 060042 Bucharest, Romania</aff>
      <author-notes>
        <corresp id="c1-appliedmath-06-00048"><label>*</label>Correspondence: <email>oana.rinaldi@stud.acs.upb.ro</email> (R.O.); <email>costin.chiru@upb.ro</email> (C.-G.C.)</corresp>
      </author-notes>
      <pub-date pub-type="epub">
        <day>17</day>
        <month>03</month>
        <year>2026</year>
      </pub-date>
      <pub-date pub-type="collection">
        <month>03</month>
        <year>2026</year>
      </pub-date>
      <volume>6</volume>
      <issue>3</issue>
      <elocation-id>48</elocation-id>
      <history>
        <date date-type="received">
          <day>30</day>
          <month>12</month>
          <year>2025</year>
        </date>
        <date date-type="rev-recd">
          <day>05</day>
          <month>02</month>
          <year>2026</year>
        </date>
        <date date-type="accepted">
          <day>05</day>
          <month>03</month>
          <year>2026</year>
        </date>
      </history>
      <permissions>
        <copyright-statement>&#xA9; 2026 by the authors.</copyright-statement>
        <copyright-year>2026</copyright-year>
        <license license-type="open-access">
          <license-p>Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution (CC BY) license</ext-link>.</license-p>
        </license>
      </permissions>
      <abstract>
        <p>This paper develops a rigorous mathematical and computational framework for four-dimensional chess defined on the discrete hypercubic lattice <inline-formula><mml:math id="mm1"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>. We formalize piece movement using displacement sets in <inline-formula><mml:math id="mm2"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>, define adjacency via the Chebyshev metric, and analyze the resulting move graphs for rooks, bishops, knights, queens, and kings. We establish exact mobility formulas, parity invariants, and connectivity properties, consolidating known product-graph results for rooks and kings while introducing a boundary-sensitive analysis of the four-dimensional knight verified by exhaustive enumeration. The mathematical framework is complemented by a fully implemented 4D chess engine and interactive visualization environment rendering all 64 (z,w)-slices of the hypercube simultaneously. The system supports full move legality, generalized special rules, multi-king checkmate detection, and reproducible state enumeration. Performance measurements and exploratory branching-factor estimates are obtained through reproducible random playouts using the publicly available implementation. We contextualize this ruleset within existing work on move graphs on <inline-formula><mml:math id="mm3"><mml:semantics><mml:mrow><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula>, higher-dimensional leapers, spectral properties of grid graphs, toroidal analogs, and multidimensional visualization. Exploratory qualitative feedback (<italic>N</italic> = 18) is included to examine whether the visualization design is interpretable and navigable in practice, providing feasibility-oriented observations on how slice-based 4D projection and layered board rendering are perceived by non-expert users in an exploratory context. Together, the mathematical results, implemented engine, and visualization form a coherent foundation for the study of strategy, complexity, and human interaction in four-dimensional game systems. The framework provides a basis for future investigations into spectral analysis of move graphs, symmetry-aware search, hierarchical planning, and educational applications in high-dimensional geometry.</p>
      </abstract>
      <kwd-group>
        <kwd>four-dimensional geometry</kwd>
        <kwd>combinatorial game theory</kwd>
        <kwd>mathematical modeling</kwd>
        <kwd>graph theory</kwd>
        <kwd>projection systems</kwd>
        <kwd>game mechanics</kwd>
        <kwd>higher-dimensional visualization</kwd>
      </kwd-group>
      <funding-group>
        <funding-statement>This research received no external funding.</funding-statement>
      </funding-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec1-appliedmath-06-00048" sec-type="intro">
      <title>1. Introduction</title>
      <p>The extension of classical games into higher-dimensional settings has long served as a source of mathematical insight, cognitive challenge, and conceptual experimentation. From Abbott&#x2019;s <italic>Flatland</italic> [<xref ref-type="bibr" rid="B1-appliedmath-06-00048">1</xref>] to modern explorations of multidimensional geometry [<xref ref-type="bibr" rid="B2-appliedmath-06-00048">2</xref>,<xref ref-type="bibr" rid="B3-appliedmath-06-00048">3</xref>], the idea of reasoning within dimensions beyond three has informed perspectives in topology, combinatorics, visualization, and theoretical computer science. Chess, with its rich structural constraints, well-defined move semantics, and deeply studied combinatorial landscape, provides an especially suitable testbed for such dimensional generalization.</p>
      <p>While several structural properties studied here, such as rook and king move graphs arising as Cartesian or strong products, are known consequences of classical product-graph theory, the contribution of this work lies in their systematic integration into a single four-dimensional chess framework that is fully formalized, computationally implemented, and empirically validated. Rather than proposing isolated observations about individual pieces, we provide a coherent Z<sup>4</sup> displacement-based ruleset, explicit boundary-sensitive mobility analysis, multi-king legality semantics, and a reproducible engine and visualization that together establish a concrete foundation for studying higher-dimensional game systems.</p>
      <p>We emphasize that this work is intended as a rigorously specified and reproducible baseline for four-dimensional chess on a fixed finite lattice; extensions to general [n]<sup>d</sup> boards or to spectral and isoperimetric analyses are natural next steps but lie beyond the scope of the present study.</p>
      <p>In this work, we develop a complete, formal, and computationally implemented framework for <italic>four-dimensional chess</italic> on the discrete hypercubic lattice <inline-formula><mml:math id="mm4"><mml:semantics><mml:mrow><mml:mi>B</mml:mi><mml:mo>=</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2282;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> where each coordinate axis defines an independent spatial dimension. Our goals are threefold:<list list-type="simple"><list-item><p><bold>Mathematical formalization</bold></p></list-item></list></p>
      <p>We generalize classical chess movements to four dimensions using vector displacement sets, define adjacency via the Chebyshev metric, and analyze the resulting <italic>move graphs</italic> for standard pieces. We present a corrected and uniform rook mobility formula, the proof that the 4D rook graph is connected with diameter 4, a constructive proof that bishop movement connects each parity class, and a boundary-sensitive classification of knight degrees verified by exhaustive enumeration.</p>
      <list list-type="simple">
        <list-item>
          <p>
            <bold>Algorithmic and ruleset design</bold>
          </p>
        </list-item>
      </list>
      <p>We extend special rules&#x2014;castling, promotion, en passant&#x2014;and generalize check, stalemate, and checkmate to positions with multiple kings, as necessitated by high-density initial configurations. All rules are implemented and validated within a complete engine, including pseudo-legal and legal move filtering, attack-map construction, repetition detection, and 50-move rule handling.</p>
      <list list-type="simple">
        <list-item>
          <p>
            <bold>Visualization and interaction in 4D space</bold>
          </p>
        </list-item>
      </list>
      <p>Humans cannot directly perceive four spatial dimensions, making explicit projection or slicing strategies necessary for interaction with 4D structures. Accordingly, beyond formalizing movement and rules, this work treats visualization as a functional component of the framework: a representation that preserves adjacency, directionality, and cross-dimensional relationships sufficiently to support gameplay and inspection of the formal move geometry.</p>
      <p>We first situate the work within the existing literature, then develop the mathematical foundations of 4D chess, followed by implementation details, computational analysis, and exploratory evaluation.</p>
      <sec id="sec1dot1-appliedmath-06-00048">
        <title>1.1. Motivation and Theoretical Context</title>
        <p>The mathematical appeal of higher-dimensional chess stems in part from its relation to the study of <italic>move graphs</italic> on <inline-formula><mml:math id="mm5"><mml:semantics><mml:mrow><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula>, a setting where displacement sets define graph edges and many algebraic and geometric techniques apply [<xref ref-type="bibr" rid="B4-appliedmath-06-00048">4</xref>]. Rook, bishop, and knight moves extend naturally to four dimensions, producing graphs with distinctive connectivity, parity, and mobility properties. Our analysis contributes explicit formulas, invariants, and constructive proofs that fit into the broader literature on grid graphs, rook graphs, toroidal models, and leaper graphs.</p>
        <p>From a complexity perspective, classical results show that generalized chess on <inline-formula><mml:math id="mm6"><mml:semantics><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#xD7;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> boards is EXPTIME-complete [<xref ref-type="bibr" rid="B5-appliedmath-06-00048">5</xref>], and &#x201C;mate-in-<inline-formula><mml:math id="mm7"><mml:semantics><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#x201D; formulations remain intractable. While our setting is fixed at an 8 &#xD7; 8 &#xD7; 8 &#xD7; 8 board, the increase from 64 squares to 4096 induces dramatic growth in branching factors, state-space size, and search-tree expansion&#x2014;paralleling the combinatorial explosion Shannon emphasized in his foundational work on chess computation [<xref ref-type="bibr" rid="B6-appliedmath-06-00048">6</xref>]. Our empirical branching-factor measurements (mean &#x2248; 74) reflect this complexity expansion.</p>
        <p>On the human&#x2013;computer interaction side, the design of visualization systems capable of conveying 4D relationships is itself a nontrivial challenge. Classical principles from Banchoff [<xref ref-type="bibr" rid="B2-appliedmath-06-00048">2</xref>] and Ware [<xref ref-type="bibr" rid="B7-appliedmath-06-00048">7</xref>] emphasize slice-based, projection-based, and task-oriented views as means of understanding higher-dimensional geometry. Quaternion-based navigation provides smooth and perceptually stable camera control [<xref ref-type="bibr" rid="B8-appliedmath-06-00048">8</xref>], while layered and partially transparent representations mitigate occlusion in dense 3D scenes [<xref ref-type="bibr" rid="B9-appliedmath-06-00048">9</xref>].</p>
      </sec>
      <sec id="sec1dot2-appliedmath-06-00048">
        <title>1.2. Contributions</title>
        <p>While several results are natural extensions of known 2D and 3D cases, we present them here in a unified, fully implemented 4D framework that enables direct computational validation and applied investigation.</p>
        <p>This paper provides the following contributions:<list list-type="simple"><list-item><p><bold>Mathematical Contributions</bold></p></list-item></list>
		  <list list-type="order"><list-item><label><italic>1.</italic>&#xA0;</label><p><bold>Uniform rook mobility</bold>: a corrected, elementary proof that all squares yield mobility exactly 28, where mobility denotes the number of squares reachable by a single legal move.</p></list-item><list-item><label><italic>2.</italic>&#xA0;</label><p><bold>Rook graph connectivity</bold>: proof that the graph is connected with diameter 4.</p></list-item><list-item><label><italic>3.</italic>&#xA0;</label><p><bold>Bishop invariants and connectivity</bold>: bishop moves preserve coordinate-sum parity; each parity class is provably connected via constructive diagonal sequences that handle boundary detours.</p></list-item><list-item><label><italic>4.</italic>&#xA0;</label><p><bold>Knight mobility</bold>: complete characterization of interior and boundary-sensitive degrees with exhaustive enumeration across all 4096 squares.</p></list-item></list></p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Algorithmic and Ruleset Contributions</bold>
            </p>
          </list-item>
        </list>
        <list list-type="order">
          <list-item>
            <label><italic>1.</italic>&#xA0;</label>
            <p><bold>Comprehensive 4D chess engine</bold> with</p>
            <list list-type="bullet">
              <list-item>
                <p>full move generation,</p>
              </list-item>
              <list-item>
                <p>attack-map construction,</p>
              </list-item>
              <list-item>
                <p>legality filtering across all kings,</p>
              </list-item>
              <list-item>
                <p>generalized castling and en passant rules,</p>
              </list-item>
              <list-item>
                <p>repetition and 50-move rule detection,</p>
              </list-item>
              <list-item>
                <p>Zobrist-style hashing extended to 4D: constant-time hashing of 4D board states for fast position comparison and reproducible state enumeration.</p>
              </list-item>
            </list>
          </list-item>
          <list-item>
            <label><italic>2.</italic>&#xA0;</label>
            <p><bold>Complete reproducibility</bold> of enumeration and empirical results through publicly available code and online engine.</p>
          </list-item>
          <list-item>
            <label><italic>3.</italic>&#xA0;</label>
            <p>Formalization of multi-king checkmate: a ruleset that generalizes classical attack and legality concepts to multiple royal pieces.</p>
          </list-item>
        </list>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Visualization and HCI Contributions</bold>
            </p>
          </list-item>
        </list>
        <list list-type="order">
          <list-item>
            <label><italic>1.</italic>&#xA0;</label>
            <p>A 64-slice 3D visualization of the 4D chess hypercube, rendering all <inline-formula><mml:math id="mm8"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>&#x2032;</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-slices simultaneously.</p>
          </list-item>
          <list-item>
            <label><italic>2.</italic>&#xA0;</label>
            <p>Interactive camera navigation via quaternions, layered transparency, and consistent coordinate annotation.</p>
          </list-item>
        </list>
        <p>The novelty of this work lies not in redefining individual chess moves per se, but in providing a mathematically rigorous, computationally complete, and visually accessible integration of four-dimensional move geometry, rules, and gameplay within a single coherent framework.</p>
        <p>Beyond its role as a playable game, the proposed four-dimensional chess framework serves as a controlled experimental environment for studying reasoning, planning, and visualization in high-dimensional discrete spaces. While the full game state involves a large number of pieces and is not intended for unaided human play, the framework is well-suited for the development and testing of advanced search algorithms, symmetry-aware evaluation methods, and learning-based agents operating on structured high-dimensional graphs. In addition, the interactive visualization component supports cognitive exploration and conceptual learning of four-dimensional geometry, making the system relevant both as a computational testbed and as an educational tool.</p>
      </sec>
      <sec id="sec1dot3-appliedmath-06-00048">
        <title>1.3. Paper Structure</title>
        <p><xref ref-type="sec" rid="sec2-appliedmath-06-00048">Section 2</xref> reviews related work on generalized chess, move graphs on higher-dimensional lattices, combinatorial game complexity, and visualization of multidimensional structures. <xref ref-type="sec" rid="sec3-appliedmath-06-00048">Section 3</xref> develops the mathematical framework for four-dimensional chess, including the lattice model, adjacency, piece displacement sets, mobility formulas, parity invariants, and connectivity properties of the resulting move graphs. <xref ref-type="sec" rid="sec4-appliedmath-06-00048">Section 4</xref> describes the full system implementation, covering engine architecture, move generation, special rules, multi-king legality, visualization design, symmetry constraints, and the computational complexity of move generation. <xref ref-type="sec" rid="sec5-appliedmath-06-00048">Section 5</xref> presents computational results and exploratory analyses, including branching-factor measurements, qualitative strategic observations, endgame demonstrations, complexity-theoretic context, and exploratory user feedback. <xref ref-type="sec" rid="sec6-appliedmath-06-00048">Section 6</xref> concludes with a discussion of implications, limitations of the present work, and directions for future research.</p>
      </sec>
    </sec>
    <sec id="sec2-appliedmath-06-00048">
      <title>2. Related Work</title>
      <p>Research relevant to four-dimensional chess spans several distinct areas: the computational complexity of generalized board games, algebraic and combinatorial analysis of move graphs on high-dimensional lattices, leaper graph theory, spectral graph properties of grid-based move sets, toroidal analogs on <inline-formula><mml:math id="mm9"><mml:semantics><mml:mrow><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula>, and visualization techniques for multidimensional structures. This section situates our work within these domains and clarifies its contributions relative to the existing literature.</p>
      <sec id="sec2dot1-appliedmath-06-00048">
        <title>2.1. Generalized Chess and Computational Complexity</title>
        <p>The computational difficulty of chess-like games and their many variants has been studied since Zermelo&#x2019;s early application of game theory to chess [<xref ref-type="bibr" rid="B10-appliedmath-06-00048">10</xref>], with extensive cataloging and classification of chess variants documented by Pritchard [<xref ref-type="bibr" rid="B11-appliedmath-06-00048">11</xref>]. Shannon&#x2019;s seminal analysis demonstrated that even classical 2D chess has a game-tree complexity on the order of <inline-formula><mml:math id="mm10"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>10</mml:mn></mml:mrow><mml:mrow><mml:mn>120</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>, emphasizing the exponential dependence on the branching factor [<xref ref-type="bibr" rid="B6-appliedmath-06-00048">6</xref>]. When the board size or rules are generalized, the problem becomes dramatically harder: Fraenkel and Lichtenstein proved that computing a perfect strategy for <inline-formula><mml:math id="mm11"><mml:semantics><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#xD7;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> chess requires time exponential in <inline-formula><mml:math id="mm12"><mml:semantics><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> [<xref ref-type="bibr" rid="B5-appliedmath-06-00048">5</xref>]. Further refinements in the theory of algorithmic hardness for combinatorial games by Hearn and Demaine show that generalized chess is EXPTIME-complete, situating chess-like games within the broader mathematical study of combinatorial games [<xref ref-type="bibr" rid="B12-appliedmath-06-00048">12</xref>].</p>
        <p>These works do not directly treat additional spatial dimensions, but the complexity drivers&#x2014;state-space size and move branching&#x2014;scale naturally with dimension. In our 4D <inline-formula><mml:math id="mm13"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>8</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>-board setting, even fixed-size positions exhibit branching factors often exceeding 70 moves, indicating substantial growth relative to 2D. While we do not claim any new complexity-theoretic results, our engine-based measurements support the conclusion that 4D chess inherits the practical intractability typical of generalized grid-based games. Foundational perspectives on the mathematical analysis of games, including structural, combinatorial, and symmetry-based reasoning on board games, are presented in the classical work of Conway, Guy, and Berlekamp [<xref ref-type="bibr" rid="B13-appliedmath-06-00048">13</xref>].</p>
      </sec>
      <sec id="sec2dot2-appliedmath-06-00048">
        <title>2.2. Move Graphs on <inline-formula><mml:math id="mm14"><mml:semantics><mml:mrow><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula>: Product-Graph Structure</title>
        <p>Many chess pieces give rise to product graphs when formalized as move graphs on discrete lattices. Let <inline-formula><mml:math id="mm15"><mml:semantics><mml:mrow><mml:mi>B</mml:mi><mml:mo>=</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2282;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula> and consider the graph whose vertices are lattice points and whose edges correspond to legal moves of a given piece on an empty board.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Rook graphs and Hamming graphs</bold>
            </p>
          </list-item>
        </list>
        <p>The rook move graph on <inline-formula><mml:math id="mm16"><mml:semantics><mml:mrow><mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> is exactly the Hamming graph <inline-formula><mml:math id="mm17"><mml:semantics><mml:mrow><mml:mi>H</mml:mi><mml:mo>(</mml:mo><mml:mn>4,8</mml:mn><mml:mo>)</mml:mo><mml:mo>&#x2245;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub><mml:mo>&#x25A1;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub><mml:mo>&#x25A1;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub><mml:mo>&#x25A1;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula>; that is, the Cartesian product of four complete graphs on eight vertices. In this graph, two vertices are adjacent if and only if they differ in exactly one coordinate.</p>
        <p>Standard properties such as uniform degree, Hamming-distance metrics, and diameter follow immediately from this identification. Such properties are classical in the study of Hamming graphs and Cartesian products of complete graphs, and our analysis in <xref ref-type="sec" rid="sec3-appliedmath-06-00048">Section 3</xref> specializes these known results to the concrete 4D chess setting. A systematic treatment of Cartesian, strong, and related graph products&#x2014;including recognition, spectral properties, and metric structure&#x2014;can be found in the standard monograph by Imrich and Klav&#x17E;ar [<xref ref-type="bibr" rid="B14-appliedmath-06-00048">14</xref>].</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>King graphs as strong products</bold>
            </p>
          </list-item>
        </list>
        <p>Similarly, the king&#x2019;s adjacency graph on <inline-formula><mml:math id="mm18"><mml:semantics><mml:mrow><mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> corresponds to the strong product <inline-formula><mml:math id="mm19"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub><mml:mo>&#x22A0;</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub><mml:mo>&#x22A0;</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub><mml:mo>&#x22A0;</mml:mo><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> where <inline-formula><mml:math id="mm20"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> denotes the path graph on eight vertices. Adjacency is given by Chebyshev distance one. This structure implies Chebyshev distance metrics, fixed interior degree, and standard spectral properties derived from strong-product theory. This product-graph viewpoint places the king&#x2019;s movement squarely within the standard framework of strong graph products and immediately explains its connectivity and metric structure.</p>
        <p>Our treatment of rook and king movement is therefore a concrete instantiation of standard product-graph results on a fixed finite lattice, rather than a new structural contribution.</p>
      </sec>
      <sec id="sec2dot3-appliedmath-06-00048">
        <title>2.3. Bishop and Knight Graphs: Invariants and Leapers</title>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Bishop graphs and parity structure</bold>
            </p>
          </list-item>
        </list>
        <p>Bishop move graphs differ from rook and king graphs in that they are not full product graphs but instead decompose according to algebraic invariants. In four dimensions, bishop moves preserve the parity: &#x3C0;(x,y,z,w) = (x + y + z + w) mod 2, yielding exactly two connected components. This bipartition is a higher-dimensional analog of the color-class restriction familiar from 2D chess and is characteristic of diagonal-move graphs on lattices.</p>
        <p>While additional invariants may arise when restricting to individual coordinate planes, parity is the only global invariant relevant on the full 4D board. <xref ref-type="sec" rid="sec3-appliedmath-06-00048">Section 3</xref> provides a constructive routing argument and an explicit path-length bound within each parity class.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Knight graphs as higher-dimensional leaper graphs</bold>
            </p>
          </list-item>
        </list>
        <p>Knight moves fall into the classical family of leaper graphs, here corresponding to the <inline-formula><mml:math id="mm21"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-leaper in four dimensions. On infinite lattices or toroidal boards, such graphs are regular and well-studied; on finite boards, mobility is determined primarily by boundary distance patterns, not absolute position.</p>
        <p>Our analysis follows the standard leaper-graph perspective: the knight attains maximal degree 48 in the strict interior, boundary clipping reduces mobility in quantifiable steps, and the resulting degree depends only on how many coordinates lie near the boundary. What we add is a closed-form degree formula and a complete enumeration over all <inline-formula><mml:math id="mm22"><mml:semantics><mml:mrow><mml:mn>4096</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> squares, tying classical leaper theory to an explicitly implemented 4D chess environment.</p>
      </sec>
      <sec id="sec2dot4-appliedmath-06-00048">
        <title>2.4. Higher-Dimensional Knight Graphs and Tours</title>
        <p>The connectivity and traversal properties of knight graphs in dimensions three and higher have been studied independently of chess variants, particularly in work on higher-dimensional knight&#x2019;s tours. Results by DeMaio and Mathew [<xref ref-type="bibr" rid="B15-appliedmath-06-00048">15</xref>] and subsequent authors show that for dimensions d &#x2265; 3 and sufficiently large side length, knight graphs are connected and often Hamiltonian under mild conditions. These results primarily concern infinite or toroidal boards and address global reachability rather than local mobility on bounded boards.</p>
        <p>Our analysis is complementary to the asymptotic and infinite-board perspective of [<xref ref-type="bibr" rid="B15-appliedmath-06-00048">15</xref>]: we focus on exact local degree counts and boundary-sensitive mobility on the finite 8 &#xD7; 8 &#xD7; 8 &#xD7; 8 lattice relevant to an implemented ruleset. While higher-dimensional tour results imply global connectivity in larger or unbounded settings, they do not yield closed-form degree stratifications or exact mobility tables for small, fixed boards.</p>
      </sec>
      <sec id="sec2dot5-appliedmath-06-00048">
        <title>2.5. Spectral and Metric Properties of Product Move Graphs</title>
        <p>Product-graph identifications give immediate access to spectral and metric properties without ad hoc arguments. For Cartesian products (such as the rook graph), adjacency and Laplacian eigenvalues are sums of eigenvalues of the factors, and distance spectra coincide with Hamming-distance distributions. For strong products (such as the king graph), analogous formulas describe adjacency spectra and growth rates.</p>
        <p>Extensive results on spectra and distance properties of product graphs are available in the literature [<xref ref-type="bibr" rid="B14-appliedmath-06-00048">14</xref>]. While we do not exploit these results fully here, the identification of rook and king graphs as standard product graphs places the 4D chess move graphs within a well-developed mathematical toolkit. This opens the door to future analyses of expansion, mixing, symmetry-aware search, and isoperimetric bounds.</p>
        <p>Recent work on hierarchical search for combinatorial reasoning problems highlights that structural properties of the underlying state graph (such as decomposition, symmetry, and metric regularity) strongly influence search efficiency and generalization [<xref ref-type="bibr" rid="B16-appliedmath-06-00048">16</xref>].</p>
        <p>Recent work in algorithmic game theory further emphasizes that analytical and solution concepts should respect intrinsic game symmetries, both to avoid spurious distinctions and to enable principled symmetry-aware reductions in the state space [<xref ref-type="bibr" rid="B17-appliedmath-06-00048">17</xref>].</p>
      </sec>
      <sec id="sec2dot6-appliedmath-06-00048">
        <title>2.6. Toroidal Models and Boundary Effects</title>
        <p>A common technique in studying lattice move graphs is to pass to the toroidal lattice <inline-formula><mml:math id="mm23"><mml:semantics><mml:mrow><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> which eliminates boundary effects and yields vertex-transitive graphs. On the toroidal lattice <inline-formula><mml:math id="mm24"><mml:semantics><mml:mrow><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:semantics></mml:math></inline-formula>, rook mobility is uniformly 28, king mobility is uniformly 80, knight mobility is uniform and maximal, and bishop parity components persist. Formally, the finite board B may be viewed as an induced subgraph of this vertex-transitive toroidal product graph, and our results in <xref ref-type="sec" rid="sec3-appliedmath-06-00048">Section 3</xref> quantify how truncation affects degree, reachability, and parity structure.</p>
      </sec>
      <sec id="sec2dot7-appliedmath-06-00048">
        <title>2.7. Visualization of Higher-Dimensional Geometric Structures</title>
        <p>Understanding four-dimensional geometry requires designing effective mappings to human-perceivable space, a challenge long emphasized in both mathematical exposition and popular scientific treatments of higher dimensions [<xref ref-type="bibr" rid="B3-appliedmath-06-00048">3</xref>]. Classical work by Banchoff [<xref ref-type="bibr" rid="B2-appliedmath-06-00048">2</xref>] establishes the use of slicing, cross-sections, and projections as essential techniques for revealing 4D structure. Hanson [<xref ref-type="bibr" rid="B8-appliedmath-06-00048">8</xref>] demonstrates the advantages of quaternion-based camera control for smooth 3D navigation, avoiding gimbal lock and highlighting geometric continuity.</p>
        <p>Information visualization research by Ware [<xref ref-type="bibr" rid="B7-appliedmath-06-00048">7</xref>] underscores that comprehension of high-dimensional data relies on consistent spatial metaphors, externalized visual cues, interactive highlighting and filtering, and careful management of cognitive load.</p>
        <p>Contemporary work extends these principles to 4D scientific visualization:<list list-type="order"><list-item><label><italic>1.</italic>&#xA0;</label><p>Caplan [<xref ref-type="bibr" rid="B18-appliedmath-06-00048">18</xref>] explores GPU-assisted 4D slicing for spacetime meshes.</p></list-item><list-item><label><italic>2.</italic>&#xA0;</label><p>Kopczy&#x144;ski and Celi&#x144;ska-Kopczy&#x144;ska [<xref ref-type="bibr" rid="B19-appliedmath-06-00048">19</xref>] examine hyperbolic embeddings that preserve adjacency.</p></list-item><list-item><label><italic>3.</italic>&#xA0;</label><p>Cavallo [<xref ref-type="bibr" rid="B20-appliedmath-06-00048">20</xref>] demonstrates interactive 4D rotations in Unity, revealing the cognitive challenge of full SO(4) manipulation, that is, the group of orientation-preserving rotations acting on &#x211D;<sup>4</sup>.</p></list-item></list></p>
        <p>Our approach follows these insights by opting for slice-based visualization rather than full 4D rotation. Rendering all 64 <inline-formula><mml:math id="mm25"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-boards simultaneously offers stable spatial positioning, allowing users to track moves across dimensions with consistent referential cues.</p>
        <p>More broadly, recent surveys highlight the growing role of immersive-visualization technologies&#x2014;particularly virtual reality&#x2014;in supporting the understanding of complex, high-dimensional data and structures [<xref ref-type="bibr" rid="B21-appliedmath-06-00048">21</xref>]. Complementary reviews focusing on the visualization of artificial intelligence systems in virtual reality further emphasize the value of interactive, spatial representations for interpretability and exploratory analysis of complex computational systems [<xref ref-type="bibr" rid="B22-appliedmath-06-00048">22</xref>].</p>
      </sec>
      <sec id="sec2dot8-appliedmath-06-00048">
        <title>2.8. Prior 4D Chess Implementations</title>
        <p>Several hobbyists or experimental 4D chess systems exist, including Santoso&#x2019;s open-source project [<xref ref-type="bibr" rid="B23-appliedmath-06-00048">23</xref>]. These implementations typically</p>
        <list list-type="order">
          <list-item>
            <label><italic>1.</italic>&#xA0;</label>
            <p>adopt heuristic movement extensions,</p>
          </list-item>
          <list-item>
            <label><italic>2.</italic>&#xA0;</label>
            <p>lack mathematical formalization of displacement sets,</p>
          </list-item>
          <list-item>
            <label><italic>3.</italic>&#xA0;</label>
            <p>do not analyze move graphs or invariants,</p>
          </list-item>
          <list-item>
            <label><italic>4.</italic>&#xA0;</label>
            <p>and rarely provide rigorous rule definitions for special mechanics such as castling and en passant.</p>
          </list-item>
        </list>
        <p>Commercial games such as <italic>5D Chess with Multiverse Time Travel</italic> [<xref ref-type="bibr" rid="B24-appliedmath-06-00048">24</xref>] operate in a fundamentally different paradigm, adding temporal and timeline dimensions rather than augmenting spatial dimensionality.</p>
        <p>Our contribution differs in that we provide</p>
        <list list-type="order">
          <list-item>
            <label><italic>1.</italic>&#xA0;</label>
            <p>a fully formal Z<sup>4</sup> ruleset,</p>
          </list-item>
          <list-item>
            <label><italic>2.</italic>&#xA0;</label>
            <p>mathematical analysis of move graphs,</p>
          </list-item>
          <list-item>
            <label><italic>3.</italic>&#xA0;</label>
            <p>generalized definitions of special rules,</p>
          </list-item>
          <list-item>
            <label><italic>4.</italic>&#xA0;</label>
            <p>a functioning engine with complete legality checking,</p>
          </list-item>
          <list-item>
            <label><italic>5.</italic>&#xA0;</label>
            <p>a 64-slice visualization displaying the entire 4D board at once, and</p>
          </list-item>
          <list-item>
            <label><italic>6.</italic>&#xA0;</label>
            <p>reproducible enumeration and empirical results.</p>
          </list-item>
        </list>
      </sec>
    </sec>
    <sec id="sec3-appliedmath-06-00048">
      <title>3. Mathematical Framework</title>
      <p>Throughout the paper, unless stated otherwise, we use 1-based theoretical indexing; UI images use 0-based indexing. Unless stated otherwise, all theoretical results in this section assume an otherwise empty 8 &#xD7; 8 &#xD7; 8 &#xD7; 8 board with standard boundary truncation. That is, move graphs are analyzed on the finite lattice <inline-formula><mml:math id="mm26"><mml:semantics><mml:mrow><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, intermediate squares must remain within the board, and no blocking by other pieces is present.</p>
      <sec id="sec3dot1-appliedmath-06-00048">
        <title>3.1. 4D Chess Board as a Vector Space</title>
        <p>We define the 4D chessboard as the set of integer lattice points <inline-formula><mml:math id="mm27"><mml:semantics><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>1,2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>generalizing the standard <inline-formula><mml:math id="mm28"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> board (which lies in <inline-formula><mml:math id="mm29"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>) to <inline-formula><mml:math id="mm30"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>. Each coordinate axis corresponds to one dimension of movement. Following Banchoff&#x2019;s construction of coordinate systems in higher dimensions [<xref ref-type="bibr" rid="B2-appliedmath-06-00048">2</xref>], we designate basis unit vectors in four orthogonal directions. For convenience, we label these axes <inline-formula><mml:math id="mm31"><mml:semantics><mml:mrow><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>Y</mml:mi><mml:mo>,</mml:mo><mml:mi>Z</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> and <inline-formula><mml:math id="mm32"><mml:semantics><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
        <p>The point (1, 1, 1, 1) corresponds to one corner of the 4D hypercube (the &#x201C;origin&#x201D; of the playable board), and (8,8,8,8) to the opposite corner. These points are not literally visualized but serve as coordinate references in computations.</p>
        <p>In the theoretical development, we index board coordinates from one to eight in each dimension, i.e., <inline-formula><mml:math id="mm33"><mml:semantics><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>. The implementation and user interface, however, use the conventional computer-graphics indexing <inline-formula><mml:math id="mm34"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>7</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>. Thus, Figure 2 annotations such as <inline-formula><mml:math id="mm35"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mrow><mml:mi mathvariant="normal">u</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi mathvariant="normal">u</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mi mathvariant="normal">u</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mrow><mml:mi mathvariant="normal">u</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> correspond to the theoretical coordinates (5,3,1,4). When discussing moves and proofs, we always refer to the <inline-formula><mml:math id="mm36"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> convention; UI screenshots may show the zero-based variant.</p>
        <p>The 4D board has <inline-formula><mml:math id="mm37"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>8</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>4096</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> distinct positions (cells), compared to 64 squares in standard chess. In general, an <inline-formula><mml:math id="mm38"><mml:semantics><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#xD7;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#xD7;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#xD7;</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> board contains <inline-formula><mml:math id="mm39"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula> positions, illustrating how dimensionality amplifies combinatorial complexity [<xref ref-type="bibr" rid="B25-appliedmath-06-00048">25</xref>]. This growth affects both state-space size and local connectivity: whereas a 2D square has at most eight neighbors, an interior 4D cell has up to 80 adjacent neighbors under Chebyshev adjacency.</p>
        <p>The 4D chessboard is rendered as a stack of parallel 3D slices, each representing a distinct value of the <inline-formula><mml:math id="mm40"><mml:semantics><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>-coordinate. Every visible <inline-formula><mml:math id="mm41"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> board corresponds to a fixed pair <inline-formula><mml:math id="mm42"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, showing all <inline-formula><mml:math id="mm43"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> positions for that slice. Together these orthogonal layers form a visual approximation of the underlying lattice <inline-formula><mml:math id="mm44"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, whose points represent the 4096 playable positions in four-dimensional space.</p>
        <p>A player&#x2019;s turn consists of a single move applied to exactly one piece on exactly one (z,w)-slice of the board. There are no parallel or simultaneous moves across multiple slices; the collection of 64 boards represents a single global game state rather than independent subgames.</p>
      </sec>
      <sec id="sec3dot2-appliedmath-06-00048">
        <title>3.2. Adjacency in the 4D Lattice</title>
        <statement>
          <label><bold>Definition 1</bold>&#xA0;</label>
          <p>
            <bold>(Chebyshev distance and adjacency).</bold>
          </p>
          <p><italic>For cells</italic>&#xA0;<inline-formula><mml:math id="mm45"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and</italic>&#xA0;<inline-formula><mml:math id="mm46"><mml:semantics><mml:mrow><mml:mi>q</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>in</italic>&#xA0;<inline-formula><mml:math id="mm47"><mml:semantics><mml:mrow><mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, <italic>the Chebyshev distance is</italic><disp-formula id="FD1-appliedmath-06-00048"><mml:math id="mm48" display="block"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x221E;</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi><mml:mo>{</mml:mo><mml:mo>&#x2223;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>&#x2223;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x2223;</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>&#x2223;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x2223;</mml:mo><mml:mi>z</mml:mi><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>&#x2223;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x2223;</mml:mo><mml:mi>w</mml:mi><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>&#x2223;</mml:mo><mml:mo>}</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula><italic>We call</italic>&#xA0;<inline-formula><mml:math id="mm49"><mml:semantics><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and</italic>&#xA0;<inline-formula><mml:math id="mm50"><mml:semantics><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>adjacent&#xA0;if</italic>&#xA0;<inline-formula><mml:math id="mm51"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x221E;</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>. <italic>Thus, two cells are adjacent if they differ by at most one in each coordinate and are not identical.</italic></p>
        </statement>
        <statement>
          <label><bold>Lemma</bold>&#xA0;<bold>1</bold></label>
          <p>
            <bold>(Interior adjacency count).</bold>
          </p>
          <p><italic>If</italic>&#xA0;<inline-formula><mml:math id="mm52"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is not on any boundary hyperplane (i.e.,</italic><inline-formula><mml:math id="mm53"><mml:semantics><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mn>7</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>), <italic>then</italic>&#xA0;<inline-formula><mml:math id="mm54"><mml:semantics><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>has exactly</italic>&#xA0;<inline-formula><mml:math id="mm55"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>80</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>adjacent cells.</italic></p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>For each coordinate we can choose a displacement <inline-formula><mml:math id="mm56"><mml:semantics><mml:mrow><mml:mo>&#x394;</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>. There are <inline-formula><mml:math id="mm57"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>81</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> displacement vectors of the form <inline-formula><mml:math id="mm58"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#x394;</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>&#x394;</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>&#x394;</mml:mo><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>&#x394;</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>. The zero vector is excluded because we require at least one coordinate to change, leaving <inline-formula><mml:math id="mm59"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>80</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> nonzero displacements. Since <inline-formula><mml:math id="mm60"><mml:semantics><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> is strictly interior, adding any such displacement keeps us within <inline-formula><mml:math id="mm61"><mml:semantics><mml:mrow><mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, and distinct displacements give distinct neighbors. &#x25A1; </p>
        </statement>
        <p>Boundary cells have strictly fewer neighbors due to truncation of admissible displacements.</p>
      </sec>
      <sec id="sec3dot3-appliedmath-06-00048">
        <title>3.3. 4D Initial Position Specification</title>
        <p>We index the 4D slices by <inline-formula><mml:math id="mm62"><mml:semantics><mml:mrow><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>, where <inline-formula><mml:math id="mm63"><mml:semantics><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> denotes the row (top to bottom) and <inline-formula><mml:math id="mm64"><mml:semantics><mml:mrow><mml:mi>w</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>the column (left to right) in the <inline-formula><mml:math id="mm65"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> array of visible boards shown schematically in <xref ref-type="fig" rid="appliedmath-06-00048-f001">Figure 1</xref> and in the full layered view in <xref ref-type="fig" rid="appliedmath-06-00048-f002">Figure 2</xref>. For each fixed pair <inline-formula><mml:math id="mm66"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, we obtain a standard <inline-formula><mml:math id="mm67"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> chessboard in the <inline-formula><mml:math id="mm68"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-plane. In all slices, <inline-formula><mml:math id="mm69"><mml:semantics><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> denotes White&#x2019;s back rank and <inline-formula><mml:math id="mm70"><mml:semantics><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> denotes Black&#x2019;s back rank, consistent across all <inline-formula><mml:math id="mm71"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> boards.</p>
        <p>The initial position is defined purely in terms of which <inline-formula><mml:math id="mm72"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-slices contain which side&#x2019;s standard 2D starting array. We distinguish four types of boards. <italic>White-only boards</italic> contain the usual 16 white pieces in their standard 2D starting squares and no black pieces. <italic>Black-only boards</italic> are defined analogously. <italic>Central boards</italic> contain a full standard 2D starting position with both white and black pieces arranged exactly as in classical chess. <italic>Empty boards</italic> contain no pieces at the start.</p>
        <p>Formally, with <inline-formula><mml:math id="mm73"><mml:semantics><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> counting rows from top (<inline-formula><mml:math id="mm74"><mml:semantics><mml:mrow><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>) to bottom (<inline-formula><mml:math id="mm75"><mml:semantics><mml:mrow><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>) and <inline-formula><mml:math id="mm76"><mml:semantics><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> counting columns from left (<inline-formula><mml:math id="mm77"><mml:semantics><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>) to right (<inline-formula><mml:math id="mm78"><mml:semantics><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>), we have</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Central boards (both colors present):</bold>
            </p>
          </list-item>
        </list>
        <disp-formula id="FD2-appliedmath-06-00048">
          <mml:math id="mm79" display="block">
            <mml:semantics>
              <mml:mrow>
                <mml:mi>C</mml:mi>
                <mml:mo>=</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mo>(</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>)</mml:mo>
                <mml:mo>&#x2223;</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>4</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mo>&#xA0;</mml:mo>
                <mml:mn>5</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>,</mml:mo>
                <mml:mo>&#xA0;</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>4</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mo>&#xA0;</mml:mo>
                <mml:mn>5</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>}</mml:mo>
                <mml:mo>.</mml:mo>
              </mml:mrow>
            </mml:semantics>
          </mml:math>
        </disp-formula>
        <p>On every <inline-formula><mml:math id="mm80"><mml:semantics><mml:mrow><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mi>C</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> we place a complete 2D standard starting position (both white and black).</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>White-only boards:</bold>
            </p>
          </list-item>
        </list>
        <disp-formula id="FD3-appliedmath-06-00048">
          <mml:math id="mm81" display="block">
            <mml:semantics>
              <mml:mrow>
                <mml:msub>
                  <mml:mrow>
                    <mml:mi>W</mml:mi>
                  </mml:mrow>
                  <mml:mrow>
                    <mml:mi mathvariant="normal">o</mml:mi>
                    <mml:mi mathvariant="normal">n</mml:mi>
                    <mml:mi mathvariant="normal">l</mml:mi>
                    <mml:mi mathvariant="normal">y</mml:mi>
                  </mml:mrow>
                </mml:msub>
                <mml:mo>=</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mo>(</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>)</mml:mo>
                <mml:mo>&#x2223;</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>1</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>,</mml:mo>
                <mml:mo>&#xA0;</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>1</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>4</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>}</mml:mo>
                <mml:mo>&#x222A;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mo>(</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>)</mml:mo>
                <mml:mo>&#x2223;</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>6</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>7</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>8</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>,</mml:mo>
                <mml:mo>&#xA0;</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>5</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>6</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>7</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>8</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>}</mml:mo>
                <mml:mo>.</mml:mo>
              </mml:mrow>
            </mml:semantics>
          </mml:math>
        </disp-formula>
        <p>On each such slice we place the 16 white pieces in their usual 2D starting squares; all black squares on that slice are empty.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Black-only boards:</bold>
            </p>
          </list-item>
        </list>
        <disp-formula id="FD4-appliedmath-06-00048">
          <mml:math id="mm82" display="block">
            <mml:semantics>
              <mml:mrow>
                <mml:msub>
                  <mml:mrow>
                    <mml:mi>B</mml:mi>
                  </mml:mrow>
                  <mml:mrow>
                    <mml:mi mathvariant="normal">o</mml:mi>
                    <mml:mi mathvariant="normal">n</mml:mi>
                    <mml:mi mathvariant="normal">l</mml:mi>
                    <mml:mi mathvariant="normal">y</mml:mi>
                  </mml:mrow>
                </mml:msub>
                <mml:mo>=</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mo>(</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>)</mml:mo>
                <mml:mo>&#x2223;</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>1</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>,</mml:mo>
                <mml:mo>&#xA0;</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>5</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>6</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>7</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>8</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>}</mml:mo>
                <mml:mo>&#x222A;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mo>(</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>)</mml:mo>
                <mml:mo>&#x2223;</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>6</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>7</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>8</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>,</mml:mo>
                <mml:mo>&#xA0;</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>1</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>4</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>}</mml:mo>
                <mml:mo>.</mml:mo>
              </mml:mrow>
            </mml:semantics>
          </mml:math>
        </disp-formula>
        <p>Here, we place only the 16 black pieces in their standard starting squares; white has no pieces on these slices.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Empty boards:</bold>
            </p>
          </list-item>
        </list>
        <disp-formula id="FD5-appliedmath-06-00048">
          <mml:math id="mm83" display="block">
            <mml:semantics>
              <mml:mrow>
                <mml:mi>E</mml:mi>
                <mml:mo>=</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mo>(</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>)</mml:mo>
                <mml:mo>&#x2223;</mml:mo>
                <mml:mi>z</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>4</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>5</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>,</mml:mo>
                <mml:mo>&#xA0;</mml:mo>
                <mml:mi>w</mml:mi>
                <mml:mo>&#x2208;</mml:mo>
                <mml:mo>{</mml:mo>
                <mml:mn>1</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>6</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>7</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>8</mml:mn>
                <mml:mo>}</mml:mo>
                <mml:mo>}</mml:mo>
                <mml:mo>.</mml:mo>
              </mml:mrow>
            </mml:semantics>
          </mml:math>
        </disp-formula>
        <p>These 12 boards start with no pieces at all.</p>
        <p>By construction the four sets <inline-formula><mml:math id="mm84"><mml:semantics><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>E</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> are pairwise disjoint and cover all 64 boards:<disp-formula id="FD6-appliedmath-06-00048"><mml:math id="mm85" display="block"><mml:semantics><mml:mrow><mml:mo>&#x2223;</mml:mo><mml:mi>C</mml:mi><mml:mo>&#x2223;</mml:mo><mml:mo>=</mml:mo><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2223;</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">y</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2223;</mml:mo><mml:mo>=</mml:mo><mml:mn>24</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2223;</mml:mo><mml:msub><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">y</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2223;</mml:mo><mml:mo>=</mml:mo><mml:mn>24</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2223;</mml:mo><mml:mi>E</mml:mi><mml:mo>&#x2223;</mml:mo><mml:mo>=</mml:mo><mml:mn>12</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula></p>
        <p>Each color occupies the same number of boards. For a fixed color, every board in which it appears contains exactly the standard 2D starting array of 16 pieces. Therefore,<disp-formula id="FD7-appliedmath-06-00048"><mml:math id="mm86" display="block"><mml:semantics><mml:mrow><mml:mrow><mml:mrow><mml:mi>White</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mi>pieces</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mo>&#x2223;</mml:mo><mml:msub><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">y</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2223;</mml:mo><mml:mo>+</mml:mo><mml:mo>&#x2223;</mml:mo><mml:mi>C</mml:mi><mml:mo>&#x2223;</mml:mo><mml:mo>)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mn>16</mml:mn><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn>24</mml:mn><mml:mo>+</mml:mo><mml:mn>4</mml:mn><mml:mo>)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mn>16</mml:mn><mml:mo>=</mml:mo><mml:mn>448</mml:mn><mml:mo>,</mml:mo></mml:mrow><mml:mspace linebreak="newline"/><mml:mrow><mml:mrow><mml:mi>Black</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mi>pieces</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mo>&#x2223;</mml:mo><mml:msub><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">y</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2223;</mml:mo><mml:mo>+</mml:mo><mml:mo>&#x2223;</mml:mo><mml:mi>C</mml:mi><mml:mo>&#x2223;</mml:mo><mml:mo>)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mn>16</mml:mn><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn>24</mml:mn><mml:mo>+</mml:mo><mml:mn>4</mml:mn><mml:mo>)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mn>16</mml:mn><mml:mo>=</mml:mo><mml:mn>448</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula></p>
        <p>This configuration corresponds to the quadrant structure visible in <xref ref-type="fig" rid="appliedmath-06-00048-f003">Figure 3</xref> and is used solely to exercise move generation, legality, and visualization under dense conditions. All mathematical results are independent of the starting layout.</p>
      </sec>
      <sec id="sec3dot4-appliedmath-06-00048">
        <title>3.4. Win Conditions with Multiple Kings</title>
        <p>Because each slice containing a full 2D starting position includes a king, every side begins the game with multiple kings (28 in our standard setup). In 4D chess, each king is treated as a fully royal piece. A player may lose the game by failing to defend just one of their kings. Even if dozens of other friendly kings remain safe elsewhere in the 4D lattice, allowing a single king to remain in unavoidable attack ends the game.</p>
        <p>We denote by <inline-formula><mml:math id="mm87"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> the set of all kings belonging to player <inline-formula><mml:math id="mm88"><mml:semantics><mml:mrow><mml:mi>P</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mi>White</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>Black</mml:mi><mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> in position <inline-formula><mml:math id="mm89"><mml:semantics><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>. A single game state may contain many kings for each side, distributed across different <inline-formula><mml:math id="mm90"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-slices.</p>
        <list list-type="simple">
          <list-item>
            <p><bold>Attack map on</bold>&#xA0;<inline-formula><mml:math id="mm91"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula></p>
          </list-item>
        </list>
        <p>A crucial distinction is between pseudo-legal moves (which may leave the moving side&#x2019;s own kings in check) and fully legal moves (which are allowed by the rules). Threats are defined using pseudo-legal moves only.</p>
        <p>For any position <inline-formula><mml:math id="mm92"><mml:semantics><mml:mrow><mml:mi>s</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>and player <inline-formula><mml:math id="mm93"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, let <inline-formula><mml:math id="mm94"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>Pieces</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> be the set of all pieces of <inline-formula><mml:math id="mm95"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> in <inline-formula><mml:math id="mm96"><mml:semantics><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>. For a piece <inline-formula><mml:math id="mm97"><mml:semantics><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, let <inline-formula><mml:math id="mm98"><mml:semantics><mml:mrow><mml:mi>pMoves</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> be the set of pseudo-legal target squares for <inline-formula><mml:math id="mm99"><mml:semantics><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> in <inline-formula><mml:math id="mm100"><mml:semantics><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>: these moves respect board boundaries, occupancy, and line-of-sight blocking, but do not enforce king safety for player <inline-formula><mml:math id="mm101"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
        <p>We define the attack map of <inline-formula><mml:math id="mm102"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> as <inline-formula><mml:math id="mm103"><mml:semantics><mml:mrow><mml:msubsup><mml:mrow><mml:mi>Att</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>*</mml:mi></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>{</mml:mo><mml:mi>q</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>B</mml:mi><mml:mo>&#x2223;</mml:mo><mml:mo>&#x2203;</mml:mo><mml:mi>u</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mi>Pieces</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mrow><mml:mo>&#xA0;</mml:mo><mml:mi>with</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>pMoves</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>}</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> where <inline-formula><mml:math id="mm104"><mml:semantics><mml:mrow><mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> is the set of all 4D board cells. A particular king <inline-formula><mml:math id="mm105"><mml:semantics><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> with square <inline-formula><mml:math id="mm106"><mml:semantics><mml:mrow><mml:mo>&#x25A1;</mml:mo><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> is attacked in <inline-formula><mml:math id="mm107"><mml:semantics><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> if <inline-formula><mml:math id="mm108"><mml:semantics><mml:mrow><mml:mo>&#x25A1;</mml:mo><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi>Att</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>*</mml:mi></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula></p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Check, legal moves, and multiple kings</bold>
            </p>
          </list-item>
        </list>
        <p>We now define check and legality in terms of this attack map.</p>
        <statement>
          <label><bold>Definition 2</bold>&#xA0;</label>
          <p>
            <bold>(Check).</bold>
          </p>
          <p><italic>Player</italic>&#xA0;<inline-formula><mml:math id="mm109"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is in check in position</italic>&#xA0;<inline-formula><mml:math id="mm110"><mml:semantics><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>if at least one of their kings is attacked:</italic><disp-formula id="FD9-appliedmath-06-00048"><mml:math id="mm111" display="block"><mml:semantics><mml:mrow><mml:mi>InCheck</mml:mi><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mo>&#xA0;</mml:mo></mml:mrow><mml:mo>&#x27FA;</mml:mo><mml:mrow><mml:mo>&#xA0;</mml:mo><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x2203;</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mrow><mml:mo>&#xA0;</mml:mo><mml:mi>such</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mi>that</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow><mml:mo>&#x25A1;</mml:mo><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi>Att</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>*</mml:mi></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula><italic>If several kings are attacked simultaneously, we say that</italic> &#xA0;<inline-formula><mml:math id="mm112"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is in</italic> multi-check<italic>, but the formal definition of check does not distinguish this case.</italic></p>
        </statement>
        <p>A move by <inline-formula><mml:math id="mm113"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> is initially generated as a pseudo-legal move <inline-formula><mml:math id="mm114"><mml:semantics><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, producing a successor position <inline-formula><mml:math id="mm115"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>apply</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>. The move is legal exactly when none of <inline-formula><mml:math id="mm116"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#x2019;s kings are attacked in the resulting position.</p>
        <statement>
          <label><bold>Definition 3</bold>&#xA0;</label>
          <p>
            <bold>(Legal move).</bold>
          </p>
          <p><italic>Let</italic>&#xA0;<inline-formula><mml:math id="mm117"><mml:semantics><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>be a pseudo-legal move by player</italic>&#xA0;<inline-formula><mml:math id="mm118"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>in position</italic>&#xA0;<inline-formula><mml:math id="mm119"><mml:semantics><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>, and let</italic>&#xA0;<inline-formula><mml:math id="mm120"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi mathvariant="italic">apply</mml:mi><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>be the resulting position. Then,</italic>&#xA0;<inline-formula><mml:math id="mm121"><mml:semantics><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is&#xA0;legal&#xA0;if</italic>&#xA0;<inline-formula><mml:math id="mm122"><mml:semantics><mml:mrow><mml:mo>&#x2200;</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>)</mml:mo><mml:mo>:</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mo>&#x25A1;</mml:mo><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2209;</mml:mo><mml:msubsup><mml:mrow><mml:mi>Att</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>*</mml:mi></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula></p>
        </statement>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Checkmate and stalemate with multiple kings</bold>
            </p>
          </list-item>
        </list>
        <p>Let <inline-formula><mml:math id="mm123"><mml:semantics><mml:mrow><mml:mi>LegalMoves</mml:mi><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> denote the set of all legal moves for player <inline-formula><mml:math id="mm124"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> in state <inline-formula><mml:math id="mm125"><mml:semantics><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, obtained by filtering pseudo-legal moves by Definition 3.</p>
        <statement>
          <label><bold>Definition 4</bold>&#xA0;</label>
          <p>
            <bold>(Checkmate).</bold>
          </p>
          <p>
            <list list-type="order">
              <list-item>
                <label><italic>1.</italic>&#xA0;</label>
                <p><italic>Player</italic>&#xA0;<inline-formula><mml:math id="mm126"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is&#xA0;checkmated&#xA0;in position</italic>&#xA0;<inline-formula><mml:math id="mm127"><mml:semantics><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>&#xA0;if</italic></p>
              </list-item>
              <list-item>
                <label><italic>2.</italic>&#xA0;</label>
                <p><inline-formula><mml:math id="mm128"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is in check in&#xA0;<inline-formula><mml:math id="mm129"><mml:semantics><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, i.e., </italic><inline-formula><mml:math id="mm130"><mml:semantics><mml:mrow><mml:mi mathvariant="italic">InCheck</mml:mi><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>holds, and</italic></p>
              </list-item>
            </list>
          </p>
          <p><inline-formula><mml:math id="mm131"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>has no legal moves: </italic><inline-formula><mml:math id="mm132"><mml:semantics><mml:mrow><mml:mi mathvariant="italic">LegalMoves</mml:mi><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x2205;</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula></p>
          <p><italic>Thus, checkmate occurs precisely when at least one king of</italic>&#xA0;<inline-formula><mml:math id="mm133"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is attacked and every pseudo-legal move by</italic>&#xA0;<inline-formula><mml:math id="mm134"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>leaves at least one of their kings attacked in the resulting position. It is irrelevant whether one or many kings are currently under attack: a single unavoidable threat to any king suffices to end the game.</italic></p>
        </statement>
        <statement>
          <label><bold>Definition 5</bold>&#xA0;</label>
          <p>
            <bold>(Stalemate).</bold>
          </p>
          <p><italic>Player <inline-formula><mml:math id="mm135"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> is</italic> stalemated <italic>in position <inline-formula><mml:math id="mm136"><mml:semantics><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> if</italic></p>
          <p>
            <list list-type="order">
              <list-item>
                <label><italic>1.</italic>&#xA0;</label>
                <p>
                  <italic><inline-formula><mml:math id="mm137"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> is not in check in <inline-formula><mml:math id="mm138"><mml:semantics><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, i.e., <inline-formula><mml:math id="mm139"><mml:semantics><mml:mrow><mml:mo>&#xAC;</mml:mo><mml:mi mathvariant="italic">InCheck</mml:mi><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>, but</italic>
                </p>
              </list-item>
              <list-item>
                <label><italic>2.</italic>&#xA0;</label>
                <p>
                  <italic><inline-formula><mml:math id="mm140"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> has no legal moves: <inline-formula><mml:math id="mm141"><mml:semantics><mml:mrow><mml:mi mathvariant="italic">LegalMoves</mml:mi><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>&#x2205;</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula></italic>
                </p>
              </list-item>
            </list>
          </p>
          <p>
            <italic>These definitions are exact analogs of the classical 2D rules, with the single difference that the set
          <inline-formula><mml:math id="mm142"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> may contain many kings.</italic>
          </p>
        </statement>
        <statement>
          <label><bold>Remark 1</bold>&#xA0;</label>
          <p>
            <bold>(Edge cases with multiple kings).</bold>
          </p>
          <p>
            <italic>If two or more kings of a player are attacked, any legal move must remove all such attacks simultaneously; saving only one king is insufficient. Kings may block or capture like any other piece, including moving into the line of attack to shield another king, provided that no king is attacked in the resulting position. Conversely, if defending one king exposes another to attack (for example via a discovered check), the move is illegal under Definition 3.</italic>
          </p>
        </statement>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Draw rules</bold>
            </p>
          </list-item>
        </list>
        <p>The pseudocode in Listing 1 uses a consistent imperative style with camelCase function names; mathematical symbols (e.g., &#x2208;, &#x2205;) are used only for set membership and are notational rather than implementation-specific.</p>
        <array>
          <tbody>
            <tr>
              <td align="left" valign="middle"><bold>Listing 1.</bold> Pseudocode implementation of multi-king check and checkmate detection based on pseudo-legal attacks.</td>
            </tr>
            <tr>
              <td align="left" valign="middle" style="border:solid thin">// Return the set of pseudo-legal moves for a piece, ignoring king safety.<break/>function pseudoLegalMoves(state, piece):<break/> &#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;// Respects board boundaries, occupancy and blocking, but does NOT<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0; // check whether the move leaves the moving side in check.<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#x2026;<break/>// Return true if and only if &#x2018;square&#x2019; is attacked by player P in &#x2018;state&#x2019;.<break/>function squareAttackedBy(state, P, square):<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;for each piece e of player P in state do<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if square &#x2208; pseudoLegalMoves(state, e) then<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;return true<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;return false<break/>// Player P is in check if and only if at least one of their kings is attacked.<break/>function inCheck(state, P):<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;for each king k of player P in state do<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if squareAttackedBy(state, 1 &#x2212; P, k.square) then<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;return true<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;return false<break/>// A pseudo-legal move is legal if and only if no king of P is attacked afterwards.<break/>function isLegalMove(state, P, move):<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;state&#x2019; &#x2190; apply(move, state)<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;for each king k of player P in state&#x2019; do<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if squareAttackedBy(state&#x2019;, 1 &#x2212; P, k.square) then<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;return false<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;return true<break/>// Enumerate all legal moves of player P in &#x2018;state&#x2019;.<break/>function legalMoves(state, P):<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;moves &#x2190; &#x2205;<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;for each piece e of player P in state do<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;for each move in pseudoLegalMoves(state, e) do<break/> &#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if isLegalMove(state, P, move) then<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;insert move into moves<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;return moves<break/>// Checkmate: in check and has no legal moves.<break/>function checkmated(state, P):<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if not inCheck(state, P) then<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;return false<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;if legalMoves(state, P) is empty then<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;return true<break/>&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;return false</td>
            </tr>
          </tbody>
        </array>
        <p>Classical draw conditions extend naturally to 4D chess: stalemate is defined as above, and threefold repetition and the 50-move rule are implemented exactly as in FIDE chess. In our engine, we maintain a hash of the complete 4D state and a half-move clock to detect these draw conditions over the full 4D configuration space.</p>
        <p>Listing 1 provides reference pseudocode implementing Definitions 2&#x2013;4.</p>
      </sec>
      <sec id="sec3dot5-appliedmath-06-00048">
        <title>3.5. 4D Graph Model of Moves</title>
        <p>We model the game as a directed graph <inline-formula><mml:math id="mm143"><mml:semantics><mml:mrow><mml:mi>G</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>V</mml:mi><mml:mo>,</mml:mo><mml:mi>E</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> where each vertex <inline-formula><mml:math id="mm144"><mml:semantics><mml:mrow><mml:mi>v</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>V</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>represents a unique configuration of pieces (a game state), and each directed edge <inline-formula><mml:math id="mm145"><mml:semantics><mml:mrow><mml:mo>(</mml:mo><mml:mi>v</mml:mi><mml:mo>&#x2192;</mml:mo><mml:msup><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mi>E</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> represents a legal move transforming state <inline-formula><mml:math id="mm146"><mml:semantics><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> to <inline-formula><mml:math id="mm147"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>. By restricting attention to the movement of a single piece, we obtain a subgraph whose vertices are board squares (positions) and whose edges indicate that piece&#x2019;s ability to move from one square to another in a single move, assuming an otherwise empty board. These subgraphs are useful for analyzing each piece&#x2019;s mobility and the geometry of its moves in 4D space.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Mathematical Results and Formal Properties</bold>
            </p>
          </list-item>
        </list>
        <p>Throughout this subsection, we consider rook movement on an otherwise empty finite 8 &#xD7; 8 &#xD7; 8 &#xD7; 8 board, so that all mobility counts explicitly account for boundary truncation.</p>
        <statement>
          <label><bold>Theorem 1</bold>&#xA0;</label>
          <p>
            <bold>(Boundary-sensitive rook mobility).</bold>
          </p>
          <p><italic>Let</italic>&#xA0;<inline-formula><mml:math id="mm148"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula><italic>. The rook mobility is exactly</italic><disp-formula id="FD10-appliedmath-06-00048"><mml:math id="mm149" display="block"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:mn>8</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:mn>8</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:mn>8</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:mi>w</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:mn>8</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula></p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>Each axis contributes distance to the boundary in both directions. Summing the eight distances gives the formula. &#x25A1;</p>
        </statement>
        <statement>
          <label><bold>Corollary 1</bold>&#xA0;</label>
          <p>
            <bold>(Uniform rook mobility).</bold>
          </p>
          <p><italic>On an empty</italic>&#xA0;<inline-formula><mml:math id="mm150"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>board, the rook mobility is identically</italic>&#xA0;<inline-formula><mml:math id="mm151"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn>28</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>for every</italic>&#xA0;<inline-formula><mml:math id="mm152"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>For each axis <inline-formula><mml:math id="mm153"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, the distance to the minimum boundary plus the distance to the maximum boundary equals seven; hence every axis contributes exactly seven moves, giving <inline-formula><mml:math id="mm154"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn>4</mml:mn><mml:mo>&#x22C5;</mml:mo><mml:mn>7</mml:mn><mml:mo>=</mml:mo><mml:mn>28</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>. &#x25A1;</p>
        </statement>
        <statement>
          <label><bold>Theorem 2</bold>&#xA0;</label>
          <p>
            <bold>(Rook graph as Hamming graph </bold>
            <inline-formula>
              <mml:math id="mm155">
                <mml:semantics>
                  <mml:mrow>
                    <mml:mi mathvariant="bold-italic">H</mml:mi>
                    <mml:mo>(</mml:mo>
                    <mml:mn>4,8</mml:mn>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:semantics>
              </mml:math>
            </inline-formula>
            <bold>).</bold>
          </p>
          <p><italic>The rook move graph on</italic>&#xA0;<inline-formula><mml:math id="mm156"><mml:semantics><mml:mrow><mml:mi>B</mml:mi><mml:mo>=</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>equals the Hamming graph</italic>&#xA0;<inline-formula><mml:math id="mm157"><mml:semantics><mml:mrow><mml:mi>H</mml:mi><mml:mo>(</mml:mo><mml:mn>4,8</mml:mn><mml:mo>)</mml:mo><mml:mo>&#x2245;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub><mml:mo>&#x25A1;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub><mml:mo>&#x25A1;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub><mml:mo>&#x25A1;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>8</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula><italic>. Hence it is</italic>&#xA0;<inline-formula><mml:math id="mm158"><mml:semantics><mml:mrow><mml:mn>28</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-regular and</italic>&#xA0;<inline-formula><mml:math id="mm159"><mml:semantics><mml:mrow><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>4</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>Two vertices are adjacent if they differ in exactly one coordinate. Therefore, the graph distance equals Hamming distance, which is at most <inline-formula><mml:math id="mm160"><mml:semantics><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">u</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>. Degree is <inline-formula><mml:math id="mm161"><mml:semantics><mml:mrow><mml:mn>4</mml:mn><mml:mo>(</mml:mo><mml:mn>8</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn>28</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>. &#x25A1;</p>
        </statement>
      </sec>
      <sec id="sec3dot6-appliedmath-06-00048">
        <title>3.6. Knight Mobility and Boundary Stratification</title>
        <p>The 4D board decomposes naturally according to boundary distance. A knight requires distance at least two from the boundary along the axis carrying the &#xB1;2 displacement, and distance at least one along the axis carrying the &#xB1;1 displacement; larger distances do not further restrict legality.</p>
        <p>The following analysis assumes an empty 8 &#xD7; 8 &#xD7; 8 &#xD7; 8 board and characterizes knight mobility solely as a function of distance from the board boundary; no other pieces are present. The following theorem gives a closed-form stratification of 4D knight mobility purely in terms of boundary distances, independent of absolute position.</p>
        <statement>
          <label><bold>Theorem 3</bold>&#xA0;</label>
          <p>
            <bold>(Knight mobility and boundary stratification).</bold>
          </p>
          <p><italic>Let</italic>&#xA0;<inline-formula><mml:math id="mm162"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula><italic>. Define boundary distances</italic>&#xA0;<inline-formula><mml:math id="mm163"><mml:semantics><mml:mrow><mml:mi mathvariant="script">l</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>u</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>r</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn>8</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and availability counts</italic>&#xA0;<inline-formula><mml:math id="mm164"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>[</mml:mo><mml:mi mathvariant="script">l</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2265;</mml:mo><mml:mn>1</mml:mn><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>[</mml:mo><mml:mi>r</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2265;</mml:mo><mml:mn>1</mml:mn><mml:mo>]</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>[</mml:mo><mml:mi mathvariant="script">l</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2265;</mml:mo><mml:mn>2</mml:mn><mml:mo>]</mml:mo><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>[</mml:mo><mml:mi>r</mml:mi><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2265;</mml:mo><mml:mn>2</mml:mn><mml:mo>]</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula></p>
          <p>
            <italic>In particular, the knight degree is given by the following closed-form formula:</italic>
            <disp-formula id="FD11-appliedmath-06-00048">
              <mml:math id="mm165" display="block">
                <mml:semantics>
                  <mml:mrow>
                    <mml:msub>
                      <mml:mrow>
                        <mml:mi mathvariant="normal">d</mml:mi>
                        <mml:mi mathvariant="normal">e</mml:mi>
                        <mml:mi mathvariant="normal">g</mml:mi>
                      </mml:mrow>
                      <mml:mrow>
                        <mml:mi>N</mml:mi>
                      </mml:mrow>
                    </mml:msub>
                    <mml:mo stretchy="false">(</mml:mo>
                    <mml:mi>p</mml:mi>
                    <mml:mo stretchy="false">)</mml:mo>
                    <mml:mo>=</mml:mo>
                    <mml:mrow>
                      <mml:munder>
                        <mml:mo stretchy="true">&#x2211;</mml:mo>
                        <mml:mrow>
                          <mml:mi>i</mml:mi>
                          <mml:mo>&#x2260;</mml:mo>
                          <mml:mi>j</mml:mi>
                        </mml:mrow>
                      </mml:munder>
                      <mml:mrow>
                        <mml:msub>
                          <mml:mrow>
                            <mml:mi>c</mml:mi>
                          </mml:mrow>
                          <mml:mrow>
                            <mml:mn>2</mml:mn>
                          </mml:mrow>
                        </mml:msub>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mo stretchy="false">(</mml:mo>
                    <mml:msub>
                      <mml:mrow>
                        <mml:mi>u</mml:mi>
                      </mml:mrow>
                      <mml:mrow>
                        <mml:mi>i</mml:mi>
                      </mml:mrow>
                    </mml:msub>
                    <mml:mo stretchy="false">)</mml:mo>
                    <mml:mo>&#xA0;</mml:mo>
                    <mml:msub>
                      <mml:mrow>
                        <mml:mi>c</mml:mi>
                      </mml:mrow>
                      <mml:mrow>
                        <mml:mn>1</mml:mn>
                      </mml:mrow>
                    </mml:msub>
                    <mml:mo stretchy="false">(</mml:mo>
                    <mml:msub>
                      <mml:mrow>
                        <mml:mi>u</mml:mi>
                      </mml:mrow>
                      <mml:mrow>
                        <mml:mi>j</mml:mi>
                      </mml:mrow>
                    </mml:msub>
                    <mml:mo stretchy="false">)</mml:mo>
                    <mml:mo>=</mml:mo>
                    <mml:mo stretchy="false">(</mml:mo>
                    <mml:mrow>
                      <mml:munder>
                        <mml:mo stretchy="true">&#x2211;</mml:mo>
                        <mml:mrow>
                          <mml:mi>i</mml:mi>
                        </mml:mrow>
                      </mml:munder>
                      <mml:mrow>
                        <mml:msub>
                          <mml:mrow>
                            <mml:mi>c</mml:mi>
                          </mml:mrow>
                          <mml:mrow>
                            <mml:mn>2</mml:mn>
                          </mml:mrow>
                        </mml:msub>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mo stretchy="false">(</mml:mo>
                    <mml:msub>
                      <mml:mrow>
                        <mml:mi>u</mml:mi>
                      </mml:mrow>
                      <mml:mrow>
                        <mml:mi>i</mml:mi>
                      </mml:mrow>
                    </mml:msub>
                    <mml:mo stretchy="false">)</mml:mo>
                    <mml:mo stretchy="false">)</mml:mo>
                    <mml:mo stretchy="false">(</mml:mo>
                    <mml:mrow>
                      <mml:munder>
                        <mml:mo stretchy="true">&#x2211;</mml:mo>
                        <mml:mrow>
                          <mml:mi>j</mml:mi>
                        </mml:mrow>
                      </mml:munder>
                      <mml:mrow>
                        <mml:msub>
                          <mml:mrow>
                            <mml:mi>c</mml:mi>
                          </mml:mrow>
                          <mml:mrow>
                            <mml:mn>1</mml:mn>
                          </mml:mrow>
                        </mml:msub>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mo stretchy="false">(</mml:mo>
                    <mml:msub>
                      <mml:mrow>
                        <mml:mi>u</mml:mi>
                      </mml:mrow>
                      <mml:mrow>
                        <mml:mi>j</mml:mi>
                      </mml:mrow>
                    </mml:msub>
                    <mml:mo stretchy="false">)</mml:mo>
                    <mml:mo stretchy="false">)</mml:mo>
                    <mml:mo>&#x2212;</mml:mo>
                    <mml:mrow>
                      <mml:munder>
                        <mml:mo stretchy="true">&#x2211;</mml:mo>
                        <mml:mrow>
                          <mml:mi>i</mml:mi>
                        </mml:mrow>
                      </mml:munder>
                      <mml:mrow>
                        <mml:msub>
                          <mml:mrow>
                            <mml:mi>c</mml:mi>
                          </mml:mrow>
                          <mml:mrow>
                            <mml:mn>2</mml:mn>
                          </mml:mrow>
                        </mml:msub>
                      </mml:mrow>
                    </mml:mrow>
                    <mml:mo stretchy="false">(</mml:mo>
                    <mml:msub>
                      <mml:mrow>
                        <mml:mi>u</mml:mi>
                      </mml:mrow>
                      <mml:mrow>
                        <mml:mi>i</mml:mi>
                      </mml:mrow>
                    </mml:msub>
                    <mml:mo stretchy="false">)</mml:mo>
                    <mml:msub>
                      <mml:mrow>
                        <mml:mi>c</mml:mi>
                      </mml:mrow>
                      <mml:mrow>
                        <mml:mn>1</mml:mn>
                      </mml:mrow>
                    </mml:msub>
                    <mml:mo stretchy="false">(</mml:mo>
                    <mml:msub>
                      <mml:mrow>
                        <mml:mi>u</mml:mi>
                      </mml:mrow>
                      <mml:mrow>
                        <mml:mi>i</mml:mi>
                      </mml:mrow>
                    </mml:msub>
                    <mml:mo stretchy="false">)</mml:mo>
                    <mml:mo>.</mml:mo>
                  </mml:mrow>
                </mml:semantics>
              </mml:math>
            </disp-formula>
          </p>
          <p><italic>The availability functions c</italic><sub>1</sub>&#xA0;<italic>and c</italic><sub>2</sub>&#xA0;<italic>already account for sign multiplicity of displacements, so no additional factor appears in the degree expression. The present analysis is restricted to</italic>&#xA0;<inline-formula><mml:math id="mm166"><mml:semantics><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mn>4</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and</italic>&#xA0;<inline-formula><mml:math id="mm167"><mml:semantics><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula><italic>; extending the boundary-availability formulation to general</italic>&#xA0;<inline-formula><mml:math id="mm168"><mml:semantics><mml:mrow><mml:mi>d</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula><italic>and</italic>&#xA0;<inline-formula><mml:math id="mm169"><mml:semantics><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is straightforward but outside the scope of this paper.</italic></p>
        </statement>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Consequences</bold>
            </p>
          </list-item>
        </list>
        <p><xref ref-type="table" rid="appliedmath-06-00048-t001">Table 1</xref> summarizes the values obtained from the stratification formula in Theorem 3 and confirms them via exhaustive enumeration over all 4096 squares.</p>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>A knight displacement is a permutation of <inline-formula><mml:math id="mm170"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
          <p>Choosing the &#xB1;2 axis <inline-formula><mml:math id="mm171"><mml:semantics><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>and the &#xB1;1 axis <inline-formula><mml:math id="mm172"><mml:semantics><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> yields a legal move if the boundary distances along those axes are sufficient to accommodate the required step sizes. The closed-form expression follows by counting admissible sign choices for each ordered pair <inline-formula><mml:math id="mm173"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>. Exhaustive enumeration over all <inline-formula><mml:math id="mm174"><mml:semantics><mml:mrow><mml:mn>4096</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> squares using the public implementation (GitHub: <uri>https://github.com/oanaunc/4d_chess</uri>, accessed on 10 December 2025) is consistent with <xref ref-type="table" rid="appliedmath-06-00048-t001">Table 1</xref>. &#x25A1;</p>
        </statement>
        <p>Unlike rook, bishop, and king move graphs, the 4D knight graph does not admit a Cartesian product or parity-based decomposition; the boundary-availability formulation used here is therefore the primary original technical contribution of this paper.</p>
        <p>All bishop results in this subsection are derived for an otherwise empty finite board <inline-formula><mml:math id="mm175"><mml:semantics><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, with diagonal paths required to remain entirely within the board.</p>
      </sec>
      <sec id="sec3dot7-appliedmath-06-00048">
        <title>3.7. Bishop Connectivity and Parity Invariants</title>
        <statement>
          <label><bold>Definition 6</bold>&#xA0;</label>
          <p>
            <bold>(4D bishop).</bold>
          </p>
          <p><italic>On an otherwise empty board, a bishop at</italic>&#xA0;<inline-formula><mml:math id="mm176"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula><italic>may move to any cell</italic>&#xA0;<inline-formula><mml:math id="mm177"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mo>&#x394;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>such that</italic></p>
          <p>
            <list list-type="order">
              <list-item>
                <label><italic>1.</italic>&#xA0;</label>
                <p><italic>exactly two components of</italic>&#xA0;<inline-formula><mml:math id="mm178"><mml:semantics><mml:mrow><mml:mo>&#x394;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>are nonzero,</italic></p>
              </list-item>
              <list-item>
                <label><italic>2.</italic>&#xA0;</label>
                <p><italic>the two nonzero components have equal absolute value:</italic>&#xA0;<inline-formula><mml:math id="mm179"><mml:semantics><mml:mrow><mml:mo>&#x2223;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x394;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2223;</mml:mo><mml:mo>=</mml:mo><mml:mo>&#x2223;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x394;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2223;</mml:mo><mml:mo>=</mml:mo><mml:mi>d</mml:mi><mml:mo>&#x2265;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>,</p>
              </list-item>
              <list-item>
                <label><italic>3.</italic>&#xA0;</label>
                <p>
                  <italic>the remaining two components are zero, and</italic>
                </p>
              </list-item>
              <list-item>
                <label><italic>4.</italic>&#xA0;</label>
                <p><italic>all intermediate cells along the diagonal remain inside</italic>&#xA0;<inline-formula><mml:math id="mm180"><mml:semantics><mml:mrow><mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and unobstructed.</italic></p>
              </list-item>
            </list>
          </p>
          <p><italic>Thus, legal displacements have the form</italic>&#xA0;<inline-formula><mml:math id="mm181"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>,&#xA0;</italic><inline-formula><mml:math id="mm182"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>,&#xA0;</italic><inline-formula><mml:math id="mm183"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>,&#xA0;</italic><inline-formula><mml:math id="mm184"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>,&#xA0;</italic><inline-formula><mml:math id="mm185"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>,&#xA0;</italic><inline-formula><mml:math id="mm186"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>with</italic>&#xA0;<inline-formula><mml:math id="mm187"><mml:semantics><mml:mrow><mml:mi>d</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>7</mml:mn><mml:mo>}</mml:mo><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula><italic>bounded by edges.</italic></p>
        </statement>
        <statement>
          <label><bold>Lemma 2</bold>&#xA0;</label>
          <p>
            <bold>(Parity invariance of bishop moves).</bold>
          </p>
          <p><italic>A bishop move in four dimensions changes exactly two coordinates by equal magnitude and opposite or equal sign. Consequently, for any bishop displacement</italic>&#xA0;<inline-formula><mml:math id="mm188"><mml:semantics><mml:mrow><mml:mo>&#x394;</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mo>&#x394;</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x394;</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x394;</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x394;</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>we have</italic>&#xA0;<inline-formula><mml:math id="mm189"><mml:semantics><mml:mrow><mml:mo>&#x394;</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mo>&#x394;</mml:mo><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mo>&#x394;</mml:mo><mml:mi>z</mml:mi><mml:mo>+</mml:mo><mml:mo>&#x394;</mml:mo><mml:mi>w</mml:mi><mml:mo>&#x2261;</mml:mo><mml:mn>0</mml:mn><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mn>2</mml:mn><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>Therefore, the parity function</italic>&#xA0;<inline-formula><mml:math id="mm190"><mml:semantics><mml:mrow><mml:mi>&#x3C0;</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mi>z</mml:mi><mml:mo>+</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is invariant under all bishop moves.</italic></p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>By Definition 6, a bishop displacement has exactly two nonzero components, both equal to <inline-formula><mml:math id="mm191"><mml:semantics><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> for some <inline-formula><mml:math id="mm192"><mml:semantics><mml:mrow><mml:mi>d</mml:mi><mml:mo>&#x2265;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>. The sum of the coordinate changes is thus <inline-formula><mml:math id="mm193"><mml:semantics><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mi>d</mml:mi><mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>, which is always even. &#x25A1;</p>
        </statement>
        <statement>
          <label><bold>Lemma 3</bold>&#xA0;</label>
          <p>
            <bold>(Interior reachability within a parity class).</bold>
          </p>
          <p><italic>Let</italic>&#xA0;<inline-formula><mml:math id="mm194"><mml:semantics><mml:mrow><mml:mi>I</mml:mi><mml:mo>=</mml:mo><mml:mo>{</mml:mo><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>6</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>be the interior of the board. For any two squares</italic>&#xA0;<inline-formula><mml:math id="mm195"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>with</italic>&#xA0;<inline-formula><mml:math id="mm196"><mml:semantics><mml:mrow><mml:mi>&#x3C0;</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>&#x3C0;</mml:mi><mml:mo>(</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula><italic>, there exists a bishop path from</italic>&#xA0;<inline-formula><mml:math id="mm197"><mml:semantics><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>to</italic>&#xA0;<inline-formula><mml:math id="mm198"><mml:semantics><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>entirely contained in</italic>&#xA0;<inline-formula><mml:math id="mm199"><mml:semantics><mml:mrow><mml:mi>I</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>Because <inline-formula><mml:math id="mm200"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, all diagonal moves of length at least one in any coordinate plane remain inside the board. A bishop move can adjust any chosen pair of coordinates while keeping the other two fixed.</p>
          <p>We first use at most two bishop moves to match the first two coordinates of <inline-formula><mml:math id="mm201"><mml:semantics><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> to those of <inline-formula><mml:math id="mm202"><mml:semantics><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, operating in an appropriate coordinate plane (e.g., <inline-formula><mml:math id="mm203"><mml:semantics><mml:mrow><mml:mi>X</mml:mi><mml:mi>Y</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>). Because parity is preserved (Lemma 2), the remaining two coordinates automatically differ by an even total and can be matched using at most two additional bishop moves in another coordinate plane (e.g., <inline-formula><mml:math id="mm204"><mml:semantics><mml:mrow><mml:mi>Z</mml:mi><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>). All intermediate squares remain in <inline-formula><mml:math id="mm205"><mml:semantics><mml:mrow><mml:mi>I</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>. &#x25A1;</p>
        </statement>
        <statement>
          <label><bold>Example 1</bold>&#xA0;</label>
          <p>
            <bold>(Explicit constructive bishop path).</bold>
          </p>
          <p>
            <italic>Let p = (3,3,3,3) and q = (6,5,4,3).</italic>
          </p>
          <p>
            <italic>Both points lie in the interior I and satisfy &#x3C0;(p) = &#x3C0;(q).</italic>
          </p>
          <p>
            <italic>First, adjust the X and Y coordinates while keeping Z and W fixed.</italic>
          </p>
          <p><italic>From p, perform a bishop move in the XY-plane with displacement (+2,+2,0,0), reaching p</italic><sub>1</sub>&#xA0;<italic>= (5,5,3,3).</italic></p>
          <p><italic>Next, adjust the remaining coordinates using a diagonal move in the XZ-plane with displacement (+1,0,+1,0), yielding p</italic><sub>2</sub>&#xA0;<italic>= (6,5,4,3) = q.</italic></p>
          <p>
            <italic>All moves are legal bishop moves, remain entirely within the interior I, and preserve parity at each step. This concrete example illustrates the general constructive routing argument used in Lemma 3.</italic>
          </p>
        </statement>
        <statement>
          <label><bold>Lemma 4</bold>&#xA0;</label>
          <p>
            <bold>(Boundary correction via interior detours).</bold>
          </p>
          <p><italic>Let</italic>&#xA0;<inline-formula><mml:math id="mm206"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>be any square. There exists a bishop path of length at most two from</italic>&#xA0;<inline-formula><mml:math id="mm207"><mml:semantics><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>to a square</italic>&#xA0;<inline-formula><mml:math id="mm208"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>such that</italic>&#xA0;<inline-formula><mml:math id="mm209"><mml:semantics><mml:mrow><mml:mi>&#x3C0;</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>&#x3C0;</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>If <inline-formula><mml:math id="mm210"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, take <inline-formula><mml:math id="mm211"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>. Otherwise, at least one coordinate of <inline-formula><mml:math id="mm212"><mml:semantics><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> equals one, two, seven, or eight. Choose a coordinate plane involving one boundary coordinate and one non-boundary coordinate (which must exist unless all coordinates are on the boundary, in which case any plane may be chosen). A unit diagonal move in that plane can be chosen to move the boundary coordinate toward the interior while remaining inside the board. Because bishop moves preserve parity, this operation does not change <inline-formula><mml:math id="mm213"><mml:semantics><mml:mrow><mml:mi>&#x3C0;</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>. Repeating once if necessary yields a square in <inline-formula><mml:math id="mm214"><mml:semantics><mml:mrow><mml:mi>I</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> after at most two moves. &#x25A1;</p>
        </statement>
        <statement>
          <label><bold>Theorem 4</bold>&#xA0;</label>
          <p>
            <bold>(Bishop connectivity and parity decomposition).</bold>
          </p>
          <p><italic>On the 4D board</italic>&#xA0;<inline-formula><mml:math id="mm215"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>, the bishop move graph has exactly two connected components, corresponding to the two parity classes defined by</italic>&#xA0;<inline-formula><mml:math id="mm216"><mml:semantics><mml:mrow><mml:mi>&#x3C0;</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mi>z</mml:mi><mml:mo>+</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mn>2</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula></p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>Bishop moves preserve parity, so no bishop path can connect squares of opposite parity. Conversely, let p, q be any two squares with &#x3C0;(p) = &#x3C0;(q). By Lemma 4, there exist squares p&#x2032;, q&#x2032; &#x2208; I reachable from p and q, respectively, by parity-preserving bishop paths. By Lemma 3, there exists a bishop path entirely within I connecting p&#x2032; to q&#x2032;. Concatenating these paths yields a bishop path from p to q.</p>
          <p>Thus, each parity class forms a connected component, and there are exactly two such components.</p>
          <p>For example, from the boundary square p = (1,4,4,4), a single diagonal bishop move in the XY-plane with displacement (+1,+1,0,0) reaches p&#x2032; = (2,5,4,4), which lies in the interior I and has the same parity. &#x25A1;</p>
        </statement>
      </sec>
      <sec id="sec3dot8-appliedmath-06-00048">
        <title>3.8. Piece Movement Rules</title>
        <p>For later reference we summarize the displacement sets of standard pieces in <xref ref-type="table" rid="appliedmath-06-00048-t002">Table 2</xref>.</p>
        <statement>
          <label><bold>Lemma 5</bold>&#xA0;</label>
          <p>
            <bold>(Bishop planes).</bold>
          </p>
          <p><italic>There are exactly</italic>&#xA0;<inline-formula><mml:math id="mm217"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mfrac linethickness="0pt"><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>6</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>independent coordinate planes (XY, XZ, XW, YZ, YW, ZW) in which a 4D bishop can move.</italic></p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>The bishop chooses an unordered pair of distinct axes from <inline-formula><mml:math id="mm218"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>. The number of such pairs is the binomial coefficient <inline-formula><mml:math id="mm219"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mfrac linethickness="0pt"><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>6</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>. &#x25A1;</p>
        </statement>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Closed-form mobility formula for the 4D bishop.</bold>
            </p>
          </list-item>
        </list>
        <p>For a bishop at position <inline-formula><mml:math id="mm220"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> on an empty board, the mobility in one coordinate plane <inline-formula><mml:math id="mm221"><mml:semantics><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mi>XY</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>XZ</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>XW</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>YZ</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>YW</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>ZW</mml:mi><mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> is <inline-formula><mml:math id="mm222"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mo>+</mml:mo><mml:mo>+</mml:mo></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mo>+</mml:mo><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mo>+</mml:mo></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> where for each diagonal direction we define <inline-formula><mml:math id="mm223"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi>distance</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mi>to</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mi>the</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mi>board</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mi>boundary</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mi>along</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow><mml:mo>(</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mrow><mml:mo>&#xA0;</mml:mo><mml:mi>in</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mi>plane</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula></p>
        <p>Concretely, for the XY-plane,<disp-formula id="FD12-appliedmath-06-00048"><mml:math id="mm224" display="block"><mml:semantics><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mo>+</mml:mo><mml:mo>+</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mo>(</mml:mo><mml:mn>8</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mn>8</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mo>+</mml:mo><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mo>(</mml:mo><mml:mn>8</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow><mml:mspace linebreak="newline"/><mml:mrow><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mo>+</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">min</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1,8</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>y</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mo>&#x2212;</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">min</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></disp-formula></p>
        <p>The same pattern applies to all six coordinate planes by substituting the appropriate coordinate pair. Therefore, the total bishop mobility is<disp-formula id="FD14-appliedmath-06-00048"><mml:math id="mm225" display="block"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">b</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">s</mml:mi><mml:mi mathvariant="normal">h</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:munder><mml:mo stretchy="true">&#x2211;</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mfrac linethickness="0pt"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>Y</mml:mi><mml:mo>,</mml:mo><mml:mi>Z</mml:mi><mml:mo>,</mml:mo><mml:mi>W</mml:mi><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:munder><mml:mrow><mml:msub><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula></p>
        <p>This restriction preserves the traditional distinction between sliding pieces; allowing diagonal motion in three or four coordinates would collapse bishop and queen behavior into a single dominant class, a design choice we intentionally avoid (see Definition 7).</p>
        <p>The queen in 4D combines the rook and bishop moves. It can move along any 1-axis line or any 2-axis plane. We chose this definition to maintain the spirit of the queen as &#x201C;rook + bishop&#x201D;; one could imagine even higher-order moves like 3-axis or 4-axis diagonals, but those are not used by any standard piece in our variant.</p>
        <statement>
          <label><bold>Definition 7</bold>&#xA0;</label>
          <p>
            <bold>(4D queen).</bold>
          </p>
          <p>
            <italic>A queen&#x2019;s legal displacements are the union of the rook and bishop displacements in Definitions 1 and 6: any integer distance along a single axis, or along a 2D diagonal in any coordinate plane, subject to path clearance. We deliberately restrict the queen to one- and two-axis moves; allowing 3-axis or 4-axis diagonals would create a piece strictly dominating both rook and bishop, collapsing all sliding pieces into one equivalence class.</italic>
          </p>
          <p><italic>Meanwhile, the knight&#x2019;s move generalizes the 2D</italic>&#xA0;<inline-formula><mml:math id="mm226"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>pattern.</italic></p>
          <p>
            <italic>Under this definition, queen reachability inherits the bishop&#x2019;s parity decomposition and the rook&#x2019;s full connectivity, matching the intended hybrid role of the piece.</italic>
          </p>
        </statement>
        <statement>
          <label><bold>Definition 8</bold>&#xA0;</label>
          <p>
            <bold>(4D knight).</bold>
          </p>
          <p><italic>On an otherwise empty board, a knight at</italic>&#xA0;<inline-formula><mml:math id="mm227"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula><italic>may move to any cell</italic>&#xA0;<inline-formula><mml:math id="mm228"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mo>&#x394;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>such that:</italic></p>
          <p>
            <list list-type="order">
              <list-item>
                <label><italic>1.</italic>&#xA0;</label>
                <p><italic>exactly two coordinates of</italic>&#xA0;<inline-formula><mml:math id="mm229"><mml:semantics><mml:mrow><mml:mo>&#x394;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>are nonzero and the other two are zero;</italic></p>
              </list-item>
              <list-item>
                <label><italic>2.</italic>&#xA0;</label>
                <p><italic>among the nonzero coordinates of</italic>&#xA0;<inline-formula><mml:math id="mm230"><mml:semantics><mml:mrow><mml:mo>&#x394;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula><italic>, one has absolute value</italic>&#xA0;<inline-formula><mml:math id="mm231"><mml:semantics><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and the other has absolute value</italic>&#xA0;<inline-formula><mml:math id="mm232"><mml:semantics><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
              </list-item>
            </list>
          </p>
          <p><italic>Equivalently, the displacement set consists of all permutations of vectors of the form</italic>&#xA0;<inline-formula><mml:math id="mm233"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>. The knight jumps, so intermediate cells do not matter.</italic></p>
        </statement>
        <statement>
          <label><bold>Proposition 1</bold>&#xA0;</label>
          <p>
            <bold>(Full knight move count = 48 only on the strict interior).</bold>
          </p>
          <p><italic>A knight has exactly 48 legal moves on an empty board if and only if</italic>&#xA0;<inline-formula><mml:math id="mm234"><mml:semantics><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>6</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula></p>
          <p>
            <italic>On all other squares, boundary clipping reduces the move count.</italic>
          </p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>As in Theorem 3, specifying a knight displacement requires choosing the 2-axis, the 1-axis, and their signs, giving 48 possible displacements. For an interior cell, all 48 land inside <inline-formula><mml:math id="mm235"><mml:semantics><mml:mrow><mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>; boundary cells lose some moves, but the maximum remains 48. &#x25A1;</p>
        </statement>
        <statement>
          <label><bold>Proposition 2</bold>&#xA0;</label>
          <p>
            <bold>(Parity structure of diagonal and knight moves).</bold>
          </p>
          <p><italic>On the lattice</italic>&#xA0;<inline-formula><mml:math id="mm236"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>, define the parity function</italic>&#xA0;<inline-formula><mml:math id="mm237"><mml:semantics><mml:mrow><mml:mi>&#x3C0;</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mi>z</mml:mi><mml:mo>+</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula><italic>. Then, for interior squares (ignoring boundary effects):</italic></p>
          <p><italic>(i) Along any rook line, square colors strictly alternate: a unit rook step changes parity, and a rook move of length</italic>&#xA0;<inline-formula><mml:math id="mm238"><mml:semantics><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>along a single axis changes parity by</italic>&#xA0;<inline-formula><mml:math id="mm239"><mml:semantics><mml:mrow><mml:mi>d</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
          <p>
            <italic>(ii) Every legal bishop move preserves parity, so a bishop is confined to one of the two parity classes.</italic>
          </p>
          <p>
            <italic>(iii) Every legal knight move changes parity.</italic>
          </p>
          <p>
            <italic>(iv) A king has 80 legal one-step moves in the interior; exactly 40 of these neighbors have the same parity as the king&#x2019;s starting square and 40 have the opposite parity.</italic>
          </p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>(i) A rook move from <inline-formula><mml:math id="mm240"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> to <inline-formula><mml:math id="mm241"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>(or along any other axis) changes the coordinate sum by <inline-formula><mml:math id="mm242"><mml:semantics><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, so <inline-formula><mml:math id="mm243"><mml:semantics><mml:mrow><mml:mi>&#x3C0;</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> changes by <inline-formula><mml:math id="mm244"><mml:semantics><mml:mrow><mml:mi>d</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>. A unit step (<inline-formula><mml:math id="mm245"><mml:semantics><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>) flips parity, hence colors alternate along any rook line.</p>
          <p>(ii) A bishop move has displacement with two coordinates <inline-formula><mml:math id="mm246"><mml:semantics><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> and the other two zero, so the sum of coordinate changes is always even.</p>
          <p>(iii) A knight move is a permutation of <inline-formula><mml:math id="mm247"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1,0</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>. The sum of coordinate changes is <inline-formula><mml:math id="mm248"><mml:semantics><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mn>2</mml:mn><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>, which is always odd, so parity flips.</p>
          <p>(iv) A king move changes each coordinate by <inline-formula><mml:math id="mm249"><mml:semantics><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> or <inline-formula><mml:math id="mm250"><mml:semantics><mml:mrow><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>, not all zero. If <inline-formula><mml:math id="mm251"><mml:semantics><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>4</mml:mn><mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> coordinates change, then the sum of coordinate changes has the same parity as <inline-formula><mml:math id="mm252"><mml:semantics><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>. There are <inline-formula><mml:math id="mm253"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mfrac linethickness="0pt"><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula> such displacements. Thus,</p>
          <p>
            <list list-type="order">
              <list-item>
                <label><italic>1.</italic>&#xA0;</label>
                <p><inline-formula><mml:math id="mm254"><mml:semantics><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>: <inline-formula><mml:math id="mm255"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mfrac linethickness="0pt"><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> moves (parity flip)</p>
              </list-item>
              <list-item>
                <label><italic>2.</italic>&#xA0;</label>
                <p><inline-formula><mml:math id="mm256"><mml:semantics><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>: <inline-formula><mml:math id="mm257"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mfrac linethickness="0pt"><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>24</mml:mn><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> moves (parity preserved)</p>
              </list-item>
              <list-item>
                <label><italic>3.</italic>&#xA0;</label>
                <p><inline-formula><mml:math id="mm258"><mml:semantics><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>3</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>: <inline-formula><mml:math id="mm259"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mfrac linethickness="0pt"><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>32</mml:mn><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>moves (parity flip)</p>
              </list-item>
              <list-item>
                <label><italic>4.</italic>&#xA0;</label>
                <p><inline-formula><mml:math id="mm260"><mml:semantics><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>4</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>: <inline-formula><mml:math id="mm261"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mfrac linethickness="0pt"><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>16</mml:mn><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> moves (parity preserved)</p>
              </list-item>
              <list-item>
                <label><italic>5.</italic>&#xA0;</label>
                <p>So 8 + 32 = 40 moves change parity and 24 + 16 = 40 preserve parity. &#x25A1;</p>
              </list-item>
            </list>
          </p>
        </statement>
        <p>We note that while these move definitions are natural extensions of the 2D rules, there were design choices to be made. Our definitions ensure that each piece&#x2019;s movement preserves as much of its traditional character as possible while utilizing the extra degrees of freedom.</p>
      </sec>
      <sec id="sec3dot9-appliedmath-06-00048">
        <title>3.9. King Moves and Castling in 4D</title>
        <p>A 4D king moves exactly one step in any of the four dimensions or any combination of them; it can move to any adjacent square that differs by at most one in each coordinate. This includes axial, planar, 3D-diagonal, and full 4D-diagonal moves. On an empty board, an interior king has <inline-formula><mml:math id="mm262"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>80</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> possible moves, compared to <inline-formula><mml:math id="mm263"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> moves in 2D chess.</p>
        <statement>
          <label><bold>Definition 9</bold>&#xA0;</label>
          <p>
            <bold>(4D king).</bold>
          </p>
          <p><italic>A king at position</italic>&#xA0;<inline-formula><mml:math id="mm264"><mml:semantics><mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>may move to any adjacent cell</italic>&#xA0;<inline-formula><mml:math id="mm265"><mml:semantics><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula><italic>with</italic>&#xA0;<inline-formula><mml:math id="mm266"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x221E;</mml:mo></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula><italic>, provided that</italic>&#xA0;<inline-formula><mml:math id="mm267"><mml:semantics><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula><italic>is not occupied by a friendly piece and that the move does not place any king of the moving player in check.</italic></p>
        </statement>
        <p><xref ref-type="fig" rid="appliedmath-06-00048-f002">Figure 2</xref> illustrates the legal one-step moves of a 4D king from an interior square, as defined in Definition 9.</p>
        <fig id="appliedmath-06-00048-f002" position="anchor">
          <label>Figure 2</label>
          <caption>
            <p>The 4D chess interface highlighting the available moves of a king located at the internal board coordinates <inline-formula><mml:math id="mm467"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> (zero-based indexing; in the theoretical model this is <inline-formula><mml:math id="mm268"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>5</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>). Source: 4d chess app on 17 November 2025 (<uri>https://oanarinaldi.com/4d_chess/</uri>).</p>
          </caption>
          <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="appliedmath-06-00048-g002.tif"/>
        </fig>
        <statement>
          <label><bold>Definition 10</bold>&#xA0;</label>
          <p>
            <bold>(Castling in 4D).</bold>
          </p>
          <p><italic>We now give a fully formal definition of castling in four dimensions, explicitly specifying preconditions, affected squares, and global attack constraints. Castling is restricted to the X-axis because it is the unique axis along which (i) king and rook remain co-planar in every</italic>&#xA0;<inline-formula><mml:math id="mm269"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-slice, and (ii) the movement preserves the classical semantics of &#x201C;rank-based&#x201D; castling as an axis-parallel translation. Castling is permitted only along the X-axis within a fixed</italic>&#xA0;<inline-formula><mml:math id="mm270"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-slice.</italic></p>
          <p><italic>Let the king begin at</italic>&#xA0;<inline-formula><mml:math id="mm271"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and a rook begin at</italic>&#xA0;<inline-formula><mml:math id="mm272"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>with</italic>&#xA0;<inline-formula><mml:math id="mm273"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2260;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula><italic>. A castling move is legal for player</italic>&#xA0;<inline-formula><mml:math id="mm274"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>if</italic><list list-type="order"><list-item><label><italic>1.</italic>&#xA0;</label><p><italic>The king and the rook in that slice are both unmoved.</italic></p></list-item><list-item><label><italic>2.</italic>&#xA0;</label><p><italic>All squares strictly between</italic>&#xA0;<inline-formula><mml:math id="mm275"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and</italic>&#xA0;<inline-formula><mml:math id="mm276"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>are empty.</italic></p></list-item><list-item><label><italic>3.</italic>&#xA0;</label><p><italic>For every square</italic>&#xA0;<inline-formula><mml:math id="mm277"><mml:semantics><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula><italic>the king traverses (including the destination),</italic>&#xA0;<inline-formula><mml:math id="mm278"><mml:semantics><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x2209;</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="italic">Att</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>*</mml:mi></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>where attacks may originate from any</italic>&#xA0;<inline-formula><mml:math id="mm279"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-slice.</italic></p></list-item><list-item><label><italic>4.</italic>&#xA0;</label><p><italic>The king is not in check before the move.</italic></p></list-item><list-item><label><italic>5.</italic>&#xA0;</label><p><italic>The final king and rook locations mirror the classical 2D arrangement: the king moves two squares toward the rook along X; the rook moves to the square immediately adjacent to the king on the opposite side.</italic></p></list-item></list></p>
          <p><italic>Castling affects only the king and rook in the chosen</italic>&#xA0;<inline-formula><mml:math id="mm280"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-slice; other kings in other slices are irrelevant to the legality of the move.</italic></p>
        </statement>
        <statement>
          <label><bold>Proposition 3</bold>&#xA0;</label>
          <p>
            <bold>(Legality preservation of castling).</bold>
          </p>
          <p>
            <italic>A castling move, as defined above, preserves the global legality invariant: after castling, no king of the moving player is attacked.</italic>
          </p>
        </statement>
      </sec>
      <sec id="sec3dot10-appliedmath-06-00048">
        <title>3.10. 4D Pawns (Core Ruleset)</title>
        <p>Pawns require special care because their asymmetrical movement defines much of the game&#x2019;s structure. We treat the W-axis as an additional &#x201C;rank&#x201D; direction analogous to Y, so that pawns can be oriented along either Y or W. This mirrors the idea that there are two independent &#x201C;forward&#x201D; dimensions in four-dimensional space. This choice does not reduce the game to a lower-dimensional setting, but rather generalizes the notion of a single privileged forward direction to multiple orientations within the full 4D board.</p>
        <p>Although the 4D lattice provides four axes, pawn forward motion is restricted to Y and W. Allowing Z-oriented pawns would break the only non-trivial axis symmetry of the ruleset (the permutation <inline-formula><mml:math id="mm281"><mml:semantics><mml:mrow><mml:mi>Y</mml:mi><mml:mo>&#x2194;</mml:mo><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>), introducing three inequivalent pawn types instead of two.</p>
        <statement>
          <label><bold>Definition 11</bold>&#xA0;</label>
          <p>
            <bold>(Pawn orientation).</bold>
          </p>
          <p><italic>Each pawn has a single orientation axis</italic>&#xA0;<inline-formula><mml:math id="mm282"><mml:semantics><mml:mrow><mml:mi>r</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mi>Y</mml:mi><mml:mo>,</mml:mo><mml:mi>W</mml:mi><mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
          <p>
            <list list-type="order">
              <list-item>
                <label><italic>1.</italic>&#xA0;</label>
                <p><italic>A pawn with orientation</italic>&#xA0;<inline-formula><mml:math id="mm283"><mml:semantics><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mi>Y</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula><italic>moves forward by increasing its</italic>&#xA0;<inline-formula><mml:math id="mm284"><mml:semantics><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-coordinate.</italic></p>
              </list-item>
              <list-item>
                <label><italic>2.</italic>&#xA0;</label>
                <p><italic>A pawn with orientation</italic>&#xA0;<inline-formula><mml:math id="mm285"><mml:semantics><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mi>W</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula><italic>moves forward by increasing its</italic>&#xA0;<inline-formula><mml:math id="mm286"><mml:semantics><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-coordinate.</italic></p>
              </list-item>
            </list>
          </p>
          <p><italic>Files are indexed by</italic>&#xA0;<inline-formula><mml:math id="mm287"><mml:semantics><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>, and pawns do not move or capture in the</italic>&#xA0;<inline-formula><mml:math id="mm288"><mml:semantics><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-direction. Each pawn is restricted to its own 2D subspace:</italic><list list-type="order"><list-item><label><italic>1.</italic>&#xA0;</label><p><italic>Y-pawns in the X&#x2013;Y plane</italic></p></list-item><list-item><label><italic>2.</italic>&#xA0;</label><p><italic>W-pawns in the X&#x2013;W plane</italic></p></list-item></list></p>
          <p>
            <italic>Initial orientation assignment.</italic>
          </p>
          <p>
            <italic>In the initial setup, pawn orientations are assigned deterministically by file:</italic>
          </p>
          <p>
            <list list-type="order">
              <list-item>
                <label><italic>1.</italic>&#xA0;</label>
                <p><italic>Pawns on even</italic>&#xA0;<inline-formula><mml:math id="mm289"><mml:semantics><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-coordinates are Y-oriented.</italic></p>
              </list-item>
              <list-item>
                <label><italic>2.</italic>&#xA0;</label>
                <p><italic>Pawns on odd</italic>&#xA0;<inline-formula><mml:math id="mm290"><mml:semantics><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-coordinates are W-oriented.</italic></p>
              </list-item>
            </list>
          </p>
          <p>
            <italic>This ensures that both orientations appear uniformly across all slices.</italic>
          </p>
        </statement>
        <statement>
          <label><bold>Definition 12</bold>&#xA0;</label>
          <p>
            <bold>(Forward moves).</bold>
          </p>
          <p><italic>Let</italic>&#xA0;<inline-formula><mml:math id="mm291"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>be a pawn of White at</italic>&#xA0;<inline-formula><mml:math id="mm292"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>with orientation</italic>&#xA0;<inline-formula><mml:math id="mm293"><mml:semantics><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
          <p>
            <list list-type="order">
              <list-item>
                <label><italic>1.</italic>&#xA0;</label>
                <p><italic>If</italic>&#xA0;<inline-formula><mml:math id="mm294"><mml:semantics><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>(Y-oriented pawn):</italic><list list-type="roman-lower"><list-item><label><italic>i.</italic>&#xA0;</label><p><italic>Single step:</italic>&#xA0;<inline-formula><mml:math id="mm295"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>.</p></list-item><list-item><label><italic>ii.</italic>&#xA0;</label><p><italic>Double step:</italic>&#xA0;<inline-formula><mml:math id="mm296"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>if</italic>&#xA0;<inline-formula><mml:math id="mm297"><mml:semantics><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and both intermediate squares are empty.</italic></p></list-item></list></p>
              </list-item>
              <list-item>
                <label><italic>2.</italic>&#xA0;</label>
                <p><italic>If</italic>&#xA0;<inline-formula><mml:math id="mm298"><mml:semantics><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>(W-oriented pawn):</italic></p>
                <list list-type="roman-lower">
                  <list-item>
                    <label><italic>i.</italic>&#xA0;</label>
                    <p><italic>Single step:</italic>&#xA0;<inline-formula><mml:math id="mm299"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
                  </list-item>
                  <list-item>
                    <label><italic>ii.</italic>&#xA0;</label>
                    <p><italic>Double step:</italic>&#xA0;<inline-formula><mml:math id="mm300"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>+</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>if</italic>&#xA0;<inline-formula><mml:math id="mm301"><mml:semantics><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and both intermediate squares are empty.</italic></p>
                  </list-item>
                </list>
              </list-item>
            </list>
          </p>
          <p>
            <italic>Black pawns mirror these rules by reversing the &#x201C;forward&#x2019;&#x2019; direction:</italic>
          </p>
          <p>
            <list list-type="order">
              <list-item>
                <label><italic>1.</italic>&#xA0;</label>
                <p><italic>For a Black Y-pawn, forward is in the negative</italic>&#xA0;<inline-formula><mml:math id="mm302"><mml:semantics><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-direction:</italic></p>
                <list list-type="roman-lower">
                  <list-item>
                    <label><italic>i.</italic>&#xA0;</label>
                    <p><italic>Single step:</italic>&#xA0;<inline-formula><mml:math id="mm303"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
                  </list-item>
                  <list-item>
                    <label><italic>ii.</italic>&#xA0;</label>
                    <p><italic>Double step:</italic>&#xA0;<inline-formula><mml:math id="mm304"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>if</italic>&#xA0;<inline-formula><mml:math id="mm305"><mml:semantics><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and both intermediate squares are empty.</italic></p>
                  </list-item>
                </list>
              </list-item>
              <list-item>
                <label><italic>2.</italic>&#xA0;</label>
                <p><italic>For a Black W-pawn, forward is in the negative</italic>&#xA0;<inline-formula><mml:math id="mm306"><mml:semantics><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-direction:</italic><list list-type="roman-lower"><list-item><label><italic>i.</italic>&#xA0;</label><p><italic>Single step:</italic><inline-formula><mml:math id="mm307"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>.</p></list-item><list-item><label><italic>ii.</italic>&#xA0;</label><p><italic>Double step:</italic><inline-formula><mml:math id="mm308"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>if</italic>&#xA0;<inline-formula><mml:math id="mm309"><mml:semantics><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>and both intermediate squares are empty.</italic></p></list-item></list></p>
              </list-item>
            </list>
          </p>
          <p><italic>Pawns never move in the</italic>&#xA0;<inline-formula><mml:math id="mm310"><mml:semantics><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>-direction.</italic></p>
        </statement>
        <statement>
          <label><bold>Definition 13</bold>&#xA0;</label>
          <p>
            <bold>(Captures).</bold>
          </p>
          <p>
            <italic>A pawn captures only within the 2D plane determined by its orientation.</italic>
          </p>
          <p>
            <list list-type="roman-lower">
              <list-item>
                <label><italic>i.</italic>&#xA0;</label>
                <p>
                  <italic>Y-oriented pawn captures in the X&#x2013;Y plane:</italic>
                </p>
                <p><inline-formula><mml:math id="mm311"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>for White;</italic>&#xA0;<inline-formula><mml:math id="mm312"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>
         &#xA0;<italic>for Black.</italic></p>
              </list-item>
              <list-item>
                <label><italic>ii.</italic>&#xA0;</label>
                <p>
                  <italic>W-oriented pawn captures in the X&#x2013;W plane:</italic>
                </p>
                <p><inline-formula><mml:math id="mm313"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>for White;</italic>&#xA0;<inline-formula><mml:math id="mm314"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>for Black.</italic></p>
                <p>
                  <italic>No other diagonal captures (e.g., XZ or YZ) are legal.</italic>
                </p>
              </list-item>
            </list>
          </p>
        </statement>
        <statement>
          <label><bold>Definition 14</bold>&#xA0;</label>
          <p>
            <bold>(Promotion).</bold>
          </p>
          <p>
            <italic>A pawn promotes when it reaches the far boundary in its own forward dimension:</italic>
          </p>
          <p>
            <list list-type="roman-lower">
              <list-item>
                <label><italic>i.</italic>&#xA0;</label>
                <p>
                  <italic>Y-pawns promote at
          <inline-formula><mml:math id="mm315"><mml:semantics><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> (White) or 
          <inline-formula><mml:math id="mm316"><mml:semantics><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> (Black).</italic>
                </p>
              </list-item>
              <list-item>
                <label><italic>ii.</italic>&#xA0;</label>
                <p>
                  <italic>W-pawns promote at
          <inline-formula><mml:math id="mm317"><mml:semantics><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> (White) or <inline-formula><mml:math id="mm318"><mml:semantics><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> (Black).</italic>
                </p>
              </list-item>
            </list>
          </p>
          <p>
            <italic>Promotion options are identical to standard chess (Queen, Rook, Bishop, Knight).</italic>
          </p>
        </statement>
        <statement>
          <label><bold>Definition 15</bold>&#xA0;</label>
          <p>
            <bold>(En passant).</bold>
          </p>
          <p>
            <italic>The en passant rule is generalized in a way that preserves the global pseudo-legal move and attack-map framework introduced earlier. En passant is defined independently for Y-oriented and W-oriented pawns and may be executed only on the move immediately following the opponent&#x2019;s double-step pawn advance.</italic>
            <list list-type="order">
              <list-item>
                <label><italic>1.</italic>&#xA0;</label>
                <p>
                  <italic>Y-pawn en passant.</italic>
                </p>
                <p>
                  <italic>A White Y-pawn at</italic>
                  <inline-formula>
                    <mml:math id="mm319">
                      <mml:semantics>
                        <mml:mrow>
                          <mml:mrow>
                            <mml:mo>(</mml:mo>
                            <mml:mrow>
                              <mml:msub>
                                <mml:mrow>
                                  <mml:mi>x</mml:mi>
                                </mml:mrow>
                                <mml:mrow>
                                  <mml:mi>p</mml:mi>
                                </mml:mrow>
                              </mml:msub>
                            </mml:mrow>
                            <mml:mo>,</mml:mo>
                            <mml:mrow>
                              <mml:mn>3</mml:mn>
                            </mml:mrow>
                            <mml:mo>,</mml:mo>
                            <mml:mrow>
                              <mml:msub>
                                <mml:mrow>
                                  <mml:mi>z</mml:mi>
                                </mml:mrow>
                                <mml:mrow>
                                  <mml:mi>p</mml:mi>
                                </mml:mrow>
                              </mml:msub>
                            </mml:mrow>
                            <mml:mo>,</mml:mo>
                            <mml:mrow>
                              <mml:msub>
                                <mml:mrow>
                                  <mml:mi>w</mml:mi>
                                </mml:mrow>
                                <mml:mrow>
                                  <mml:mi>p</mml:mi>
                                </mml:mrow>
                              </mml:msub>
                            </mml:mrow>
                            <mml:mo>)</mml:mo>
                          </mml:mrow>
                        </mml:mrow>
                      </mml:semantics>
                    </mml:math>
                  </inline-formula>
                  <italic>may capture en passant if</italic>
                  <list list-type="roman-lower">
                    <list-item>
                      <label><italic>i.</italic>&#xA0;</label>
                      <p><italic>Black&#x2019;s last move was a Y-pawn moving from</italic>&#xA0;<inline-formula><mml:math id="mm320"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>
         &#xA0;<italic>to</italic>&#xA0;<inline-formula><mml:math id="mm321"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>;</italic></p>
                    </list-item>
                    <list-item>
                      <label><italic>ii.</italic>&#xA0;</label>
                      <p>
                        <inline-formula>
                          <mml:math id="mm322">
                            <mml:semantics>
                              <mml:mrow>
                                <mml:mo>&#x2223;</mml:mo>
                                <mml:msub>
                                  <mml:mrow>
                                    <mml:mi>x</mml:mi>
                                  </mml:mrow>
                                  <mml:mrow>
                                    <mml:mi>p</mml:mi>
                                  </mml:mrow>
                                </mml:msub>
                                <mml:mo>&#x2212;</mml:mo>
                                <mml:msub>
                                  <mml:mrow>
                                    <mml:mi>x</mml:mi>
                                  </mml:mrow>
                                  <mml:mrow>
                                    <mml:mi>e</mml:mi>
                                  </mml:mrow>
                                </mml:msub>
                                <mml:mo>&#x2223;</mml:mo>
                                <mml:mo>=</mml:mo>
                                <mml:mn>1</mml:mn>
                              </mml:mrow>
                            </mml:semantics>
                          </mml:math>
                        </inline-formula>
                        <italic>;</italic>
                      </p>
                    </list-item>
                    <list-item>
                      <label><italic>iii.</italic>&#xA0;</label>
                      <p><italic>the capturing pawn moves to</italic>&#xA0;<inline-formula><mml:math id="mm323"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>; and</italic></p>
                    </list-item>
                    <list-item>
                      <label><italic>iv.</italic>&#xA0;</label>
                      <p><italic>the pawn at</italic>&#xA0;<inline-formula><mml:math id="mm324"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is removed.</italic></p>
                    </list-item>
                  </list>
                </p>
              </list-item>
              <list-item>
                <label><italic>2.</italic>&#xA0;</label>
                <p>
                  <italic>W-pawn en passant.</italic>
                </p>
                <p><italic>A White W-pawn at</italic>&#xA0;<inline-formula><mml:math id="mm325"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>may capture en passant if</italic><list list-type="roman-lower"><list-item><label><italic>i.</italic>&#xA0;</label><p><italic>Black&#x2019;s last move was a W-pawn moving from</italic>&#xA0;<inline-formula><mml:math id="mm326"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>to</italic>&#xA0;<inline-formula><mml:math id="mm327"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>;</italic></p></list-item><list-item><label><italic>ii.</italic>&#xA0;</label><p><inline-formula><mml:math id="mm328"><mml:semantics><mml:mrow><mml:mo>&#x2223;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2223;</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula><italic>;</italic></p></list-item><list-item><label><italic>ii.</italic>&#xA0;</label><p><italic>the capturing pawn moves to</italic>&#xA0;<inline-formula><mml:math id="mm329"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula><italic>; and</italic></p></list-item><list-item><label><italic>iv.</italic>&#xA0;</label><p><italic>the pawn at</italic>&#xA0;<inline-formula><mml:math id="mm330"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is removed.</italic></p></list-item></list></p>
              </list-item>
            </list>
          </p>
          <p>
            <italic>The corresponding en passant rules for Black pawns are defined symmetrically by reversing the forward direction along the relevant axis. Mixed-direction en passant (Y vs</italic>
            <italic>. W) does not exist.</italic>
          </p>
        </statement>
        <statement>
          <label><bold>Remark 2</bold>&#xA0;</label>
          <p>
            <bold>(Legality preservation of en passant).</bold>
          </p>
          <p>
            <italic>The generalized en passant rules remove a pawn only as part of the capturing move and do not introduce attacks or removals outside the standard pseudo-legal move and attack-map framework defined in&#xA0;<xref ref-type="sec" rid="sec3-appliedmath-06-00048">Section 3</xref>; in particular, they preserve the legality predicate of Definition 3.</italic>
          </p>
        </statement>
      </sec>
      <sec id="sec3dot11-appliedmath-06-00048">
        <title>3.11. Lattice Symmetry and Group Actions</title>
        <p>If we consider only the geometry of an empty 4D board, the number of rotational (orientation-preserving) symmetries equals the rotational symmetry group of the 4D hypercube. The full symmetry group of the discrete 4D cube is the hyperoctahedral group <inline-formula><mml:math id="mm331"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub><mml:mo>&#x22C9;</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula> of order 384, which includes reflections. The subgroup of orientation-preserving 4D rotations has order 192. In this paper, references to &#x201C;rotational symmetry&#x201D; refer specifically to this 192-element subgroup.</p>
        <p>Recent work on symmetry and equivariance in combinatorial games formalizes how game rules induce group actions on state spaces and suggests how these symmetries can be used to reduce redundancy in evaluation and search [<xref ref-type="bibr" rid="B16-appliedmath-06-00048">16</xref>,<xref ref-type="bibr" rid="B17-appliedmath-06-00048">17</xref>]. In our setting, the natural symmetry group is a subgroup of <inline-formula><mml:math id="mm332"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula>, consisting of permutations of axes and even sign flips that preserve the game&#x2019;s rules and initial configuration.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Ruleset-preserving subgroup</bold>
            </p>
          </list-item>
        </list>
        <p>We work within <inline-formula><mml:math id="mm333"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula>, the full signed-permutation symmetry group of the 4D hypercube acting on the lattice <inline-formula><mml:math id="mm334"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> via axis permutations and affine reflections <inline-formula><mml:math id="mm335"><mml:semantics><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x21A6;</mml:mo><mml:mn>9</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>. Not all symmetries of the empty hypercube preserve the 4D chess ruleset. We therefore define the ruleset-preserving subgroup <inline-formula><mml:math id="mm336"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">r</mml:mi><mml:mi mathvariant="normal">u</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
        <statement>
          <label><bold>Definition 16</bold>&#xA0;</label>
          <p><bold>(Ruleset-preserving subgroup</bold>&#xA0;<inline-formula><mml:math id="mm337"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold-italic">G</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="bold">r</mml:mi><mml:mi mathvariant="bold">u</mml:mi><mml:mi mathvariant="bold">l</mml:mi><mml:mi mathvariant="bold">e</mml:mi><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula><bold>).</bold></p>
          <p><inline-formula><mml:math id="mm338"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>is generated by</italic><list list-type="order"><list-item><label><italic>1.</italic>&#xA0;</label><p><italic>Axis permutation</italic>&#xA0;<inline-formula><mml:math id="mm339"><mml:semantics><mml:mrow><mml:mi>&#x3C3;</mml:mi><mml:mo>:</mml:mo><mml:mi>Y</mml:mi><mml:mo>&#x2194;</mml:mo><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>.</italic></p></list-item><list-item><label><italic>2.</italic>&#xA0;</label><p><italic>Even affine reflections</italic>&#xA0;<inline-formula><mml:math id="mm340"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x3C1;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x21A6;</mml:mo><mml:mn>9</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x21A6;</mml:mo><mml:mn>9</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>for</italic>&#xA0;<inline-formula><mml:math id="mm341"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>in {XY, XZ, XW, YZ, YW, ZW}.</italic></p></list-item><list-item><label><italic>3.</italic>&#xA0;</label><p><italic>Color-swap +</italic><inline-formula><mml:math id="mm342"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>180</mml:mn></mml:mrow><mml:mrow><mml:mo>&#x2218;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>
         &#xA0;<italic>rotation in the YW-plane</italic>&#xA0;<inline-formula><mml:math id="mm343"><mml:semantics><mml:mrow><mml:mi>&#x3C4;</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>.</italic></p></list-item></list></p>
          <p>
            <italic>These transformations preserve all movement rules, pawn orientations, promotion boundaries, and the initial placement.</italic>
          </p>
        </statement>
        <statement>
          <label><bold>Proposition 4</bold>&#xA0;</label>
          <p>
            <bold>(Generators of the ruleset-preserving subgroup).</bold>
          </p>
          <p><italic>The subgroup generated by</italic>&#xA0;<inline-formula><mml:math id="mm344"><mml:semantics><mml:mrow><mml:mi>&#x3C3;</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>, the six even reflections, and</italic>&#xA0;<inline-formula><mml:math id="mm345"><mml:semantics><mml:mrow><mml:mi>&#x3C4;</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>has</italic>&#xA0;<inline-formula><mml:math id="mm346"><mml:semantics><mml:mrow><mml:mo>&#x2223;</mml:mo><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2223;</mml:mo><mml:mo>=</mml:mo><mml:mn>16</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula></p>
        </statement>
        <statement>
          <label><bold>Proof.</bold>&#xA0;</label>
          <p>Direct enumeration of all compositions yields exactly 16 distinct symmetries; a detailed list is omitted for brevity but is implemented in our code base for testing symmetry invariance. &#x25A1;</p>
        </statement>
        <statement>
          <label><bold>Theorem 5</bold>&#xA0;</label>
          <p>
            <bold>(Orbit decomposition constraints).</bold>
          </p>
          <p><italic>Because</italic>&#xA0;<inline-formula><mml:math id="mm347"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi><mml:mi>e</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>has only 16 elements, its orbits on</italic>&#xA0;<inline-formula><mml:math id="mm348"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>&#xA0;<italic>must have sizes dividing 16 (i.e., 1, 2, 4, 8, or 16). In this paper we use symmetry only qualitatively&#x2014;to show parity invariance and boundary symmetry&#x2014;and we defer a complete explicit orbit decomposition to future work. In practice, we rarely use most of these symmetries in analysis, except for the subset that maps the game&#x2019;s starting configuration or typical configurations to equivalent ones. We do exploit translational symmetry in the sense that the movement patterns we described are invariant under shifting the coordinate system, e.g., a knight&#x2019;s 48 moves are the same shape regardless of where it is centered, as long as we remain within bounds. This invariance allows us to reason about moves abstractly (as vectors) without reference to absolute coordinates.</italic></p>
          <p><italic>In our ruleset, Y and W play symmetric roles for pawn movement: a pawn&#x2019;s forward axis is either Y or W. Consequently, pawn behavior remains invariant under the permutation</italic>&#xA0;<inline-formula><mml:math id="mm349"><mml:semantics><mml:mrow><mml:mi>Y</mml:mi><mml:mo>&#x2194;</mml:mo><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula><italic>. This symmetry is preserved throughout the movement rules, captures, and promotion conditions. This symmetry viewpoint is useful for reasoning about move equivalences and for algorithmic optimizations, but a full orbit decomposition is beyond the scope of this work.</italic></p>
        </statement>
      </sec>
      <sec id="sec3dot12-appliedmath-06-00048">
        <title>3.12. Dimensional Projection</title>
        <p>To support visualization and interaction, we define a projection or slicing of the 4D lattice into 3D space. Mathematically, we define a projection <inline-formula><mml:math id="mm350"><mml:semantics><mml:mrow><mml:mi>&#x3C0;</mml:mi><mml:mo>:</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2192;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula> that maps each 4D board position to a point in 3D space for rendering. One simple projection is to choose a 3D &#x201C;view&#x2019;&#x2019; matrix that flattens the W-dimension, treating <inline-formula><mml:math id="mm351"><mml:semantics><mml:mrow><mml:mi>w</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>as a spatial separation axis. For example, we can define <inline-formula><mml:math id="mm352"><mml:semantics><mml:mrow><mml:mi>&#x3C0;</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>&#x3B1;</mml:mi><mml:mi>w</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mi>&#x3B2;</mml:mi><mml:mi>w</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>for some separation parameters <inline-formula><mml:math id="mm353"><mml:semantics><mml:mrow><mml:mi>&#x3B1;</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> and <inline-formula><mml:math id="mm354"><mml:semantics><mml:mrow><mml:mi>&#x3B2;</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>. This spreads out the constant-<inline-formula><mml:math id="mm355"><mml:semantics><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> layers in the X&#x2013;Y plane of the view. In our implementation, we adopt a slicing-based visualization instead of showing a full 4D projection at once. Conceptually, fixing a pair <inline-formula><mml:math id="mm356"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> in the lattice <inline-formula><mml:math id="mm357"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> yields a standard <inline-formula><mml:math id="mm358"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> board in the <inline-formula><mml:math id="mm359"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-plane. Since there are eight possible values of <inline-formula><mml:math id="mm360"><mml:semantics><mml:mrow><mml:mi>z</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>and eight of <inline-formula><mml:math id="mm361"><mml:semantics><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, the full 4D board decomposes into 64 distinct 2D boards, each corresponding to a unique slice with fixed <inline-formula><mml:math id="mm362"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>. In the UI, all of these <inline-formula><mml:math id="mm363"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> boards are rendered as separate planes positioned in 3D space (as in <xref ref-type="fig" rid="appliedmath-06-00048-f003">Figure 3</xref>), giving a complete representation of the <inline-formula><mml:math id="mm364"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> structure via 64 visible layers.</p>
        <fig id="appliedmath-06-00048-f003" position="anchor">
          <label>Figure 3</label>
          <caption>
            <p>The 4D chessboard displayed as 64 layered <inline-formula><mml:math id="mm468"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> boards, arranged in 3D space to represent all <inline-formula><mml:math id="mm365"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-slices of the 4D grid. Source: 4d chess app on 19 November 2025 (<uri>https://oanarinaldi.com/4d_chess/</uri>).</p>
          </caption>
          <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="appliedmath-06-00048-g003.tif"/>
        </fig>
      </sec>
    </sec>
    <sec id="sec4-appliedmath-06-00048">
      <title>4. Implementation</title>
      <sec id="sec4dot1-appliedmath-06-00048">
        <title>4.1. System Architecture</title>
        <p>The 4D chess system consists of (i) a rules engine responsible for state representation, move generation, legality filtering, and end conditions and (ii) a visualization layer responsible for rendering the 64 <inline-formula><mml:math id="mm366"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-slices, user interaction, and move feedback. The engine is implemented in JavaScript for portability and ease of integration with the web-based UI. Each piece type is implemented as a class (or piece descriptor) equipped with a move-generator routine that returns pseudo-legal moves given a board state. Internally, the engine uses 1-based coordinates <inline-formula><mml:math id="mm367"><mml:semantics><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula> for consistency with the mathematical framework in <xref ref-type="sec" rid="sec3-appliedmath-06-00048">Section 3</xref>, while the UI displays 0-based indices for implementation convenience.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Board representation</bold>
            </p>
          </list-item>
        </list>
        <p>We support two equivalent internal representations of the 4D board:</p>
        <list list-type="order">
          <list-item>
            <p>Dense 4D array: board[x][y][z][w], which is feasible because the board contains only <inline-formula><mml:math id="mm368"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>8</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn>4096</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> cells.</p>
          </list-item>
          <list-item>
            <p>Sparse map: a dictionary keyed by coordinate tuples <inline-formula><mml:math id="mm369"><mml:semantics><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x21A6;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> piece objects.</p>
          </list-item>
        </list>
        <p>The dense representation offers <inline-formula><mml:math id="mm370"><mml:semantics><mml:mrow><mml:mi>O</mml:mi><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> access and simple iteration over coordinates, while the sparse representation is more efficient for move generation in typical positions because it iterates only over occupied squares. In practice, our move generator operates on piece-lists (occupied coordinates grouped by color/type), which is conceptually similar to piece-list or bitboard-oriented chess engines, but extended to a 4D coordinate domain.</p>
        <p>Move generation primitives</p>
        <p>Each piece stores its displacement directions in <inline-formula><mml:math id="mm371"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula>. For example, the rook uses the four axis directions:<disp-formula id="FD15-appliedmath-06-00048"><mml:math id="mm372" display="block"><mml:semantics><mml:mrow><mml:mo>(</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mo>(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mo>(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mo>(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></disp-formula>
        and legal destinations are obtained by stepping along a chosen direction until the path leaves the board or encounters a blocker. Sliding pieces (rook/bishop/queen) therefore use a ray-march pattern; leapers (knight/king) enumerate a fixed displacement set; pawns use orientation-dependent rule logic.</p>
      </sec>
      <sec id="sec4dot2-appliedmath-06-00048">
        <title>4.2. Special Rules in 4D</title>
        <p>The engine implements the standard chess rule categories in a form compatible with the 4D lattice and the multi-king legality definitions introduced in <xref ref-type="sec" rid="sec3-appliedmath-06-00048">Section 3</xref>.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Check/checkmate (multi-king legality)</bold>
            </p>
          </list-item>
        </list>
        <p>A move is legal only if it results in a state in which none of the moving side&#x2019;s kings are attacked (Definition 3 in <xref ref-type="sec" rid="sec3-appliedmath-06-00048">Section 3</xref>). Checkmate and stalemate are then detected exactly as in classical chess, but with respect to the entire set of kings.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Pawn promotion</bold>
            </p>
          </list-item>
        </list>
        <p>Promotion occurs when a pawn reaches the terminal boundary of its forward axis: <inline-formula><mml:math id="mm373"><mml:semantics><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>(or <inline-formula><mml:math id="mm374"><mml:semantics><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>for Black) for <inline-formula><mml:math id="mm375"><mml:semantics><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>-oriented pawns, and <inline-formula><mml:math id="mm376"><mml:semantics><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>(or <inline-formula><mml:math id="mm377"><mml:semantics><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>for Black) for <inline-formula><mml:math id="mm378"><mml:semantics><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>-oriented pawns. Pawn orientation is fixed at initialization (each pawn is either <inline-formula><mml:math id="mm379"><mml:semantics><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>-oriented or <inline-formula><mml:math id="mm380"><mml:semantics><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>-oriented) and does not change during play.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Castling</bold>
            </p>
          </list-item>
        </list>
        <p>Castling is restricted to the <inline-formula><mml:math id="mm381"><mml:semantics><mml:mrow><mml:mi>X</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>-axis within a fixed <inline-formula><mml:math id="mm382"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-slice, mirroring the classical interpretation of castling as &#x201C;rank-wise&#x201D; translation while keeping the remaining coordinates fixed.</p>
        <p>Castling is permitted only under the following conditions:<list list-type="roman-lower"><list-item><p>the king and rook involved have not moved,</p></list-item><list-item><p>all squares between them on the <inline-formula><mml:math id="mm383"><mml:semantics><mml:mrow><mml:mi>X</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>-axis (same <inline-formula><mml:math id="mm384"><mml:semantics><mml:mrow><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>) are empty,</p></list-item><list-item><p>the king is not in check before castling, and</p></list-item><list-item><p>every square in the set <inline-formula><mml:math id="mm385"><mml:semantics><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>on the king&#x2019;s path from start to destination, inclusive<inline-formula><mml:math id="mm386"><mml:semantics><mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> is not attacked by any opposing piece, where attacks may originate from any <inline-formula><mml:math id="mm387"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-slice.</p></list-item></list></p>
        <p>This definition ensures castling remains a local move in the <inline-formula><mml:math id="mm388"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-board while still respecting the global 4D attack geometry.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>En passant</bold>
            </p>
          </list-item>
        </list>
        <p>En passant is generalized independently for <inline-formula><mml:math id="mm389"><mml:semantics><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>-oriented and <inline-formula><mml:math id="mm390"><mml:semantics><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>-oriented pawns, consistent with the two allowed forward axes. The capturing pawn must be adjacent in the appropriate forward dimension after the opponent&#x2019;s two-step pawn move, and the captured pawn is removed from its landing square as in classical chess.</p>
      </sec>
      <sec id="sec4dot3-appliedmath-06-00048">
        <title>4.3. User Interface Overview</title>
        <p>At the start of a standard game, the 64 visible boards are arranged as an <inline-formula><mml:math id="mm391"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> grid over the <inline-formula><mml:math id="mm392"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-plane. The initial placement exhibits a structured quadrant pattern: for each color, 24 slices contain only that color&#x2019;s pieces; the central <inline-formula><mml:math id="mm393"><mml:semantics><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> block contains both armies; and the remaining slices are initially empty. In the UI&#x2019;s 0-based indexing, the central boards appear at <inline-formula><mml:math id="mm394"><mml:semantics><mml:mrow><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mn>4</mml:mn><mml:mo>}</mml:mo><mml:mo>&#xD7;</mml:mo><mml:mo>{</mml:mo><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mn>4</mml:mn><mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>, corresponding to theoretical coordinates <inline-formula><mml:math id="mm395"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>4</mml:mn><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>5</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>4</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mo>(</mml:mo><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>5</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
        <p><xref ref-type="fig" rid="appliedmath-06-00048-f004">Figure 4</xref> shows the interface at the conclusion of a complete 4D chess match, where the central overlay announces a checkmate. In this view, the full four-dimensional game state remains visible as a dense field of stacked 8 &#xD7; 8 boards extending in depth, rendered using Three.js. The end-of-game interface highlights how the visualization supports gameplay clarity even in the final state of a complex 4D position, with hundreds of pieces distributed across multiple spatial layers. Depth cues, transparency, and quaternion-based camera navigation allow the user to understand the final configuration despite the inherent density of the board arrangement. The surrounding UI panels provide continuous information, such as move history, piece statistics, and spatial orientation via the 4D axis gizmo, demonstrating that the system maintains interpretability from opening to checkmate.</p>
        <p>The user interface for the 4D chess environment was implemented entirely in JavaScript using the Three.js graphics library. The system renders the full four-dimensional board structure by projecting it into a three-dimensional scene where 64 distinct boards are displayed simultaneously. Each board is a complete <inline-formula><mml:math id="mm396"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> chess grid, and the boards themselves are arranged spatially in an <inline-formula><mml:math id="mm397"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>matrix, forming a large two-dimensional array that extends in the scene like a &#x201C;checkerboard of chessboards.&#x201D; This layout provides a direct visual mapping of two of the four dimensions (typically the <inline-formula><mml:math id="mm398"><mml:semantics><mml:mrow><mml:mi>z</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>and <inline-formula><mml:math id="mm399"><mml:semantics><mml:mrow><mml:mi>w</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>axes) onto a planar distribution in 3D space, creating a structure that users can navigate by orbiting and zooming.</p>
        <p>This approach follows a classical strategy for visualizing higher-dimensional structures: embedding multiple lower-dimensional slices into a single coherent spatial field. As emphasized by Banchoff, higher-dimensional objects are most accessible through their lower-dimensional projections and cross-sections [<xref ref-type="bibr" rid="B2-appliedmath-06-00048">2</xref>]. In our interface, all slices are presented simultaneously, avoiding hidden layers or dynamic slicing.</p>
        <p>Camera control is performed entirely through standard 3D navigation (rotation, zoom, pan), without any dedicated UI element for directly manipulating a fourth-coordinate &#x201C;slider.&#x201D; Camera rotation uses quaternion-based interpolation to avoid Euler-angle singularities and ensure smooth, stable motion during orbiting [<xref ref-type="bibr" rid="B8-appliedmath-06-00048">8</xref>]. This makes them well suited for navigating a dense, multi-layered structure, where small discontinuities in rotation would harm spatial readability. Using quaternions, the user can freely orbit the scene and inspect any of the 64 boards from arbitrary vantage points.</p>
        <p>Because the full <inline-formula><mml:math id="mm400"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>matrix of boards occupies significant depth when viewed in perspective, transparency is employed to maintain visibility across layers. Boards that fall behind others remain partially visible, allowing the user to perceive the global structure without losing deeper elements. As described in <italic>Computer Graphics: Principles and Practice</italic>, transparency and compositing models are essential for handling scenes in which multiple surfaces overlap in depth, enabling the viewer to perceive geometry that would otherwise be occluded [<xref ref-type="bibr" rid="B9-appliedmath-06-00048">9</xref>]. This design principle is essential when dozens of planes and hundreds of pieces share the same viewing volume.</p>
        <p>This visualization deliberately avoids simulating true 4D rotations. Penrose emphasizes that, in dimensions higher than three, rotations behave fundamentally differently: instead of rotating about a single line axis, a 4D rotation acts simultaneously in two independent planes [<xref ref-type="bibr" rid="B26-appliedmath-06-00048">26</xref>]. For this reason, the fourth dimension in our UI is represented spatially through the arrangement of the 64 boards, converting the abstract <inline-formula><mml:math id="mm401"><mml:semantics><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>-axis into a visible geometric distribution. Quaternions are used only for 3D camera orientation in the rendered scene; we do not attempt to represent or simulate 4D rotational degrees of freedom of the hypercube itself. Mathematically, our quaternion interpolations live entirely in the 3D rotation group <inline-formula><mml:math id="mm402"><mml:semantics><mml:mrow><mml:mi>S</mml:mi><mml:mi>O</mml:mi><mml:mo>(</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>; we do not attempt to implement the full six-parameter 4D rotation group <inline-formula><mml:math id="mm403"><mml:semantics><mml:mrow><mml:mi>S</mml:mi><mml:mi>O</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2245;</mml:mo><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">p</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mo>(</mml:mo><mml:mn>4</mml:mn><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mo>{</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
        <p>Within this structure, chess pieces are rendered with simplified low-polygon models for clarity and performance. Since many boards are visible simultaneously, silhouettes and color coding are more important than fine ornamentation. Hovering over or selecting a piece displays its exact 4D coordinate <inline-formula><mml:math id="mm404"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, and legal moves are visualized directly on the corresponding boards in the matrix. Movement animations interpolate through the projected 3D geometry of the matrix while preserving the underlying 4D logic computed by the engine.</p>
        <p>A significant aspect of the implementation was designing interactions that allow a player to control a 4D chess match without becoming overwhelmed. The system includes features common in modern chess interfaces: highlighting all legal moves for the selected piece, undo/redo functionality for analysis, and a complete chronological move list. Although the current version does not highlight the opponent&#x2019;s last move directly on the board layers, the move list compensates by allowing players to trace the game state across dimensions.</p>
        <p>When a user selects a piece on one board, the system highlights its reachable squares even if they lie on a different board (i.e., a different <inline-formula><mml:math id="mm405"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-slice). For example, selecting a knight may reveal target squares across multiple boards in the slice matrix, providing an explicit visual cue for an otherwise abstract 4D move. Users reported that these highlights were particularly helpful for understanding cross-dimensional moves. This design choice is consistent with information visualization principles, where externalizing abstract relations through highlighting and direct marking improves user cognition and reduces working-memory load [<xref ref-type="bibr" rid="B7-appliedmath-06-00048">7</xref>].</p>
        <p>By combining transparent layering, quaternion-based camera navigation, and a spatial <inline-formula><mml:math id="mm406"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>arrangement of 4D slices, the interface produces a coherent and comprehensible representation of a 4D chess space within a standard 3D environment. The implementation runs comfortably on a modern PC, with the graphics engine managing a few hundred simple objects (boards and pieces). Move generation, even in complex positions, completes in a fraction of a second, remaining acceptable for interactive play. Memory usage is modest: the full game state (a few thousand squares) is compact, and the system additionally maintains a complete move history and a set of previously seen states for repetition detection. The next subsection situates these design choices relative to alternative 4D visualization and search frameworks.</p>
      </sec>
      <sec id="sec4dot4-appliedmath-06-00048">
        <title>4.4. Comparison with Alternative 4D Visualization and Search Frameworks</title>
        <p>Our choice of visualization and search strategy is one of several possible approaches to working with higher-dimensional game spaces. In this subsection, we compare our design with recent work on 4D slicing, adjacency-preserving embeddings, immersive visualization, hierarchical search in large action spaces, and symmetry-aware game analysis. These comparisons motivate our choice to prioritize stable spatial mapping and immediate slice visibility, which are crucial for turn-based tactical reasoning.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Visualization: 4D slicing, adjacency, and interaction design</bold>
            </p>
          </list-item>
        </list>
        <p>Caplan&#x2019;s framework for tessellating and interactively visualizing four-dimensional spacetime geometries focuses on continuous 4D meshes for numerical simulation, using GPU-accelerated slicing and view-dependent refinement [<xref ref-type="bibr" rid="B18-appliedmath-06-00048">18</xref>]. There, the user interactively selects subsets of the 4D domain (e.g., time slabs) and explores them through dynamically generated slices. Our approach is similar in spirit&#x2014;using slices to make a 4D object intelligible&#x2014;but specialized to a small, discrete lattice. Instead of generating slices on demand, we render all 64 boards corresponding to the fixed <inline-formula><mml:math id="mm407"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-slices of the <inline-formula><mml:math id="mm408"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> lattice simultaneously.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Trade-off</bold>
            </p>
          </list-item>
        </list>
        <p>Caplan&#x2019;s method optimizes for continuous coverage and scalability (large meshes), whereas our &#x201C;checkerboard of chessboards&#x201D; optimizes for combinatorial clarity: every cell of <inline-formula><mml:math id="mm409"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> is always present, in a fixed place in the <inline-formula><mml:math id="mm410"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> grid. The cost is potential visual clutter, which we mitigate with opacity controls and camera navigation; the benefit is that players can form a stable mental map where &#x201C;moving in <inline-formula><mml:math id="mm411"><mml:semantics><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#x201D; visibly means &#x201C;jumping to the next board in the matrix.&#x201D;</p>
        <p>Kopczy&#x144;ski and Celi&#x144;ska-Kopczy&#x144;ska propose an adjacency-preserving embedding of <inline-formula><mml:math id="mm412"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula> into a hyperbolic model, where two grid points are adjacent in the visualization if and only if they are neighbors in the underlying lattice [<xref ref-type="bibr" rid="B19-appliedmath-06-00048">19</xref>]. This is attractive for infinite or very large grids, because local neighborhoods can be visualized without occlusion. However, hyperbolic embeddings deliberately distort Euclidean geometry: straight lines become curved, and distances are not proportional to coordinate differences. For 4D chess, we found that directional cues (e.g., &#x201C;this rook line is purely in <inline-formula><mml:math id="mm413"><mml:semantics><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>&#x201D;) and recognizable piece patterns (e.g., plane diagonals versus mixed-axis moves) were more important than perfect adjacency preservation in a single global view. Our Euclidean layout keeps rook and bishop trajectories visually straight and parallel, at the expense of not preserving all adjacencies uniformly.</p>
        <p>Cavallo&#x2019;s <italic>Higher Dimensional Graphics</italic> introduces a Unity-based 4D rendering engine that exposes full 4D rotations, allowing the user to manipulate orientation in all six rotation planes of <inline-formula><mml:math id="mm414"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>[<xref ref-type="bibr" rid="B20-appliedmath-06-00048">20</xref>]. This provides a powerful, general-purpose way to &#x201C;turn&#x201D; 4D objects, but it also illustrates the cognitive difficulty of interpreting such rotations: newcomers often struggle to maintain object constancy under compound 4D motions. As discussed in <xref ref-type="sec" rid="sec4dot3-appliedmath-06-00048">Section 4.3</xref>, we deliberately avoid true 4D rotations and use quaternions only for 3D camera control over a fixed arrangement of slices. Instead of rotating the 4D board, we rotate the viewer around a static 3D embedding of all <inline-formula><mml:math id="mm415"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-slices. This sacrifices geometric generality, but it keeps the mapping from coordinates to screen locations stable, which our exploratory user feedback suggests is important for learnability.</p>
        <p>VR and immersive-visualization surveys underline this tension between expressiveness and cognitive load. Korkut and Surer&#x2019;s review of VR visualization highlights the need for careful task design, explicit evaluation frameworks, and attention to information density and navigation complexity [<xref ref-type="bibr" rid="B21-appliedmath-06-00048">21</xref>]. Inkarbekov et al.&#x2019;s review of VR visualization of AI systems similarly emphasizes that game-engine-based environments (Unity, Unreal) offer rich interaction but must manage occlusion, clutter, and user fatigue [<xref ref-type="bibr" rid="B22-appliedmath-06-00048">22</xref>]. Our current web-based Three.js interface follows a &#x201C;high context, low immersion&#x201D; philosophy: all information is visible in one 3D scene, but there is no head-mounted display or full-body navigation. A natural evolution of our work would be a VR version in which players can physically navigate the 4D slice matrix; such a system should adopt standardized evaluation protocols and cognitive-load measures recommended in these surveys rather than relying solely on informal self-report.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Algorithmic search in large action spaces</bold>
            </p>
          </list-item>
        </list>
        <p>Our baseline engine uses depth-limited minimax with a Shannon-style material-plus-mobility heuristic, which is strained by the branching factors (60&#x2013;100 legal moves) observed in midgame 4D positions. Recent work on hierarchical search for combinatorial reasoning problems by Zawalski et al. systematically studies when high-level (subgoal-based) search outperforms flat search [<xref ref-type="bibr" rid="B16-appliedmath-06-00048">16</xref>]. They identify four conditions under which hierarchical search is especially advantageous: (i) hard-to-learn or noisy value functions, (ii) very large or complex action spaces, (iii) the presence of dead ends, and (iv) training data aggregated from diverse experts. 4D chess satisfies at least the first three conditions: evaluations are noisy, the action space is significantly larger than in 2D chess, and mis-coordinated deployments can lead to practical dead ends where forces are poorly positioned across <inline-formula><mml:math id="mm416"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> regions.</p>
        <p>These observations suggest a concrete hierarchical approach for 4D chess: <list list-type="roman-lower"><list-item><p>High-level planner over slices. Actions operate on coarse abstractions such as &#x201C;shift major pieces from peripheral slices to the central <inline-formula><mml:math id="mm417"><mml:semantics><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>2</mml:mn><mml:mo>&#xA0;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> block&#x201D; or &#x201C;synchronize attacks across all boards containing a given enemy king.&#x201D;</p></list-item><list-item><p>Low-level planner within slices. Conditioned on a chosen subgoal, a secondary search operates on the full move set but restricts attention to pieces and boards relevant to that subgoal (e.g., moves that keep pieces within a chosen set of <inline-formula><mml:math id="mm418"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>-slices).</p></list-item></list></p>
        <p>Following Zawalski et al., one could compare flat and hierarchical search under controlled value-noise injections and standardized test suites, measuring success rates and node expansions. Our current implementation does not yet perform this comparison; we frame it as a direct extension of their methodology to the 4D chess domain.</p>
        <p>Symmetry-aware representations</p>
        <p>The movement rules in 4D chess inherit a rich symmetry structure from the hypercube lattice. Earlier we observed that the empty board is invariant under the hyperoctahedral group <inline-formula><mml:math id="mm419"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> (signed permutations of axes) and that our move sets are translationally invariant. Recent work by Tewolde et al. on computing game symmetries and equilibria gives general tools for detecting and exploiting such symmetries using graph-automorphism techniques [<xref ref-type="bibr" rid="B17-appliedmath-06-00048">17</xref>]. They show that many game symmetries can be identified by analyzing automorphisms of an associated graph, and that equilibria respecting these symmetries can sometimes be computed more efficiently or represented more compactly.</p>
        <p>In our setting, a natural construction:<list list-type="roman-lower"><list-item><p>represents each local move graph for a piece type (e.g., the knight&#x2019;s 48-neighbor graph) as a labeled graph and use automorphism tools to identify symmetry classes of squares and configurations;</p></list-item><list-item><p>represents global game states as nodes in a larger move graph where edges correspond to legal moves; symmetries combine lattice symmetries (axis permutations and reflections) with color-swap and quadrant permutations inherited from the initial layout.</p></list-item></list></p>
        <p>A 4D chess engine could then:<list list-type="roman-lower"><list-item><p>compress the state space by storing one representative per symmetry orbit,</p></list-item><list-item><p>share evaluations between symmetric positions (reducing heuristic noise),</p></list-item><list-item><p>and design equivariant neural networks whose inputs/outputs transform according to these symmetries, improving sample efficiency [<xref ref-type="bibr" rid="B17-appliedmath-06-00048">17</xref>].</p></list-item></list></p>
      </sec>
      <sec id="sec4dot5-appliedmath-06-00048">
        <title>4.5. Symmetry Constraints and Practical Use</title>
        <p>To clarify how symmetry informs the implementation without introducing unsupported claims, we restrict attention to the ruleset-preserving subgroup <inline-formula><mml:math id="mm420"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">r</mml:mi><mml:mi mathvariant="normal">u</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> defined in <xref ref-type="sec" rid="sec3-appliedmath-06-00048">Section 3</xref>. This subgroup consists only of those affine transformations of the lattice <inline-formula><mml:math id="mm421"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> that preserve movement rules, pawn orientations, promotion boundaries, castling constraints, and the initial configuration up to color-swap.</p>
        <p>Because <inline-formula><mml:math id="mm422"><mml:semantics><mml:mrow><mml:mo>&#x2223;</mml:mo><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">r</mml:mi><mml:mi mathvariant="normal">u</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2223;</mml:mo><mml:mo>=</mml:mo><mml:mn>16</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>, the orbit&#x2013;stabilizer theorem implies that every orbit of its action on board squares must have size dividing 16. Consequently, orbit sizes are restricted to <inline-formula><mml:math id="mm423"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>4</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>8</mml:mn></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mn>16</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>. In this work, we therefore do not rely on an explicit orbit decomposition of <inline-formula><mml:math id="mm424"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mn>8</mml:mn><mml:msup><mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, nor do we enumerate orbit representatives.</p>
        <p>Instead, symmetry is used qualitatively in three ways: <list list-type="roman-lower"><list-item><p>Parity invariance. The parity function <inline-formula><mml:math id="mm425"><mml:semantics><mml:mrow><mml:mi>&#x3C0;</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>+</mml:mo><mml:mi>y</mml:mi><mml:mo>+</mml:mo><mml:mi>z</mml:mi><mml:mo>+</mml:mo><mml:mi>w</mml:mi><mml:mo>)</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mo>&#xA0;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> is invariant under all bishop moves and under all ruleset-preserving symmetries, justifying the bipartite structure of bishop reachability.</p></list-item><list-item><p>Boundary-equivalence classes. Knight mobility and king adjacency depend only on distance from the board boundary, not on absolute position, allowing mobility to be stratified by boundary-distance patterns rather than by full coordinate tuples.</p></list-item><list-item><p>Axis pairing symmetry. The equivalence between <inline-formula><mml:math id="mm426"><mml:semantics><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> and <inline-formula><mml:math id="mm427"><mml:semantics><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>-oriented pawns under the symmetry <inline-formula><mml:math id="mm428"><mml:semantics><mml:mrow><mml:mi>Y</mml:mi><mml:mo>&#x2194;</mml:mo><mml:mi>W</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> ensures that pawn logic can be implemented once and reused for both orientations.</p></list-item></list></p>
        <p>The current engine exploits only these coarse invariances (translational invariance of displacement vectors and boundary-equivalence classes). More aggressive symmetry exploitation&#x2014;such as orbit-based caching, symmetry-aware evaluation reuse, or equivariant neural architectures&#x2014;is left as future work.</p>
      </sec>
      <sec id="sec4dot6-appliedmath-06-00048">
        <title>4.6. Analysis of Move Generation and Legality Filtering</title>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Attack-map complexity</bold>
            </p>
          </list-item>
        </list>
        <p>Let <inline-formula><mml:math id="mm429"><mml:semantics><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> denote the number of pieces on the board and let <inline-formula><mml:math id="mm430"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> denote the maximal pseudo-mobility of any piece type. In 4D chess this bound is  <list list-type="roman-lower"><list-item><p><inline-formula><mml:math id="mm431"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>80</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> for kings,</p></list-item><list-item><p><inline-formula><mml:math id="mm432"><mml:semantics><mml:mrow><mml:mn>48</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> for knights,</p></list-item><list-item><p><inline-formula><mml:math id="mm433"><mml:semantics><mml:mrow><mml:mn>28</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> for rooks,</p></list-item><list-item><p>and a position-dependent value for bishops and queens due to ray truncation near boundaries.</p></list-item></list></p>
        <p>Constructing an attack map requires iterating over all opposing pieces and enumerating their pseudo-legal moves. The worst-case time complexity is therefore <inline-formula><mml:math id="mm434"><mml:semantics><mml:mrow><mml:mi>O</mml:mi><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>&#x2248;</mml:mo><mml:mi>O</mml:mi><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mn>80</mml:mn><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> In the dense initial configuration with <inline-formula><mml:math id="mm435"><mml:semantics><mml:mrow><mml:mi>P</mml:mi><mml:mo>=</mml:mo><mml:mn>896</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> pieces, constructing a full-board attack map performs on the order of <inline-formula><mml:math id="mm436"><mml:semantics><mml:mrow><mml:mn>7.1</mml:mn><mml:mo>&#xD7;</mml:mo><mml:msup><mml:mrow><mml:mn>10</mml:mn></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula> displacement or ray-step tests. In our JavaScript implementation this completes on the order of milliseconds and is negligible compared to the exponential growth of the search tree. Timing measurements were collected in the browser using high-resolution timers over repeated runs, reporting median values.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Multi-king legality filtering</bold>
            </p>
          </list-item>
        </list>
        <p>Because legality requires that no friendly king be attacked after a move, each pseudo-legal move must be checked against all successor king positions. For a side with <inline-formula><mml:math id="mm437"><mml:semantics><mml:mrow><mml:mi>K</mml:mi><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>kings (typically <inline-formula><mml:math id="mm438"><mml:semantics><mml:mrow><mml:mi>K</mml:mi><mml:mo>=</mml:mo><mml:mn>28</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>), legality filtering adds a factor <inline-formula><mml:math id="mm439"><mml:semantics><mml:mrow><mml:mi>O</mml:mi><mml:mo>(</mml:mo><mml:mi>K</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>, yielding a per-move legality cost of <inline-formula><mml:math id="mm440"><mml:semantics><mml:mrow><mml:mi>O</mml:mi><mml:mo>(</mml:mo><mml:mi>K</mml:mi><mml:mo>+</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mrow><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>O</mml:mi><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mn>80</mml:mn><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> Since the average branching factor in midgame positions lies between 70 and 90 legal moves, a single position expansion involves on the order of <inline-formula><mml:math id="mm441"><mml:semantics><mml:mrow><mml:mi>O</mml:mi><mml:mo>(</mml:mo><mml:mn>90</mml:mn><mml:mo>&#x22C5;</mml:mo><mml:mi>P</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mn>80</mml:mn><mml:mo>)</mml:mo><mml:mo>&#x2248;</mml:mo><mml:mn>6</mml:mn><mml:mo>&#xD7;</mml:mo><mml:msup><mml:mrow><mml:mn>10</mml:mn></mml:mrow><mml:mrow><mml:mn>6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula> elementary operations in the worst case. Empirically, this confirms that move generation and legality filtering dominate CPU time, rather than rendering or UI logic.</p>
      </sec>
      <sec id="sec4dot7-appliedmath-06-00048">
        <title>4.7. State Hashing and Memory Footprint</title>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>State hashing</bold>
            </p>
          </list-item>
        </list>
        <p>The engine uses a Zobrist-style hashing scheme extended to four dimensions [<xref ref-type="bibr" rid="B27-appliedmath-06-00048">27</xref>]. Each of the 4096 board locations is associated with random bitstrings for each piece type and color. Hash updates occur in constant time per move. Using 256-bit hashes, the collision probability across millions of explored positions remains below <inline-formula><mml:math id="mm442"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>10</mml:mn></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>12</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula> by the birthday bound. In stress tests over <inline-formula><mml:math id="mm443"><mml:semantics><mml:mrow><mml:msup><mml:mrow><mml:mn>10</mml:mn></mml:mrow><mml:mrow><mml:mn>7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:semantics></mml:math></inline-formula> randomly generated positions, no collisions were observed.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Memory footprint</bold>
            </p>
          </list-item>
        </list>
        <p>A dense board representation stores 4096 cells, while the sparse representation stores only occupied squares (approximately 896 in the initial position). Move histories, attack maps, and hash tables scale linearly with search depth. In practice, memory usage remains modest on modern hardware, and the primary limiting factor for deeper analysis is branching-factor growth rather than state storage.</p>
      </sec>
    </sec>
    <sec id="sec5-appliedmath-06-00048" sec-type="results">
      <title>5. Results</title>
      <sec id="sec5dot1-appliedmath-06-00048">
        <title>5.1. Computational Complexity and Game Characteristics</title>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Empirical branching-factor measurement (exploratory)</bold>
            </p>
          </list-item>
        </list>
        <p>To obtain an exploratory estimate of the branching factor, we instrumented the engine to log the number of legal moves in 2000 positions sampled along random legal playouts of depth 0&#x2013;15 from the standard initial configuration. At each step, a legal move was selected uniformly at random. All playouts were generated with a fixed pseudorandom seed and logged move counts are available via the repository scripts.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>State-space growth (order-of-magnitude comparison)</bold>
            </p>
          </list-item>
        </list>
        <p>A direct enumeration of legal 4D chess positions is currently intractable. For context, classical chess is widely associated with estimates on the order of 10<sup>43</sup>&#x2013;10<sup>47</sup> legal positions and a game-tree complexity on the order of 10<sup>120</sup> (Shannon&#x2019;s estimate) [<xref ref-type="bibr" rid="B6-appliedmath-06-00048">6</xref>]. In 4D, even a crude combinatorial upper bound illustrates explosive growth: placing 32 pieces on an 8<sup>4</sup> = 4096-cell board gives C (4096, 32) &#x2248; 10<sup>80</sup>, even before accounting for piece types and colors, which substantially overcounts because it ignores legality constraints (piece identities, promotions, checks, pawn-structure constraints, etc.), but still conveys the order of magnitude of the combinatorial space.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Practical search implications</bold>
            </p>
          </list-item>
        </list>
        <p>Shannon&#x2019;s classical argument emphasizes that search feasibility is dominated by the branching factor because the tree size grows exponentially with depth [<xref ref-type="bibr" rid="B6-appliedmath-06-00048">6</xref>]. The empirical branching factors we observe (<xref ref-type="table" rid="appliedmath-06-00048-t003">Table 3</xref>) suggest that depth-limited minimax becomes expensive quickly in 4D: even modest increases in ply imply large multiplicative growth in explored nodes. Consequently, purely brute-force search is less effective in 4D than in 2D under comparable compute budgets, motivating stronger pruning, caching, abstraction, or learning-based evaluation (as discussed in <xref ref-type="sec" rid="sec4-appliedmath-06-00048">Section 4</xref>).</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Evaluation heuristic (baseline)</bold>
            </p>
          </list-item>
        </list>
        <p>Our baseline evaluation follows a Shannon-style material-plus-mobility heuristic [<xref ref-type="bibr" rid="B6-appliedmath-06-00048">6</xref>], using standard relative piece values and adding a mobility term proportional to legal move counts. While this heuristic is historically tied to 2D chess [<xref ref-type="bibr" rid="B6-appliedmath-06-00048">6</xref>], it remains a useful baseline in 4D as it captures two dominant drivers of short-horizon advantage: material presence and freedom of action.</p>
      </sec>
      <sec id="sec5dot2-appliedmath-06-00048">
        <title>5.2. Observed Strategic and Structural Differences (Qualitative)</title>
        <p>We report here qualitative patterns observed during internal test games and engine self-play. These are not formal theorems and should be understood as hypotheses suggested by gameplay and the measured branching factors:<list list-type="roman-lower"><list-item><p>Greater spatial evasion. The additional axes (Z and W) provide more escape routes, often allowing a side to avoid immediate contact or decline trades by shifting across slices.</p></list-item><list-item><p>Increased tactical opportunity density. With more legal moves per play, players encounter more candidate tactical continuations; conversely, calculating accurately becomes harder without visualization aids and highlighting.</p></list-item><list-item><p>Piece activity becomes more central. Mobility and cross-slice coordination frequently dominate local pawn-structure considerations, consistent with the enlarged move geometry in <xref ref-type="sec" rid="sec3-appliedmath-06-00048">Section 3</xref> and the branching factors reported above.</p></list-item></list></p>
        <p>These effects are consistent with the general principle that enlarging the action space increases both tactical richness and computational burden [<xref ref-type="bibr" rid="B6-appliedmath-06-00048">6</xref>].</p>
      </sec>
      <sec id="sec5dot3-appliedmath-06-00048">
        <title>5.3. Endgames and Constructive Demonstrations</title>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Empirical endgame demonstrations (engine-assisted)</bold>
            </p>
          </list-item>
        </list>
        <p>We tested basic reduced-material endgames (K + Q vs. K and K + R vs. K) on otherwise empty 4D boards using engine-assisted search. In these tests, the engine consistently found winning continuations for the stronger side from randomly sampled starting placements (excluding immediate illegal positions). These results are empirical demonstrations rather than formal proofs. Because the defending king has additional escape directions in 4D, mating procedures appear to require more careful multi-axis confinement than in 2D: the attacker must reduce the defender&#x2019;s freedom across all four coordinates, rather than along rank/file alone.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>A constructive strategy sketch for K + R vs. K in 4D (proof sketch with explicit limitations)</bold>
            </p>
          </list-item>
        </list>
        <p>We now give a strategy sketch indicating why K + R vs. K is plausibly a forced win under our ruleset. This is presented as a structured argument and aligns with our engine-assisted tests, but a full formal proof is beyond the present paper.</p>
        <statement>
          <label><bold>Proposition</bold>&#xA0;<bold>6</bold></label>
          <p>
            <bold>(K + R vs. K is plausibly a win in 4D; informal strategy sketch).</bold>
          </p>
          <p><italic>In the 4D ruleset defined in</italic>&#xA0; 
          <xref ref-type="sec" rid="sec2-appliedmath-06-00048">Section 2</xref>
          <italic>, the side with king and rook against a lone king can force checkmate against perfect defense.</italic></p>
        </statement>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Sketch</bold>
            </p>
          </list-item>
        </list>
        <p>Let <inline-formula><mml:math id="mm444"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> be the attacking king, <inline-formula><mml:math id="mm445"><mml:semantics><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> the rook, and <inline-formula><mml:math id="mm446"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> the defending king. At any time, <inline-formula><mml:math id="mm447"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> is confined to an axis-aligned hyper-rectangle<disp-formula id="FD16-appliedmath-06-00048"><mml:math id="mm448" display="block"><mml:semantics><mml:mrow><mml:mi>H</mml:mi><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo><mml:mo>&#xD7;</mml:mo><mml:mo>[</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo><mml:mo>&#xD7;</mml:mo><mml:mo>[</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo><mml:mo>&#xD7;</mml:mo><mml:mo>[</mml:mo><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo><mml:mo>&#x2286;</mml:mo><mml:mi>B</mml:mi></mml:mrow></mml:semantics></mml:math></disp-formula>
        that contains all squares not immediately forbidden by rook lines and king opposition. Define side lengths <inline-formula><mml:math id="mm449"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="script">l</mml:mi></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="script">l</mml:mi></mml:mrow><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="script">l</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="script">l</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">n</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> and a potential function <inline-formula><mml:math id="mm450"><mml:semantics><mml:mrow><mml:mi mathvariant="sans-serif">&#x3A6;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="script">l</mml:mi></mml:mrow><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="script">l</mml:mi></mml:mrow><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="script">l</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="script">l</mml:mi></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> A 4D &#x201C;corner&#x201D; corresponds to <inline-formula><mml:math id="mm451"><mml:semantics><mml:mrow><mml:mi mathvariant="sans-serif">&#x3A6;</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>, i.e., all coordinates fixed at a boundary value.</p>
        <list list-type="order">
          <list-item>
            <p>Box shrinking with the rook. Place <inline-formula><mml:math id="mm452"><mml:semantics><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> on a controlling hyperplane adjacent to one face of <inline-formula><mml:math id="mm453"><mml:semantics><mml:mrow><mml:mi>H</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>(e.g., <inline-formula><mml:math id="mm454"><mml:semantics><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">m</mml:mi><mml:mi mathvariant="normal">a</mml:mi><mml:mi mathvariant="normal">x</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>
        when legal), restricting crossings of that boundary without allowing capture.</p>
          </list-item>
          <list-item>
            <p>King approach and rook security. Use <inline-formula><mml:math id="mm455"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> to approach <inline-formula><mml:math id="mm456"><mml:semantics><mml:mrow><mml:mi>H</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> while maintaining rook safety, exploiting the king&#x2019;s 4D adjacency (up to 80 neighbors) to improve opposition and prevent rook harassment.</p>
          </list-item>
          <list-item>
            <p>Monotone progress. Since each <inline-formula><mml:math id="mm457"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="script">l</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mn>7</mml:mn><mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>, <inline-formula><mml:math id="mm458"><mml:semantics><mml:mrow><mml:mi mathvariant="sans-serif">&#x3A6;</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mn>28</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>. The strategy aims to reduce <inline-formula><mml:math id="mm459"><mml:semantics><mml:mrow><mml:mi mathvariant="sans-serif">&#x3A6;</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> by at least 1 per completed cycle (rook boundary + king consolidation), eventually forcing <inline-formula><mml:math id="mm460"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> into a region where multiple <inline-formula><mml:math id="mm461"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="script">l</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>.</p>
          </list-item>
          <list-item>
            <p>Corner mate. Once the defender is near a corner (small <inline-formula><mml:math id="mm462"><mml:semantics><mml:mrow><mml:mi mathvariant="sans-serif">&#x3A6;</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> the rook fixes one coordinate by checking along an axis while <inline-formula><mml:math id="mm463"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:semantics></mml:math></inline-formula> covers escape squares in the remaining dimensions, finishing with a finite sequence of forcing moves.</p>
          </list-item>
        </list>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Limitation</bold>
            </p>
          </list-item>
        </list>
        <p>The above is a proof <italic>outline</italic>; a fully formal proof would require careful case analysis when one or more <inline-formula><mml:math id="mm464"><mml:semantics><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="script">l</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> and explicit handling of rook/king coordination in 4D. In this work, we treat it as a constructive strategy sketch supported by engine-assisted demonstrations, not a complete proof.</p>
      </sec>
      <sec id="sec5dot4-appliedmath-06-00048">
        <title>5.4. Complexity-Theoretic Context</title>
        <p>It is known that generalized chess on an unbounded <inline-formula><mml:math id="mm465"><mml:semantics><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#xD7;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula> board is EXPTIME-complete [<xref ref-type="bibr" rid="B5-appliedmath-06-00048">5</xref>]. Extending such hardness results to our bounded <inline-formula><mml:math id="mm466"><mml:semantics><mml:mrow><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn><mml:mo>&#xD7;</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula> 4D variant would require a dedicated reduction that we do not provide. We therefore restrict ourselves to the conservative claim that the observed branching factors and the combinatorial explosion in state representations strongly suggest severe practical intractability for deep search: even small depth increases cause exponential growth in nodes, consistent with Shannon-style search limits [<xref ref-type="bibr" rid="B6-appliedmath-06-00048">6</xref>].</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Tractable and restricted subproblems.</bold>
            </p>
          </list-item>
        </list>
        <p>While the full game of 4D chess exhibits severe combinatorial complexity, several restricted variants arising naturally in our framework are substantially more tractable and admit direct analysis. In particular, piece-move graphs on an otherwise empty board (<xref ref-type="sec" rid="sec3dot5-appliedmath-06-00048">Section 3.5</xref>, <xref ref-type="sec" rid="sec3dot6-appliedmath-06-00048">Section 3.6</xref>, <xref ref-type="sec" rid="sec3dot7-appliedmath-06-00048">Section 3.7</xref> and <xref ref-type="sec" rid="sec3dot8-appliedmath-06-00048">Section 3.8</xref>) reduce to well-structured lattice graphs, including Cartesian products (rook), strong products (king), parity-decomposed diagonal graphs (bishop), and boundary-stratified leaper graphs (knight), for which exact degree formulas, connectivity properties, and diameters can be derived.</p>
        <p>Similarly, local reachability and mobility questions&#x2014;such as determining legal moves, attack maps, or connectivity within a fixed parity class&#x2014;are computable in polynomial time and are exploited directly by the engine. Small-material endgames on fixed boards (e.g., K + R vs. K) also form restricted settings in which constructive strategies and finite-state analysis appear feasible, as suggested by engine-assisted demonstrations.</p>
        <p>These restricted cases do not mitigate the worst-case complexity of the full game, but they provide analytically tractable substructures that clarify how complexity emerges from the interaction of otherwise well-understood components.</p>
      </sec>
      <sec id="sec5dot5-appliedmath-06-00048">
        <title>5.5. Exploratory User Feedback</title>
        <p>This section reports the participant background, evaluation dimensions, and questionnaire structure used in the exploratory qualitative feedback study (N = 18). This user feedback is explicitly exploratory and qualitative in nature. Due to the small, self-selected sample (N = 18), the results are not intended to provide statistically representative or generalizable conclusions. Instead, the goal is to assess whether the proposed visualization and interaction design is intelligible and navigable in practice, thereby evaluating the feasibility of the proposed 4D representation rather than validating cognitive or educational outcomes.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>System access and data collection (reproducibility)</bold>
            </p>
          </list-item>
        </list>
        <p>This section is included for completeness and transparency and is not used to support any mathematical, algorithmic, or performance claims in the paper. This evaluation is explicitly exploratory and qualitative. It does not constitute a controlled user study: no standardized tasks, time measurements, hypothesis testing, or statistical inference were performed. The purpose is solely to assess whether the proposed visualization communicates the underlying four-dimensional mathematical structure in an interpretable manner.</p>
        <p>All results in this section were generated using the publicly accessible 4D Chess implementation and the optional feedback form linked from the interface:</p>
        <p>System: <uri>https://oanarinaldi.com/4d_chess/</uri>, accessed on 10 December 2025.</p>
        <p>Feedback form:</p>
        <p><uri>https://docs.google.com/forms/d/e/1FAIpQLSeB0y-i7aPvnS7NEujD7ecxEZ96CP7EdYCshHVIaGY0TvJuYQ/viewform</uri>, accessed on 10 December 2025.</p>
        <p>Participants were self-selected visitors who voluntarily completed an online form after playing at least one full or partial game. To gather informal impressions about usability and cognitive accessibility, we deployed the game on the project website and offered players an optional feedback form. Eighteen self-selected players completed the questionnaire.</p>
        <p>The questionnaire mirrored the structure of typical HCI user studies, using 5-point Likert items and a few categorical questions about background. Prior experience with 3D visualization was mixed: three respondent reported no prior experience, twelve reported limited or moderate experience, and three described themselves as experienced. Thus, most players were not experts in 3D computer graphics or higher-dimensional geometry, which is important when interpreting how accessible the system felt.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Understanding the 4D coordinate system</bold>
            </p>
          </list-item>
        </list>
        <p>Despite the abstract nature of a four-dimensional lattice, participants reported low difficulty in grasping the coordinate model. On the item &#x201C;<italic>How difficult was it to understand the 4D coordinate system (X, Y, Z, W</italic>)?&#x201D; fifteen respondents chose &#x201C;Very easy&#x201D; or &#x201C;Easy&#x201D;, and only three reported a moderate level of difficulty. This is consistent with the use of explicit visualization of axes, coordinate labels, and hover-tooltips in supporting user interpretation.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Perception of the 4D&#x2192;3D projection</bold>
            </p>
          </list-item>
        </list>
        <p>Understanding the slicing metaphor and projection logic was similarly positive. On &#x201C;<italic>How well do you feel you understood the projection of 4D space into 3D visualization?</italic>&#x201D; all respondents indicated at least &#x201C;Partially understood&#x201D;, with an even split between &#x201C;Completely understood&#x201D;, &#x201C;Well understood&#x201D;, and &#x201C;Partially understood&#x201D;. No one reported being confused. Even without a supervised tutorial, the combination of stacked boards, consistent camera framing, and the W-axis controls appears sufficient for most players to form a mental model of how the 4D board is embedded in 3D space.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Navigation between board</bold>
            </p>
          </list-item>
        </list>
        <p>The navigation between different layers (primarily along W, but also via camera movement in Y and Z) was rated positively. On the question about how intuitive this navigation felt, the responses were evenly distributed between &#x201C;Extremely intuitive&#x201D;, &#x201C;Very intuitive&#x201D;, and &#x201C;Moderately intuitive&#x201D;. Importantly, no one selected the negative options, indicating that even in an unsupervised online context the slider and camera controls were learnable and did not block interaction.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Multi-board 3D representation</bold>
            </p>
          </list-item>
        </list>
        <p>The visual strategy of rendering multiple boards in 3D space, rather than a single 2D board with a W-dropdown, was mostly experienced as helpful. For &#x201C;<italic>How did the visual representation (multiple boards in 3D space) help or hinder your understanding</italic>?&#x201D; twelve respondents said it moderately or greatly helped, while six were neutral. No one reported that the 3D layout actively hindered understanding. This supports our design choice to &#x201C;spatialize&#x201D; the additional dimension, consistent with the visualization literature that advocates using spatial metaphors to represent abstract dimensions when possible [<xref ref-type="bibr" rid="B7-appliedmath-06-00048">7</xref>].</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Tracking piece movements across dimensions</bold>
            </p>
          </list-item>
        </list>
        <p>As expected, tracking pieces moving simultaneously in X, Y, Z, and W was more challenging. Responses on &#x201C;<italic>How challenging was it to track piece movements across different dimensions?</italic>&#x201D; covered the entire scale: six users found it &#x201C;Not challenging&#x201D;, while the remaining twelve reported slightly, moderately, very, or even extremely challenging. This spread likely reflects individual differences in spatial ability: another item in the survey asked participants to self-rate their spatial reasoning, and the answers were perfectly balanced between &#x201C;Excellent&#x201D;, &#x201C;Good&#x201D;, and &#x201C;Average&#x201D;. Those who rated themselves higher on spatial reasoning also tended to report less difficulty tracking pieces, echoing well-known correlations between spatial visualization skills and performance in multidimensional tasks.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Axes gizmo and orientation cues</bold>
            </p>
          </list-item>
        </list>
        <p>The 4D axes gizmo, which provides a small orientation widget indicating the X, Y, Z, and W directions, received generally positive but not unanimous feedback. Half of the respondents rated it &#x201C;Moderately effective&#x201D;, six rated it &#x201C;Very effective&#x201D;, and three chose &#x201C;Not very effective&#x201D;. This pattern suggests that while the gizmo is a useful orientation reference, especially in the early stages of learning, it may recede into the background once players internalize the mapping between board layout and coordinate axes.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Learning curve for 4D piece movement</bold>
            </p>
          </list-item>
        </list>
        <p>Players generally described the learning curve for piece movements as manageable. On &#x201C;<italic>How would you rate the learning curve for understanding 4D chess piece movements</italic>?&#x201D; six participants selected &#x201C;Gradual&#x201D; (indicating an easy progression), nine selected &#x201C;Moderate&#x201D;, and only three felt it was &#x201C;Very steep (difficult to learn)&#x201D;. This aligns with our design goal: after an initial phase of novelty, the geometric complexity should recede, allowing players to focus on tactics and strategy rather than constantly fighting the interface.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Understanding 4D geometric relationships</bold>
            </p>
          </list-item>
        </list>
        <p>When asked &#x201C;<italic>How well did the interface help you comprehend geometric relationships in 4D space?</italic>&#x201D;, all participants responded positively: nine &#x201C;Very well&#x201D;, six &#x201C;Moderately well&#x201D;, and three &#x201C;Extremely well&#x201D;. Even in a small sample, this unanimous pattern indicates that the combination of layered boards, projection, and interactive controls does more than just enable gameplay, it also serves as a visualization tool for thinking about 4D adjacency and alignment.</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Board opacity control</bold>
            </p>
          </list-item>
        </list>
        <p>The opacity slider, which allows players to fade intermediate boards in and out to reveal long-range lines, was one of the most highly rated features. Fifteen participants considered it &#x201C;Very useful&#x201D; or &#x201C;Extremely useful&#x201D;, with only three rating it &#x201C;Moderately useful&#x201D;. Practically, this feature lets users perform on-demand &#x201C;dimensional slicing&#x201D;: by reducing clutter in intermediate layers, they can better see how pieces align across W and Z. This strongly supports standard recommendations in information visualization that emphasize interactive filtering and emphasis to reveal structure in multidimensional data [<xref ref-type="bibr" rid="B7-appliedmath-06-00048">7</xref>].</p>
        <list list-type="simple">
          <list-item>
            <p>
              <bold>Perceived educational value</bold>
            </p>
          </list-item>
        </list>
        <p>The question &#x201C;<italic>Do you think this game could be effective for teaching geometric concepts in higher dimensions?</italic>&#x201D; produced mostly optimistic answers: twelve respondents chose &#x201C;Very effective&#x201D;, three &#x201C;Moderately effective&#x201D;, and three &#x201C;Not very effective&#x201D;. Thus, fifteen saw clear pedagogical potential, often in terms of making 4D coordinates and cross-section reasoning more concrete. While this is not a longitudinal study of learning outcomes, it does support our original hypothesis, drawn from works such as <italic>Flatland</italic> and Rucker&#x2019;s explorations of higher dimensions [<xref ref-type="bibr" rid="B3-appliedmath-06-00048">3</xref>], that playful, interactive experiences can scaffold intuition about spaces beyond 3D.</p>
        <p>The aggregated responses shown in <xref ref-type="fig" rid="appliedmath-06-00048-f005">Figure 5</xref> summarize participants&#x2019; subjective perceptions of the visualization tools during exploratory interaction with the four-dimensional environment.</p>
        <p>In summary, the online feedback study suggests that, even outside a supervised lab context, participants were able to engage with the four-dimensional board and develop familiarity with its interaction mechanisms. The coordinate system, projection model, multi-board visualization, axes gizmo, and opacity control were commonly reported as supporting interpretability and navigation during exploratory interaction.</p>
        <p>At the same time, the small sample size, self-selection bias, and reliance on self-reporting mean that these findings should be interpreted as exploratory rather than definitive. Accordingly, the feedback does not constitute validated evidence of usability, learning, or cognitive accessibility. Instead, it serves to assess whether the proposed mathematical structures&#x2014;namely the four-dimensional coordinate formalism, projection scheme, and interaction model&#x2014;are plausibly conveyed through the visualization interface in practice.</p>
        <p>Any educational interpretation should therefore be viewed as a hypothesis motivating future controlled studies rather than as an established outcome. The feedback collection was exploratory, self-selected, and qualitative, and is reported solely to assess interface comprehensibility rather than to establish validated usability or learning outcomes.</p>
      </sec>
    </sec>
    <sec id="sec6-appliedmath-06-00048" sec-type="conclusions">
      <title>6. Conclusions</title>
      <p>We have presented a full-length study of four-dimensional chess, from its mathematical formulation through implementation and exploratory user evaluation. By leveraging concepts from discrete geometry and graph theory (lattice coordinates, product graphs, and parity structure), together with combinatorial game analysis (state-space growth and search complexity), we formulated rules for 4D chess that extend the classic game while preserving the recognizable character of each piece.</p>
      <p>On the technical front, we designed and implemented an interactive visualization that enables human players to perceive and play within a 4D game space using standard 3D navigation. The interface builds on established visualization techniques&#x2014;multiple coordinated 2D slices embedded in a single 3D scene, combined with interaction tools such as rotation, zoom, and opacity controls&#x2014;so that players can navigate the full 4D state without repeatedly toggling layers. In practice, these choices appear to support interpretability and practical interaction in an otherwise dense configuration space.</p>
      <p>From an analytic standpoint, expanding chess to four dimensions dramatically increases complexity. Even conservative comparisons indicate a combinatorial explosion in the number of reachable configurations and in the branching factor, echoing the central role of branching in Shannon-style search limits for chess [<xref ref-type="bibr" rid="B6-appliedmath-06-00048">6</xref>]. This expansion makes deep brute-force analysis substantially less effective than in 2D, but it also creates a rich strategic environment with many additional tactical and positional possibilities.</p>
      <p>Our exploratory feedback suggests that the interface can make the underlying 4D coordinate model and slicing metaphor accessible for non-expert users. Participants reported that they could interpret four coordinates, follow highlighted cross-slice moves, and use projection and filtering tools (e.g., opacity) to reason about positions. Because the feedback was self-selected and not based on controlled tasks or pre/post measures, these observations should be interpreted as qualitative indications of feasibility rather than definitive usability or learning outcomes.</p>
      <p>The full implementation, including move-generation logic and enumeration scripts used for the reported experiments, is publicly available at <uri>https://github.com/oanaunc/4d_chess</uri>. We have also identified clear directions for future work. On the interface side, VR/AR extensions and alternative visualization layouts could further reduce occlusion and cognitive load. On the algorithmic side, stronger opponents could be built using pruning, abstraction, symmetry-aware caching, or learning-based evaluation, and deeper study could address game balance and piece valuation in 4D. More broadly, the system could support interdisciplinary research: mathematicians may explore new structural questions suggested by 4D gameplay, cognitive scientists could study how users form mental models of higher-dimensional spaces, and educators could evaluate whether such interactive environments improve spatial reasoning.</p>
      <p>In closing, 4D chess indicates that increasing dimensionality yields not only additional complexity but also new conceptual structure&#x2014;provided it is paired with a visualization that makes that structure accessible. As Banchoff observed regarding higher dimensions, &#x201C;we can also grasp the idea of the hypercube&#x201D; when given appropriate representations [<xref ref-type="bibr" rid="B2-appliedmath-06-00048">2</xref>]. Our work supports this perspective: with suitable interaction and visual scaffolding, players can engage meaningfully with a four-dimensional board. Four-dimensional chess began as a speculative extension of a familiar game; through formalization and implementation, it becomes a concrete platform for studying higher-dimensional movement, strategy, and visualization in an interactive setting.</p>
    </sec>
  </body>
  <back>
    <notes>
      <title>Author Contributions</title>
      <p>Conceptualization, R.O. and C.-G.C.; methodology, R.O.; software, R.O.; formal analysis, R.O.; investigation, R.O.; resources, R.O.; data curation, R.O.; writing&#x2014;original draft preparation, R.O.; writing&#x2014;review and editing, R.O. and C.-G.C.; visualization, R.O.; supervision, C.-G.C.; project administration, C.-G.C. All authors have read and agreed to the published version of the manuscript.</p>
    </notes>
    <notes>
      <title>Data Availability Statement</title>
      <p>The original contributions presented in this study are included in the article. Further inquiries can be directed to the corresponding authors.</p>
    </notes>
    <notes notes-type="COI-statement">
      <title>Conflicts of Interest</title>
      <p>The authors declare no conflicts of interest.</p>
    </notes>
    <ref-list>
      <title>References</title>
      <ref id="B1-appliedmath-06-00048">
        <label>1.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Abbott</surname>
              <given-names>E.A.</given-names>
            </name>
          </person-group>
          <source>The Annotated Flatland: A Romance of Many Dimensions</source>
          <publisher-name>Perseus Publishing</publisher-name>
          <publisher-loc>Cambridge, MA, USA</publisher-loc>
          <year>2002</year>
        </element-citation>
      </ref>
      <ref id="B2-appliedmath-06-00048">
        <label>2.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Banchoff</surname>
              <given-names>T.F.</given-names>
            </name>
          </person-group>
          <source>Beyond the Third Dimension: Geometry, Computer Graphics, and Higher Dimensions</source>
          <publisher-name>Scientific American Library</publisher-name>
          <publisher-loc>New York, NY, USA</publisher-loc>
          <year>1990</year>
        </element-citation>
      </ref>
      <ref id="B3-appliedmath-06-00048">
        <label>3.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Rucker</surname>
              <given-names>R.</given-names>
            </name>
          </person-group>
          <source>The Fourth Dimension: Toward a Geometry of Higher Reality</source>
          <publisher-name>Dover Publications</publisher-name>
          <publisher-loc>Mineola, NY, USA</publisher-loc>
          <year>2014</year>
        </element-citation>
      </ref>
      <ref id="B4-appliedmath-06-00048">
        <label>4.</label>
        <element-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Cesarz</surname>
              <given-names>P.</given-names>
            </name>
            <name>
              <surname>Fiorini</surname>
              <given-names>E.</given-names>
            </name>
            <name>
              <surname>Gong</surname>
              <given-names>C.</given-names>
            </name>
            <name>
              <surname>Kelley</surname>
              <given-names>K.</given-names>
            </name>
            <name>
              <surname>Thomas</surname>
              <given-names>P.</given-names>
            </name>
            <name>
              <surname>Woldar</surname>
              <given-names>A.</given-names>
            </name>
          </person-group>
          <article-title>Properties of Sub-Add Move Graphs</article-title>
          <source>arXiv</source>
          <year>2024</year>
          <pub-id pub-id-type="doi">10.48550/arXiv.2411.01047</pub-id>
          <pub-id pub-id-type="arxiv">2411.01047</pub-id>
        </element-citation>
      </ref>
      <ref id="B5-appliedmath-06-00048">
        <label>5.</label>
        <element-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Fraenkel</surname>
              <given-names>A.S.</given-names>
            </name>
            <name>
              <surname>Lichtenstein</surname>
              <given-names>D.</given-names>
            </name>
          </person-group>
          <article-title>Computing a Perfect Strategy for n &#xD7; n Chess Requires Time Exponential in n</article-title>
          <source>J. Comb. Theory Ser. A</source>
          <year>1981</year>
          <volume>31</volume>
          <fpage>199</fpage>
          <lpage>214</lpage>
          <pub-id pub-id-type="doi">10.1016/0097-3165(81)90016-9</pub-id>
        </element-citation>
      </ref>
      <ref id="B6-appliedmath-06-00048">
        <label>6.</label>
        <element-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Shannon</surname>
              <given-names>C.E.</given-names>
            </name>
          </person-group>
          <article-title>Programming a Computer for Playing Chess</article-title>
          <source>Philos. Mag.</source>
          <year>1950</year>
          <volume>41</volume>
          <fpage>256</fpage>
          <lpage>275</lpage>
          <pub-id pub-id-type="doi">10.1080/14786445008521796</pub-id>
        </element-citation>
      </ref>
      <ref id="B7-appliedmath-06-00048">
        <label>7.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Ware</surname>
              <given-names>C.</given-names>
            </name>
          </person-group>
          <source>Information Visualization: Perception for Design</source>
          <edition>2nd ed.</edition>
          <publisher-name>Morgan Kaufmann</publisher-name>
          <publisher-loc>San Francisco, CA, USA</publisher-loc>
          <year>2004</year>
        </element-citation>
      </ref>
      <ref id="B8-appliedmath-06-00048">
        <label>8.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Hanson</surname>
              <given-names>A.J.</given-names>
            </name>
          </person-group>
          <source>Visualizing Quaternions</source>
          <publisher-name>Morgan Kaufmann</publisher-name>
          <publisher-loc>San Francisco, CA, USA</publisher-loc>
          <year>2006</year>
        </element-citation>
      </ref>
      <ref id="B9-appliedmath-06-00048">
        <label>9.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Hughes</surname>
              <given-names>J.</given-names>
            </name>
            <name>
              <surname>van Dam</surname>
              <given-names>A.</given-names>
            </name>
            <name>
              <surname>McGuire</surname>
              <given-names>M.</given-names>
            </name>
            <name>
              <surname>Sklar</surname>
              <given-names>D.F.</given-names>
            </name>
            <name>
              <surname>Foley</surname>
              <given-names>J.</given-names>
            </name>
            <name>
              <surname>Feiner</surname>
              <given-names>S.</given-names>
            </name>
            <name>
              <surname>Akeley</surname>
              <given-names>K.</given-names>
            </name>
          </person-group>
          <source>Computer Graphics: Principles and Practice</source>
          <edition>3rd ed.</edition>
          <publisher-name>Addison-Wesley</publisher-name>
          <publisher-loc>Upper Saddle River, NJ, USA</publisher-loc>
          <year>2014</year>
        </element-citation>
      </ref>
      <ref id="B10-appliedmath-06-00048">
        <label>10.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Zermelo</surname>
              <given-names>E.</given-names>
            </name>
          </person-group>
          <article-title>&#xDC;ber eine Anwendung der Mengenlehre auf die Theorie des Schachspiels</article-title>
          <source>Proceedings of the Fifth International Congress of Mathematicians, Cambridge, UK, 22&#x2013;28 August 1912</source>
          <publisher-name>Cambridge University Press</publisher-name>
          <publisher-loc>Cambridge, UK</publisher-loc>
          <year>1913</year>
          <volume>Volume 2</volume>
          <fpage>501</fpage>
          <lpage>504</lpage>
        </element-citation>
      </ref>
      <ref id="B11-appliedmath-06-00048">
        <label>11.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Pritchard</surname>
              <given-names>D.B.</given-names>
            </name>
          </person-group>
          <source>The Classified Encyclopedia of Chess Variants</source>
          <publisher-name>John Beasley</publisher-name>
          <publisher-loc>Harpenden, UK</publisher-loc>
          <year>2007</year>
        </element-citation>
      </ref>
      <ref id="B12-appliedmath-06-00048">
        <label>12.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="editor">
            <name>
              <surname>Nowakowski</surname>
              <given-names>R.J.</given-names>
            </name>
          </person-group>
          <source>Games of No Chance</source>
          <publisher-name>Cambridge University Press</publisher-name>
          <publisher-loc>Cambridge, UK</publisher-loc>
          <year>1998</year>
        </element-citation>
      </ref>
      <ref id="B13-appliedmath-06-00048">
        <label>13.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Conway</surname>
              <given-names>J.H.</given-names>
            </name>
            <name>
              <surname>Guy</surname>
              <given-names>R.K.</given-names>
            </name>
            <name>
              <surname>Berlekamp</surname>
              <given-names>E.R.</given-names>
            </name>
          </person-group>
          <source>Winning Ways for Your Mathematical Plays</source>
          <publisher-name>A K Peters</publisher-name>
          <publisher-loc>Wellesley, MA, USA</publisher-loc>
          <year>2001</year>
        </element-citation>
      </ref>
      <ref id="B14-appliedmath-06-00048">
        <label>14.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Imrich</surname>
              <given-names>W.</given-names>
            </name>
            <name>
              <surname>Klav&#x17E;ar</surname>
              <given-names>S.</given-names>
            </name>
          </person-group>
          <source>Product Graphs: Structure and Recognition</source>
          <publisher-name>Wiley-Interscience</publisher-name>
          <publisher-loc>New York, NY, USA</publisher-loc>
          <year>2000</year>
        </element-citation>
      </ref>
      <ref id="B15-appliedmath-06-00048">
        <label>15.</label>
        <element-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>DeMaio</surname>
              <given-names>J.</given-names>
            </name>
            <name>
              <surname>Mathew</surname>
              <given-names>T.</given-names>
            </name>
          </person-group>
          <article-title>Knight&#x2019;s Tours in Higher Dimensions</article-title>
          <source>arXiv</source>
          <year>2012</year>
          <pub-id pub-id-type="arxiv">1202.5291</pub-id>
        </element-citation>
      </ref>
      <ref id="B16-appliedmath-06-00048">
        <label>16.</label>
        <element-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Zawalski</surname>
              <given-names>M.</given-names>
            </name>
            <name>
              <surname>G&#xF3;ral</surname>
              <given-names>G.</given-names>
            </name>
            <name>
              <surname>Tyrolski</surname>
              <given-names>M.</given-names>
            </name>
            <name>
              <surname>Wi&#x15B;nios</surname>
              <given-names>E.</given-names>
            </name>
            <name>
              <surname>Budrowski</surname>
              <given-names>F.</given-names>
            </name>
            <name>
              <surname>Kuci&#x144;ski</surname>
              <given-names>&#x141;.</given-names>
            </name>
            <name>
              <surname>Mi&#x142;o&#x15B;</surname>
              <given-names>P.</given-names>
            </name>
          </person-group>
          <article-title>What Matters in Hierarchical Search for Combinatorial Reasoning Problems?</article-title>
          <source>arXiv</source>
          <year>2024</year>
          <pub-id pub-id-type="doi">10.48550/arXiv.2406.03361</pub-id>
          <pub-id pub-id-type="arxiv">2406.03361</pub-id>
        </element-citation>
      </ref>
      <ref id="B17-appliedmath-06-00048">
        <label>17.</label>
        <element-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Tewolde</surname>
              <given-names>E.</given-names>
            </name>
            <name>
              <surname>Zhang</surname>
              <given-names>B.H.</given-names>
            </name>
            <name>
              <surname>Oesterheld</surname>
              <given-names>C.</given-names>
            </name>
            <name>
              <surname>Sandholm</surname>
              <given-names>T.</given-names>
            </name>
            <name>
              <surname>Conitzer</surname>
              <given-names>V.</given-names>
            </name>
          </person-group>
          <article-title>Computing Game Symmetries and Equilibria That Respect Them</article-title>
          <source>arXiv</source>
          <year>2025</year>
          <pub-id pub-id-type="arxiv">2501.08905</pub-id>
          <pub-id pub-id-type="doi">10.1609/aaai.v39i13.33549</pub-id>
        </element-citation>
      </ref>
      <ref id="B18-appliedmath-06-00048">
        <label>18.</label>
        <element-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Caplan</surname>
              <given-names>P.</given-names>
            </name>
          </person-group>
          <article-title>Tessellation and Interactive Visualization of Four-Dimensional Spacetime Geometries</article-title>
          <source>arXiv</source>
          <year>2024</year>
          <pub-id pub-id-type="arxiv">2403.19036</pub-id>
          <pub-id pub-id-type="doi">10.1016/j.cad.2024.103792</pub-id>
        </element-citation>
      </ref>
      <ref id="B19-appliedmath-06-00048">
        <label>19.</label>
        <element-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Kopczy&#x144;ski</surname>
              <given-names>E.</given-names>
            </name>
            <name>
              <surname>Celi&#x144;ska-Kopczy&#x144;ska</surname>
              <given-names>D.</given-names>
            </name>
          </person-group>
          <article-title>Navigating Higher-Dimensional Spaces Using Hyperbolic Geometry</article-title>
          <source>arXiv</source>
          <year>2021</year>
          <pub-id pub-id-type="doi">10.48550/arXiv.2110.00327</pub-id>
          <pub-id pub-id-type="arxiv">2110.00327</pub-id>
        </element-citation>
      </ref>
      <ref id="B20-appliedmath-06-00048">
        <label>20.</label>
        <element-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Cavallo</surname>
              <given-names>M.</given-names>
            </name>
          </person-group>
          <article-title>Higher Dimensional Graphics: Conceiving Worlds in Four Spatial Dimensions and Beyond</article-title>
          <source>Comput. Graph. Forum</source>
          <year>2021</year>
          <volume>40</volume>
          <fpage>51</fpage>
          <lpage>63</lpage>
          <pub-id pub-id-type="doi">10.1111/cgf.142614</pub-id>
        </element-citation>
      </ref>
      <ref id="B21-appliedmath-06-00048">
        <label>21.</label>
        <element-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Korkut</surname>
              <given-names>E.H.</given-names>
            </name>
            <name>
              <surname>Surer</surname>
              <given-names>E.</given-names>
            </name>
          </person-group>
          <article-title>Visualization in Virtual Reality: A Systematic Review</article-title>
          <source>arXiv</source>
          <year>2022</year>
          <pub-id pub-id-type="arxiv">2203.07616</pub-id>
          <pub-id pub-id-type="doi">10.1007/s10055-023-00753-8</pub-id>
        </element-citation>
      </ref>
      <ref id="B22-appliedmath-06-00048">
        <label>22.</label>
        <element-citation publication-type="journal">
          <person-group person-group-type="author">
            <name>
              <surname>Inkarbekov</surname>
              <given-names>M.</given-names>
            </name>
            <name>
              <surname>Monahan</surname>
              <given-names>R.</given-names>
            </name>
            <name>
              <surname>Pearlmutter</surname>
              <given-names>B.A.</given-names>
            </name>
          </person-group>
          <article-title>Visualization of AI Systems in Virtual Reality: A Comprehensive Review</article-title>
          <source>arXiv</source>
          <year>2023</year>
          <pub-id pub-id-type="arxiv">2306.15545</pub-id>
          <pub-id pub-id-type="doi">10.14569/IJACSA.2023.0140805</pub-id>
        </element-citation>
      </ref>
      <ref id="B23-appliedmath-06-00048">
        <label>23.</label>
        <element-citation publication-type="web">
          <person-group person-group-type="author">
            <name>
              <surname>Santoso</surname>
              <given-names>B.</given-names>
            </name>
          </person-group>
          <article-title>4D Chess. GitHub Repository</article-title>
          <year>2021</year>
          <comment>Available online: <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://github.com/BrianSantoso/4D-Chess" ext-link-type="uri">https://github.com/BrianSantoso/4D-Chess</ext-link></comment>
          <date-in-citation content-type="access-date" iso-8601-date="2025-12-05">(accessed on 5 December 2025)</date-in-citation>
        </element-citation>
      </ref>
      <ref id="B24-appliedmath-06-00048">
        <label>24.</label>
        <element-citation publication-type="web">
          <person-group person-group-type="author">
            <collab>Thunkspace LLC</collab>
          </person-group>
          <article-title>5D Chess with Multiverse Time Travel</article-title>
          <source>Steam</source>
          <year>2020</year>
          <comment>Available online: <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://store.steampowered.com/app/1349230/5D_Chess_With_Multiverse_Time_Travel/" ext-link-type="uri">https://store.steampowered.com/app/1349230/5D_Chess_With_Multiverse_Time_Travel/</ext-link></comment>
          <date-in-citation content-type="access-date" iso-8601-date="2025-11-30">(accessed on 30 November 2025)</date-in-citation>
        </element-citation>
      </ref>
      <ref id="B25-appliedmath-06-00048">
        <label>25.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Schaeffer</surname>
              <given-names>J.</given-names>
            </name>
          </person-group>
          <source>One Jump Ahead: Challenging Human Supremacy in Checkers</source>
          <publisher-name>Springer</publisher-name>
          <publisher-loc>New York, NY, USA</publisher-loc>
          <year>2013</year>
          <pub-id pub-id-type="doi">10.1007/978-1-4757-2733-3</pub-id>
        </element-citation>
      </ref>
      <ref id="B26-appliedmath-06-00048">
        <label>26.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Penrose</surname>
              <given-names>R.</given-names>
            </name>
          </person-group>
          <source>The Road to Reality: A Complete Guide to the Laws of the Universe</source>
          <publisher-name>Jonathan Cape</publisher-name>
          <publisher-loc>London, UK</publisher-loc>
          <year>2004</year>
        </element-citation>
      </ref>
      <ref id="B27-appliedmath-06-00048">
        <label>27.</label>
        <element-citation publication-type="book">
          <person-group person-group-type="author">
            <name>
              <surname>Zobrist</surname>
              <given-names>A.L.</given-names>
            </name>
          </person-group>
          <source>A New Hashing Method with Application for Game Playing</source>
          <comment>Technical Report 88</comment>
          <publisher-name>Computer Sciences Department, University of Wisconsin</publisher-name>
          <publisher-loc>Madison, WI, USA</publisher-loc>
          <year>1970</year>
        </element-citation>
      </ref>
    </ref-list>
    <sec sec-type="display-objects">
      <title>Figures and Tables</title>
      <fig id="appliedmath-06-00048-f001" position="float">
        <label>Figure 1</label>
        <caption>
          <p>Visualization of the 4D chessboard as layered 3D slices. Source: 4d chess app on 17 November 2025 (<uri>https://oanarinaldi.com/4d_chess/</uri>, accessed on 10 December 2025).</p>
        </caption>
        <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="appliedmath-06-00048-g001.tif"/>
      </fig>
      <fig id="appliedmath-06-00048-f004" position="float">
        <label>Figure 4</label>
        <caption>
          <p>End-of-match view of the 4D chess interface. Source: 4d chess app on 19 November 2025 (<uri>https://oanarinaldi.com/4d_chess/</uri>).</p>
        </caption>
        <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="appliedmath-06-00048-g004.tif"/>
      </fig>
      <fig id="appliedmath-06-00048-f005" position="float">
        <label>Figure 5</label>
        <caption>
          <p>Summary of exploratory user feedback for the 4D chess interface (N = 18), illustrating participants&#x2019; <italic>self-reported perceptions</italic> of interpretability and navigability related to the 4D coordinate system, visualization layout, and cross-dimensional movement.</p>
        </caption>
        <graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="appliedmath-06-00048-g005.tif"/>
      </fig>
      <table-wrap id="appliedmath-06-00048-t001" position="float">
        <object-id pub-id-type="pii">appliedmath-06-00048-t001_Table 1</object-id>
        <label>Table 1</label>
        <caption>
          <p>Boundary-sensitive degree of the 4D knight.</p>
        </caption>
        <table>
          <thead>
            <tr>
              <th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin">
                <inline-formula>
                  <mml:math id="mm469">
                    <mml:semantics>
                      <mml:mstyle mathvariant="bold">
                        <mml:mrow>
                          <mml:mi mathvariant="bold">Boundary</mml:mi>
                          <mml:mo>&#xA0;</mml:mo>
                          <mml:mi mathvariant="bold">Pattern</mml:mi>
                          <mml:mo>&#xA0;</mml:mo>
                          <mml:mrow>
                            <mml:mo mathvariant="bold">(</mml:mo>
                            <mml:mrow>
                              <mml:mi mathvariant="bold-italic">a</mml:mi>
                            </mml:mrow>
                            <mml:mo mathvariant="bold">,</mml:mo>
                            <mml:mrow>
                              <mml:mi mathvariant="bold-italic">b</mml:mi>
                            </mml:mrow>
                            <mml:mo mathvariant="bold">,</mml:mo>
                            <mml:mrow>
                              <mml:mi mathvariant="bold-italic">c</mml:mi>
                            </mml:mrow>
                            <mml:mo mathvariant="bold">)</mml:mo>
                          </mml:mrow>
                        </mml:mrow>
                      </mml:mstyle>
                    </mml:semantics>
                  </mml:math>
                </inline-formula>
              </th>
              <th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin">Degree</th>
              <th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin">Number of Squares</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(0,0,4)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">48</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">256</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(0,1,3)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">42</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">512</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(0,2,2)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">36</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">384</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(0,3,1)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">30</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">128</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(0,4,0)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">24</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">16</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(1,0,3)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">36</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">512</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(1,1,2)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">31</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">768</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(1,2,1)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">26</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">384</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(1,3,0)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">21</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">64</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(2,0,2)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">26</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">384</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(2,1,1)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">22</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">384</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(2,2,0)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">18</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">96</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(3,0,1)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">18</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">128</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(3,1,0)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">15</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">64</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">(4,0,0)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">12</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">16</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <table-wrap id="appliedmath-06-00048-t002" position="float">
        <object-id pub-id-type="pii">appliedmath-06-00048-t002_Table 2</object-id>
        <label>Table 2</label>
        <caption>
          <p>Movement rules for standard 4D chess pieces.</p>
        </caption>
        <table>
          <thead>
            <tr>
              <th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin">Piece</th>
              <th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin">Allowed Move Vector <inline-formula><mml:math id="mm470"><mml:semantics><mml:mstyle mathvariant="bold"><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#x394;</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>&#x394;</mml:mo><mml:mi mathvariant="bold-italic">y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>&#x394;</mml:mo><mml:mi mathvariant="bold-italic">z</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>&#x394;</mml:mo><mml:mi mathvariant="bold-italic">w</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:semantics></mml:math></inline-formula>
              </th>
              <th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">
                <bold>Rook</bold>
              </td>
              <td align="center" valign="middle" style="border-bottom:solid thin">One nonzero component: <inline-formula><mml:math id="mm471"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, <inline-formula><mml:math id="mm472"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, <inline-formula><mml:math id="mm473"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, <inline-formula><mml:math id="mm474"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula></td>
              <td align="center" valign="middle" style="border-bottom:solid thin">Moves any distance along exactly one axis (4D straight lines).</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">
                <bold>Bishop</bold>
              </td>
              <td align="center" valign="middle" style="border-bottom:solid thin">Exactly two nonzero components of equal magnitude, e.g., <inline-formula><mml:math id="mm475"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula> and all permutations</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">Moves along diagonals in any of the six coordinate planes.</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">
                <bold>Queen</bold>
              </td>
              <td align="center" valign="middle" style="border-bottom:solid thin">Any rook move or any bishop move</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">Union of rook and bishop moves.</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">
                <bold>Knight</bold>
              </td>
              <td align="center" valign="middle" style="border-bottom:solid thin">One coordinate <inline-formula><mml:math id="mm476"><mml:semantics><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>, one coordinate <inline-formula><mml:math id="mm477"><mml:semantics><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:semantics></mml:math></inline-formula>, two coordinates 0 (permutations of <inline-formula><mml:math id="mm478"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">Four choices for the &#x201C;2-axis&#x201D;, three for the &#x201C;1-axis&#x201D;, giving 48 possible moves.</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">
                <bold>King</bold>
              </td>
              <td align="center" valign="middle" style="border-bottom:solid thin">Each coordinate in <inline-formula><mml:math id="mm479"><mml:semantics><mml:mrow><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula>, excluding <inline-formula><mml:math id="mm480"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula></td>
              <td align="center" valign="middle" style="border-bottom:solid thin">One-step move to any adjacent square: axial, planar-diagonal, 3D-diagonal, or 4D-diagonal.</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">
                <bold>Pawn</bold>
              </td>
              <td align="center" valign="middle" style="border-bottom:solid thin">Orientation axis <inline-formula><mml:math id="mm481"><mml:semantics><mml:mrow><mml:mi>r</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo>{</mml:mo><mml:mi>Y</mml:mi><mml:mo>,</mml:mo><mml:mi>W</mml:mi><mml:mo>}</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>. Forward: <inline-formula><mml:math id="mm482"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>if <inline-formula><mml:math id="mm483"><mml:semantics><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>, or <inline-formula><mml:math id="mm484"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>if <inline-formula><mml:math id="mm485"><mml:semantics><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mi>W</mml:mi></mml:mrow></mml:semantics></mml:math></inline-formula>. Capture within its movement plane, e.g., <inline-formula><mml:math id="mm486"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#xA0;</mml:mo></mml:mrow></mml:semantics></mml:math></inline-formula>for Y-pawns, or <inline-formula><mml:math id="mm487"><mml:semantics><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#xB1;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#xA0;</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:semantics></mml:math></inline-formula> for W-pawns.</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">Pawn moves and captures only in its 2D subspace (X&#x2013;Y or X&#x2013;W), mirroring 2D pawn structure but extended to 4D.</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <table-wrap id="appliedmath-06-00048-t003" position="float">
        <object-id pub-id-type="pii">appliedmath-06-00048-t003_Table 3</object-id>
        <label>Table 3</label>
        <caption>
          <p>Summary statistics for legal-move counts in 2000 sampled 4D chess positions, broken down by position type. Values represent mean, median, and standard deviation of the branching factor. Values are descriptive and should not be interpreted as statistically unbiased estimates of the full game-tree branching factor.</p>
        </caption>
        <table>
          <thead>
            <tr>
              <th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin">Position Type</th>
              <th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin">Mean Legal Moves</th>
              <th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin">Median</th>
              <th align="center" valign="middle" style="border-top:solid thin;border-bottom:solid thin">&#x3C3;</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">Opening slice (z,w &#x2208; central block)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">~48</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">46</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">10</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">Midgame dense cluster</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">~85</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">78</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">21</td>
            </tr>
            <tr>
              <td align="center" valign="middle" style="border-bottom:solid thin">Global average (2000 random states)</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">74.3</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">72</td>
              <td align="center" valign="middle" style="border-bottom:solid thin">18.1</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
    </sec>
    <fn-group>
      <fn>
        <p><bold>Disclaimer/Publisher&#x2019;s Note:</bold> The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.</p>
      </fn>
    </fn-group>
  </back>
</article>
