Preprint
Article

This version is not peer-reviewed.

A Unified GF(4)–Symplectic Framework for Quantum Error Correction: A Constructive, Pedagogical Derivation of the Steane [[7,1,3]] Code

Submitted:

02 December 2025

Posted:

04 December 2025

You are already at the latest version

Abstract
This paper presents a complete, constructive derivation of the Steane [[7,1,3]] quantum error-correcting code using a unified framework that bridges GF(4) algebra, binary symplectic representation, and stabilizer formalism. We demonstrate how classical coding theory, finite-field arithmetic, and symplectic geometry naturally converge to form a comprehensive foundation for quantum error correction. Starting from the classical Hamming [7,4,3] code, we provide explicit constructions showing: (1) how GF(4) encodes the Pauli group modulo phases, (2) how the symplectic inner product on F2n2 captures commutativity, (3) how syndrome extraction reduces to binary matrix multiplication, and (4) how transversal Clifford gates emerge from symplectic transformations. The step-by-step derivation encompasses stabilizer construction, centralizer analysis, logical operator identification, code distance verification, and fault-tolerant syndrome measurement via flagged circuits. All results are derived using elementary finite-field and binary linear algebra, ensuring the exposition is self-contained and accessible. We further illustrate how this algebraic framework extends naturally to modern quantum LDPC codes. This work serves as both a pedagogical tutorial for students entering quantum error correction and a unified reference for researchers implementing stabilizer codes in practice
Keywords: 
;  ;  ;  ;  ;  ;  ;  

1. Introduction: The Need for Unified Understanding

Quantum error correction (QEC) constitutes the mathematical backbone of fault-tolerant quantum computation. While the stabilizer formalism [1] provides a comprehensive framework, its pedagogical presentation often fragments into isolated components: group theory for Pauli algebras, finite-field arithmetic for code construction, symplectic geometry for commutativity analysis, classical coding theory for distance bounds, and circuit design for fault-tolerant implementation. This fragmentation obscures the elegant algebraic unity that makes stabilizer codes both theoretically profound and practically implementable.
The recent surge in quantum low-density parity-check (QLDPC) codes [4,5] and advanced fault-tolerant protocols [6] relies fundamentally on GF(4) representations and binary symplectic methods. Yet a coherent, constructive derivation connecting these elements from first principles remains conspicuously absent from the literature. Students and researchers must synthesize understanding from disparate sources, each employing distinct notation and assumptions—a significant barrier to entry.
Figure 1. Unified framework connecting classical coding theory, GF(4) algebra, symplectic geometry, stabilizer formalism, and fault-tolerant implementation.
Figure 1. Unified framework connecting classical coding theory, GF(4) algebra, symplectic geometry, stabilizer formalism, and fault-tolerant implementation.
Preprints 187911 g001

Contributions and Organization

This paper presents a unified framework that systematically connects all essential components of stabilizer quantum error correction. Our specific contributions include:
  • Establishing an explicit, constructive isomorphism between GF(4) and the Pauli group modulo phases, providing an algebraic foundation for quantum codes
  • Demonstrating how binary symplectic representation transforms quantum commutation into matrix multiplication via the symplectic inner product
  • Providing a step-by-step construction of the Steane [[7,1,3]] code from the classical Hamming code, illustrating the CSS construction in complete detail
  • Deriving all code properties—stabilizers, logical operators, distance, syndromes—using only linear algebra over finite fields
  • Showing how transversal Clifford gates emerge naturally from the symplectic structure
  • Presenting explicit fault-tolerant measurement circuits directly derived from the algebraic framework
  • Illustrating how this foundation extends systematically to subsystem and QLDPC codes
Our approach is intentionally constructive and pedagogical: every claim is justified by explicit calculation using only finite-field arithmetic and binary linear algebra. By presenting this unified framework, we aim to lower the barrier to entry for new researchers while providing experienced practitioners with a coherent mathematical foundation for code design and analysis.
The paper is organized as follows: Section 2 introduces GF(4) algebra and its correspondence with Pauli operators. Section 3 develops the binary symplectic representation. Section 4 reviews the classical Hamming code foundation. Section 5-9 construct the Steane code and analyze its properties. Section 10-11 discuss transversal gates and fault-tolerant measurement. Section 12-13 extend the framework to modern codes. Section 14 provides concluding remarks.

2. GF(4) Algebra: The Algebraic Language of Pauli Operators

2.1. Finite Field GF(4) Structure

The finite field GF(4) serves as the natural algebraic structure for representing Pauli operators modulo phases. Defined as:
GF ( 4 ) = { 0 , 1 , α , β } , where β = α + 1
with addition and multiplication modulo the irreducible polynomial x 2 + x + 1 , satisfying:
α 2 = α + 1 = β , α 3 = 1 , α + α = 0 .
Table 1. Arithmetic tables for GF(4). These capture the multiplication rules of Pauli matrices when ignoring global phases.
Table 1. Arithmetic tables for GF(4). These capture the multiplication rules of Pauli matrices when ignoring global phases.
+ 0 1 α β × 0 1 α β
0 0 1 α β 0 0 0 0 0
1 1 0 β α 1 0 1 α β
α α β 0 1 α 0 α β 1
β β α 1 0 β 0 β 1 α
Conceptual Insight: The structure of GF(4) naturally encodes the multiplication rules of Pauli matrices when we ignore global phases. Specifically, α corresponds to X, 1 corresponds to Z, and β = α + 1 corresponds to Y = i X Z .

2.2. GF(4)–Pauli Correspondence

The isomorphism between GF(4) and single-qubit Pauli operators modulo phases is:
0 I ( Identity ) 1 Z ( Phase flip ) α X ( Bit flip ) β = α + 1 Y ( Combined flip )
This correspondence preserves the group structure up to global phases. For example:
α × β = α ( α + 1 ) = α 2 + α = ( α + 1 ) + α = 1 X × Y = i Z Z ( modulo phase ) .
For n qubits, the vector space GF ( 4 ) n encodes all Pauli operators (modulo phases), where each component specifies the Pauli acting on the corresponding qubit.
Figure 2. Structural isomorphism between GF(4) algebra and Pauli operators modulo phases. The correspondence preserves group structure: addition in GF(4) corresponds to operator multiplication up to phases.
Figure 2. Structural isomorphism between GF(4) algebra and Pauli operators modulo phases. The correspondence preserves group structure: addition in GF(4) corresponds to operator multiplication up to phases.
Preprints 187911 g002

Example: Logical Operator Representation

The logical X ¯ operator for the Steane code is X 7 . In GF(4) representation:
X ¯ = ( α , α , α , α , α , α , α ) GF ( 4 ) 7 .
This compact representation enables algebraic manipulation of logical operators using finite-field arithmetic while maintaining the quantum mechanical structure.

3. Binary Symplectic Representation: From Abstract Algebra to Practical Computation

3.1. Binary Encoding for Efficient Implementation

While GF(4) provides elegant algebraic representation, binary encoding enables practical computation and hardware implementation. Any Pauli operator P on n qubits can be encoded as a binary vector ( u v ) F 2 2 n , where:
  • u j = 1 if P has an X or Y on qubit j
  • v j = 1 if P has a Z or Y on qubit j
This encoding yields the explicit single-qubit mapping:
Table 2. Binary symplectic representation of single-qubit Pauli operators.
Table 2. Binary symplectic representation of single-qubit Pauli operators.
Pauli Operator Symbol Binary Encoding ( u v )
Identity I ( 0 0 )
Bit flip X ( 1 0 )
Phase flip Z ( 0 1 )
Combined flip Y ( 1 1 )
For multi-qubit operators, the representation concatenates these single-qubit representations. For example, X 1 Z 3 corresponds to ( 1 , 0 , 0 , 0 , 0 , 1 , ) .

3.2. Symplectic Inner Product: Quantum Commutation as Matrix Multiplication

The symplectic inner product on F 2 2 n is defined as:
( u v ) , ( u v ) = u · v + v · u ( mod 2 ) ,
where · denotes the usual dot product in F 2 n .
Theorem 1
(Commutation Criterion). Two Pauli operators P and Q commute if and only if their binary symplectic representations satisfy P , Q = 0 .
Proof. 
The commutator P Q P 1 Q 1 equals ( 1 ) c I where c = P , Q . The proof follows directly from the anti-commutation relations X Z = Z X and the linearity of the symplectic product.    □
   Conceptual Significance: This theorem transforms quantum mechanical commutation—a physical property—into a simple binary matrix calculation. This transformation is essential for efficient stabilizer code analysis, simulation, and implementation.

3.3. Bridging GF(4) and Binary Representations

Conversion between representations is algorithmically straightforward:
Algorithm 1:
Conversion between GF(4) and binary symplectic representations
1:
procedureGF4ToBinary( g GF ( 4 ) n )
2:
    for  j = 1 to n do
3:
        if  g j = 0  then
4:
            u j 0 , v j 0
5:
        else if  g j = 1  then
6:
            u j 0 , v j 1
7:
        else if  g j = α  then
8:
            u j 1 , v j 0
9:
        else g j = β
10:
            u j 1 , v j 1
11:
        end if
12:
    end for
13:
    return  ( u v ) F 2 2 n
14:
end procedure
15:
procedureBinaryToGF4( ( u v ) F 2 2 n )
16:
    for  j = 1 to n do
17:
        if  ( u j , v j ) = ( 0 , 0 )  then
18:
            g j 0
19:
        else if  ( u j , v j ) = ( 0 , 1 )  then
20:
            g j 1
21:
        else if  ( u j , v j ) = ( 1 , 0 )  then
22:
            g j α
23:
        else
24:
            g j β
25:
        end if
26:
    end for
27:
    return  g GF ( 4 ) n
28:
end procedure

4. Classical Foundation: Hamming [7,4,3] Code

Quantum CSS codes are constructed from pairs of classical linear codes. The Steane [[7,1,3]] code originates from the classical Hamming [7,4,3] code, a perfect single-error-correcting code with remarkable algebraic properties.

4.1. Matrix Structure and Column Construction

The Hamming code is defined by its parity-check matrix:
H = 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 F 2 3 × 7 .
Key structural insight: The columns of H are all non-zero binary vectors of length 3, arranged in lexicographic order. Specifically, column i represents the binary encoding of the number i:
col i = binary ( i ) for i = 1 , , 7 .
Figure 3. Structure of Hamming code parity-check matrix H. Each column is a distinct binary number, providing unique error signatures.
Figure 3. Structure of Hamming code parity-check matrix H. Each column is a distinct binary number, providing unique error signatures.
Preprints 187911 g003

4.2. Code Parameters and Generator Matrix

The Hamming code has parameters [ n , k , d ] = [ 7 , 4 , 3 ] , where:
  • n = 7 : code length (number of bits)
  • k = 4 : dimension (information bits), since dim ( ker H ) = 7 rank ( H ) = 4
  • d = 3 : minimum distance (smallest weight of non-zero codewords)
The generator matrix in systematic form is:
G = 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 , satisfying H G = 0 .
The code space is C = { x F 2 7 : H x = 0 } , containing 2 4 = 16 codewords.

4.3. Syndrome Decoding Mechanism

The Hamming code’s decoding is exceptionally simple due to its column structure. For any single-bit error vector e i (with 1 at position i and 0 elsewhere):
s = H e i = column i ( H ) .
This means the syndrome is the column where the error occurred. Decoding reduces to a simple table lookup.
Figure 4. Horizontal layout of syndrome decoding process.
Figure 4. Horizontal layout of syndrome decoding process.
Preprints 187911 g004

4.4. Syndrome Lookup Table

The complete decoding table for all single-bit errors is remarkably simple:
Table 3. Syndrome lookup table for Hamming [7,4,3] code.
Table 3. Syndrome lookup table for Hamming [7,4,3] code.
Syndrome s Binary Value Error Position
000 0 No error
100 1 Position 1
010 2 Position 2
110 3 Position 3
001 4 Position 4
101 5 Position 5
011 6 Position 6
111 7 Position 7

4.5. Distance Analysis and Error Detection Capabilities

The distance d = 3 follows directly from the column properties:
  • Single-error detection: All columns are non-zero, so s 0 for any single error.
  • Double-error detection: All columns are distinct, so s 0 for any two errors.
  • Distance guarantee: No three columns sum to zero, so the smallest undetectable error has weight 3.
The weight enumerator confirms the distance:
A ( z ) = 1 + 7 z 3 + 7 z 4 + z 7 ,
showing no codewords of weight 1 or 2.

4.6. Perfect Code Property

The Hamming code is a perfect single-error-correcting code, meaning it saturates the Hamming bound:
i = 0 t n i 2 n k ,
where t = ( d 1 ) / 2 = 1 . For [ 7 , 4 , 3 ] :
i = 0 1 7 i = 1 + 7 = 8 = 2 7 4 = 2 3 .
Interpretation: All 2 3 = 8 possible syndromes are utilized exactly:
  • 1 syndrome for no error (000)
  • 7 syndromes for the 7 possible single-bit errors
  • No wasted syndrome space
Figure 5. Perfect Hamming code uses all syndrome possibilities.
Figure 5. Perfect Hamming code uses all syndrome possibilities.
Preprints 187911 g005

4.7. Importance for Quantum Error Correction

The Hamming code’s properties make it ideal as a foundation for quantum CSS codes:
Table 4. Transfer of classical properties to quantum error correction.
Table 4. Transfer of classical properties to quantum error correction.
Classical Property Quantum Significance
Unique syndromes Enables unambiguous identification of single-qubit Pauli errors (X, Y, Z)
Distance d = 3 Directly transfers to quantum distance, enabling correction of arbitrary single-qubit errors
Orthogonality H H = 0 Ensures automatic commutation between X and Z stabilizers in CSS construction
Perfect code efficiency Optimal use of syndrome space translates to efficient quantum error correction
Systematic generator matrix Facilitates construction of logical operators and fault-tolerant circuits
Symmetric structure Allows identical treatment of X and Z errors, simplifying implementation

4.8. From Classical to Quantum: CSS Construction

The Steane [[7,1,3]] code is constructed using the CSS (Calderbank-Shor-Steane) framework with the Hamming code C = [ 7 , 4 , 3 ] :
  • Use the same code C for both X-type and Z-type stabilizers
  • The orthogonality condition H H = 0 ensures X and Z stabilizers commute
  • Quantum parameters follow from the CSS formula:
    [ [ n , 2 k n , d ] ] = [ [ 7 , 2 · 4 7 , 3 ] ] = [ [ 7 , 1 , 3 ] ]
    where:
    -
    n = 7 : Physical qubits (same as classical bits)
    -
    2 k n = 1 : Logical qubits encoded
    -
    d = 3 : Quantum distance (inherited from classical)

4.9. Summary: Why Hamming is the Ideal Foundation

The Hamming [7,4,3] code is uniquely suited as a foundation for quantum error correction because:
  • Optimal parameters: As the smallest non-trivial perfect code, it provides the minimal overhead for single-error correction.
  • Algebraic simplicity: The column structure makes decoding trivial—syndrome directly equals error location.
  • Self-orthogonality: H H = 0 ensures the CSS construction automatically yields commuting stabilizers.
  • Symmetry: Identical treatment of all bit positions enables straightforward generalization to quantum errors.
  • Practicality: With only 7 physical bits/qubits, it remains implementable while providing meaningful error protection.
  • Pedagogical value: Its simplicity makes it an ideal teaching example while containing all essential features of more complex codes.
This classical foundation provides the mathematical bedrock upon which the quantum Steane [[7,1,3]] code is built, inheriting the Hamming code’s elegance while adding quantum error correction capabilities.

5. Constructive Derivation of the Steane [[7,1,3]] Code

5.1. CSS Construction: Bridging Classical and Quantum Codes

The Calderbank-Shor-Steane (CSS) construction [2] builds quantum codes from pairs of classical codes. Given a classical linear code C with parity-check matrix H, the CSS code uses:
  • X-stabilizers: Generators with supports given by rows of H, acting as X operators
  • Z-stabilizers: Generators with identical supports, acting as Z operators
For the Steane code, we use the same Hamming code C = [ 7 , 4 , 3 ] for both X and Z stabilizers. This symmetric construction guarantees automatic commutation between X and Z stabilizers due to the orthogonality condition H H = 0 over F 2 .

5.2. Explicit Stabilizer Generators

5.2.1. Z-Type Stabilizers

From the rows of H:
S Z 1 = Z 1 Z 3 Z 5 Z 7 , S Z 2 = Z 2 Z 3 Z 6 Z 7 , S Z 3 = Z 4 Z 5 Z 6 Z 7 .
In binary symplectic form:
S Z 1 = ( 0000000 1010101 ) , S Z 2 = ( 0000000 0110011 ) , S Z 3 = ( 0000000 0001111 ) .

5.2.2. X-Type Stabilizers

Identical supports but with X operators:
S X 1 = X 1 X 3 X 5 X 7 , S X 2 = X 2 X 3 X 6 X 7 , S X 3 = X 4 X 5 X 6 X 7 .
In binary symplectic form:
S X 1 = ( 1010101 0000000 ) , S X 2 = ( 0110011 0000000 ) , S X 3 = ( 0001111 0000000 ) .

5.3. Verification of Commutation Relations

All stabilizers pairwise commute. Let’s verify one non-trivial case explicitly:
Example: Check commutation between S X 1 and S Z 2 :
S X 1 = ( 1 , 0 , 1 , 0 , 1 , 0 , 1 0 , 0 , 0 , 0 , 0 , 0 , 0 ) S Z 2 = ( 0 , 0 , 0 , 0 , 0 , 0 , 0 0 , 1 , 1 , 0 , 0 , 1 , 1 ) S X 1 , S Z 2 = ( 1 , 0 , 1 , 0 , 1 , 0 , 1 ) · ( 0 , 1 , 1 , 0 , 0 , 1 , 1 ) = 1 · 0 + 0 · 1 + 1 · 1 + 0 · 0 + 1 · 0 + 0 · 1 + 1 · 1 = 0 + 0 + 1 + 0 + 0 + 0 + 1 = 2 0 ( mod 2 ) .
All other pairs commute similarly because H H = 0 over F 2 , ensuring the symplectic inner product vanishes for all cross terms.

6. Symplectic Stabilizer Matrix

The full stabilizer group is generated by the six operators above. The symplectic stabilizer matrix  M F 2 6 × 14 compactly represents all generators:
M = H 0 0 H = 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 .
The rank of M is 6 (full rank), as the rows are linearly independent. This matrix representation enables efficient computation of syndromes and analysis of code properties.

7. Logical Operators and Centralizer Structure

7.1. Centralizer Dimension and Logical Qubits

The centralizer  C ( S ) consists of all Pauli operators that commute with every stabilizer. In symplectic terms, C ( S ) is the kernel of the map defined by the symplectic product with rows of M.
The dimension follows from fundamental linear algebra:
dim C ( S ) = 2 n rank ( M ) = 14 6 = 8 .
Table 5. Dimensional analysis of the Steane code’s operator space.
Table 5. Dimensional analysis of the Steane code’s operator space.
Space Dimension Interpretation
Full Pauli space (mod phases) 2 n = 14 All operators on 7 qubits
Stabilizer group S rank ( M ) = 6 6 independent generators
Centralizer C ( S ) 8 Operators commuting with S
Logical operators 2 Encodes 1 logical qubit

7.2. Canonical Logical Operators

Standard choices for logical operators that respect the code’s symmetry are:
X ¯ = X 7 = X 1 X 2 X 3 X 4 X 5 X 6 X 7 , Z ¯ = Z 7 = Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 Z 7 .
In binary symplectic form:
X ¯ = ( 1111111 0000000 ) , Z ¯ = ( 0000000 1111111 ) .

7.3. Explicit Verification of Logical Properties

  • Commutation with stabilizers: For any X-stabilizer S X i :
    X ¯ , S X i = ( 1111111 ) · ( 0 0 ) + ( 0 0 ) · H i = 0 .
    Similarly for Z-stabilizers and Z ¯ .
  • Anti-commutation between logicals:
    X ¯ , Z ¯ = ( 1111111 ) · ( 1111111 ) + ( 0000000 ) · ( 0000000 ) = 7 1 ( mod 2 ) .
  • Not in stabilizer group: Both have weight 7, while all stabilizers have weight 4 and specific patterns not matching all-ones.

8. Syndrome Extraction and Decoding

8.1. Syndrome Calculation: From Quantum Physics to Linear Algebra

Let E = ( u E v E ) be a Pauli error. Its syndrome s F 2 6 is computed as:
s = M v E u E ( mod 2 ) .
Physical Interpretation: The syndrome has two 3-bit components:
s = ( s X s Z ) , where s X F 2 3 , s Z F 2 3 .
Specifically:
s X = H v E ( for Z errors affecting X - stabilizer measurements ) , s Z = H u E ( for X errors affecting Z - stabilizer measurements ) .

8.2. Single-Qubit Error Syndrome Table

Table 6. Complete syndrome table for single-qubit Pauli errors on the Steane code. Each of the 21 possible errors produces a unique syndrome.
Table 6. Complete syndrome table for single-qubit Pauli errors on the Steane code. Each of the 21 possible errors produces a unique syndrome.
Qubit Error Type ( u E v E ) Syndrome ( s X s Z )
1 X 1 ( 1 , 0 , 0 , 0 , 0 , 0 , 0 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ( 000 101 )
Z 1 ( 0 , 0 , 0 , 0 , 0 , 0 , 0 1 , 0 , 0 , 0 , 0 , 0 , 0 ) ( 101 000 )
Y 1 ( 1 , 0 , 0 , 0 , 0 , 0 , 0 1 , 0 , 0 , 0 , 0 , 0 , 0 ) ( 101 101 )
2 X 2 ( 0 , 1 , 0 , 0 , 0 , 0 , 0 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ( 000 011 )
Z 2 ( 0 , 0 , 0 , 0 , 0 , 0 , 0 0 , 1 , 0 , 0 , 0 , 0 , 0 ) ( 011 000 )
Y 2 ( 0 , 1 , 0 , 0 , 0 , 0 , 0 0 , 1 , 0 , 0 , 0 , 0 , 0 ) ( 011 011 )
3 X 3 ( 0 , 0 , 1 , 0 , 0 , 0 , 0 0 , 0 , 0 , 0 , 0 , 0 , 0 ) ( 000 110 )
Z 3 ( 0 , 0 , 0 , 0 , 0 , 0 , 0 0 , 0 , 1 , 0 , 0 , 0 , 0 ) ( 110 000 )
Y 3 ( 0 , 0 , 1 , 0 , 0 , 0 , 0 0 , 0 , 1 , 0 , 0 , 0 , 0 ) ( 110 110 )
⋮    (Qubits 4-7 follow similar pattern with unique syndromes)

8.3. Worked Example: X Error on Qubit 3

Consider error E = X 3 . Then:
u E = ( 0 , 0 , 1 , 0 , 0 , 0 , 0 ) , v E = ( 0 , 0 , 0 , 0 , 0 , 0 , 0 ) .
Syndrome calculation:
s X = H v E = ( 0 , 0 , 0 ) , s Z = H u E = column 3 of H = ( 1 , 1 , 0 ) .
Thus s = ( 000 110 ) , meaning:
  • X-stabilizers: S X 1 , S X 2 , S X 3 all measure + 1 ( s X = 000 )
  • Z-stabilizers: S Z 1 and S Z 2 measure 1 , S Z 3 measures + 1 ( s Z = 110 )
This syndrome uniquely identifies an X error on qubit 3, enabling precise error correction.

9. Code Distance Calculation

9.1. Methodology for Distance Determination

The code distance d is the minimum weight of a non-trivial logical operator (an operator in C ( S ) S ). We verify d = 3 through systematic analysis.

9.2. Weight-1 and Weight-2 Errors

  • Weight-1: All detectable. For any single-qubit Pauli E, either s X 0 or s Z 0 because all columns of H are non-zero.
  • Weight-2: Consider any weight-2 Pauli E = P i P j . The syndrome is the XOR of columns i and j of H (for X or Y errors). Since no two columns of H are identical, no two columns sum to zero, so all weight-2 errors are detected.

9.3. Weight-3 Undetectable Error

To find a weight-3 undetectable error, we need E = X a X b X c such that H ( u E ) = 0 , where u E has ones at positions a , b , c . This means { a , b , c } must correspond to three columns of H that sum to zero.
The Hamming code’s generator matrix is:
G = 1 0 0 0 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 .
The first row gives codeword ( 1 , 0 , 0 , 0 , 0 , 1 , 1 ) with weight 3. This corresponds to E = X 1 X 6 X 7 . Verify:
u E = ( 1 , 0 , 0 , 0 , 0 , 1 , 1 ) , H u E = col 1 + col 6 + col 7 = ( 1 , 0 , 0 ) + ( 0 , 1 , 1 ) + ( 1 , 1 , 1 ) = ( 0 , 0 , 0 ) .
Thus E = X 1 X 6 X 7 has zero syndrome and weight 3. It commutes with all stabilizers but is not in the stabilizer group (all X-stabilizers have weight 4 with different patterns). Therefore d 3 .
Since weight-1 and weight-2 errors are all detected, we conclude d = 3 .

10. Transversal Clifford Gates

10.1. Hadamard Gate: Symmetry Between X and Z

The Hadamard gate H exchanges X Z on a single qubit. On n qubits, H n transforms the symplectic representation as:
H n : ( u v ) ( v u ) .
For the Steane code:
  • X-stabilizers ( H i 0 ) ( 0 H i ) = Z-stabilizers
  • Z-stabilizers ( 0 H i ) ( H i 0 ) = X-stabilizers
  • Logical X ¯ = ( 1 1 0 ) ( 0 1 1 ) = Z ¯
  • Logical Z ¯ = ( 0 1 1 ) ( 1 1 0 ) = X ¯
Thus H 7 implements logical Hadamard H ¯ transversally.

10.2. Phase Gate: Implementation up to Global Phase

The phase gate S = diag ( 1 , i ) transforms:
S : ( u v ) ( u v u ) .
Applied transversally to the Steane code:
X ¯ = ( 1 1 0 ) ( 1 1 1 1 ) = Y ¯ i X ¯ Z ¯ .
Since global phases are ignored in the Pauli group modulo phases, S 7 implements logical phase up to a global phase.

10.3. CNOT Gate: Transversal Entanglement

For CNOT with control c and target t, the symplectic transformation is:
u c u c , u t u t u c , v c v c v t , v t v t .
Applied transversally (qubit i of control block to qubit i of target block), this transformation preserves the stabilizer group of two Steane code blocks, implementing logical CNOT.

11. Fault-Tolerant Stabilizer Measurement

11.1. The Need for Flagged Circuits

Direct measurement of stabilizers using a single ancilla qubit can propagate a single fault to multiple data qubits, creating weight-2 data errors that may be uncorrectable. Flagged circuits [6] prevent this by using an additional flag qubit to detect potentially dangerous fault configurations.

11.2. Flagged Measurement Circuit Design

Figure 6. Flagged circuit for measuring X 1 X 2 X 3 X 4 stabilizer. The circuit measures the syndrome on ancilla A while using flag qubit F to detect hook errors. For Z-stabilizers, replace + with 0 and reverse CNOT directions.
Figure 6. Flagged circuit for measuring X 1 X 2 X 3 X 4 stabilizer. The circuit measures the syndrome on ancilla A while using flag qubit F to detect hook errors. For Z-stabilizers, replace + with 0 and reverse CNOT directions.
Preprints 187911 g006

11.3. Error Propagation Analysis

A single fault can occur at any location:
  • Ancilla preparation error: Propagates to at most one data qubit via CNOT back-action.
  • Gate error: CNOT error propagates to either data or flag, not both.
  • Measurement error: Detected by repetition or post-selection.
The flag measurement outcome indicates whether a potentially harmful fault occurred, enabling adaptive correction or rejection of that syndrome measurement round.

12. Noise Model and Pseudo-Threshold

12.1. Realistic Circuit-Level Noise

Consider a comprehensive noise model:
  • Single-qubit depolarizing noise: E ( ρ ) = ( 1 p ) ρ + p 3 ( X ρ X + Y ρ Y + Z ρ Z ) after each gate
  • Two-qubit depolarizing noise for CNOT gates: E ( ρ ) = ( 1 p ) ρ + p 15 P i P j I I ( P i P j ) ρ ( P i P j )
  • Measurement errors with probability p meas
  • State preparation errors with probability p prep

12.2. Pseudo-Threshold Estimation

With flagged circuits and optimal decoding, the Steane code achieves a pseudo-threshold (error rate per physical component below which logical error rate decreases) in the range:
p pth 10 3 to 10 4 ,
depending on details of the noise model, circuit-level optimization, and decoding strategy [10].

13. Extensions to Modern Quantum Codes

13.1. Subsystem Codes: Beyond Stabilizer Formalism

Subsystem codes [7] generalize stabilizer codes by introducing gauge operators. In the GF(4) framework:
  • Choose a classical code over GF(4) with generator matrix G
  • The stabilizer group corresponds to a subspace of the dual code
  • Gauge operators correspond to the remaining generators
  • Logical operators commute with both stabilizers and gauge operators
This framework provides more flexibility in code design and often simplifies fault-tolerant implementations.

13.2. Quantum LDPC Codes: Sparse Symplectic Matrices

For QLDPC codes [8]:
  • Represent stabilizers as sparse vectors in GF(4)n
  • The Tanner graph connects qubits (variable nodes) to checks (stabilizer generators)
  • Belief propagation decoding operates directly on GF(4) probabilities
  • The symplectic product condition becomes local constraints on the graph

13.2.1. Hypergraph Product Codes

The hypergraph product [9] of two classical codes C 1 and C 2 produces a quantum code with parameters:
[ [ n 1 n 2 + k 1 k 2 , k 1 k 2 , min ( d 1 , d 2 ) ] ] .
In the symplectic framework, the stabilizer matrix is constructed as:
M = H 1 I n 2 I n 1 H 2 I n 1 H 2 H 1 I n 2 .
This construction naturally yields LDPC codes when H 1 and H 2 are sparse.
Figure 7. Schematic of a surface code as a QLDPC code. Qubits (blue circles) are connected to X-stabilizers (red squares) and Z-stabilizers (green squares) in a local pattern.
Figure 7. Schematic of a surface code as a QLDPC code. Qubits (blue circles) are connected to X-stabilizers (red squares) and Z-stabilizers (green squares) in a local pattern.
Preprints 187911 g007

14. How to Use This Framework for Code Design

The GF(4)-symplectic framework provides a systematic methodology for quantum code design and analysis:
  • Choose classical code(s): Select classical linear code(s) C with good parameters (rate, distance, efficient decoding)
  • GF(4) representation: Encode C as a subspace of GF(4)n or use CSS construction with two classical codes
  • Symplectic matrix construction: Convert to binary symplectic form M = H X 0 0 H Z
  • Check commutativity: Verify M Ω M = 0 , where Ω = 0 I n I n 0
  • Compute centralizer: Find kernel of the map v M Ω v
  • Identify logical operators: Choose representatives from centralizer modulo stabilizers
  • Calculate distance: Find minimum weight of non-trivial logical operators via enumeration or bounds
  • Design syndrome extraction: Use flagged circuits based on stabilizer supports and weight
  • Verify transversal gates: Check which Clifford gates preserve the code space by their symplectic action
  • Simulate performance: Evaluate error correction threshold under realistic noise models

15. Conclusion: A Unified Pedagogical Foundation

This paper has presented a complete, constructive derivation of the Steane [[7,1,3]] quantum error-correcting code using a unified framework that connects GF(4) algebra, binary symplectic representation, and stabilizer formalism. Through explicit step-by-step development, we have demonstrated:
1. How GF(4) provides the natural algebraic language for Pauli operators modulo phases 2. How binary symplectic representation transforms quantum commutation into matrix multiplication 3. How classical Hamming codes directly yield quantum CSS codes via the symplectic construction 4. How all code properties—stabilizers, logical operators, distance, syndromes—follow from linear algebra 5. How transversal Clifford gates emerge from symplectic transformations 6. How fault-tolerant measurement circuits implement the algebraic structure 7. How this framework extends systematically to modern code families
The pedagogical value of this unified approach is substantial. By presenting quantum error correction as a coherent mathematical framework rather than a collection of disjoint techniques, we lower the barrier to entry for new researchers while providing experienced practitioners with a systematic methodology for code design and analysis.
Future work can build upon this foundation to explore more advanced topics, including:
  • Non-CSS stabilizer codes using full GF(4) representations
  • Topological codes as special cases of the symplectic framework
  • Union-Find and other modern decoders in the binary representation
  • Hardware-efficient implementations of the symplectic operations
The GF(4)-symplectic framework presented here serves not only as a tutorial on the Steane code but as a versatile foundation for understanding, designing, and implementing quantum error correction in practice.

Acknowledgments

The author expresses sincere gratitude to the quantum information research community whose pioneering work on stabilizer codes, fault-tolerant quantum computation, and algebraic coding theory provided the essential foundation for this unified exposition. Special acknowledgment is extended to the original developers of the GF(4) representation, symplectic formalism, and CSS construction methodologies. This pedagogical synthesis was developed at Sirraya Labs. The author acknowledges the research support and intellectual environment provided by Sirraya Labs that enabled the comprehensive presentation of this unified framework. Correspondence and inquiries: Amir Hameed Mir, Sirraya Labs, amir@sirraya.org.

Appendix A. Comprehensive Reference Guide for Quantum Error Correction

This appendix serves as a self-contained pedagogical reference for all key concepts, notation, and terminology used throughout the paper. Organized thematically, it provides both quick lookup and deeper understanding of the mathematical foundations of quantum error correction.

Appendix A.1. Fundamental Mathematical Structures

Finite Field GF(2) ( F 2 )
The binary field with two elements { 0 , 1 } and operations:
0 + 0 = 0 , 0 + 1 = 1 + 0 = 1 , 1 + 1 = 0 0 · 0 = 0 , 0 · 1 = 1 · 0 = 0 , 1 · 1 = 1
All binary linear algebra in this paper operates over GF(2).
Finite Field GF(4)
Extension field with four elements { 0 , 1 , α , β } where β = α + 1 , defined by the irreducible polynomial x 2 + x + 1 :
α 2 = α + 1 = β α 3 = α · β = 1 α + α = β + β = 0
Complete arithmetic tables:
Preprints 187911 i001
Vector Space F 2 n
Set of all binary vectors of length n with component-wise addition modulo 2. Forms the foundation for classical linear codes.
Binary Linear Algebra
Matrix operations performed modulo 2:
  • Matrix addition: ( A + B ) i j = A i j + B i j ( mod 2 )
  • Matrix multiplication: ( A B ) i j = k A i k B k j ( mod 2 )
  • Dot product: u · v = i = 1 n u i v i ( mod 2 )

Appendix A.2. Pauli Group Theory and Representation

Single-Qubit Pauli Matrices
The four fundamental operators:
I = 1 0 0 1 , X = 0 1 1 0 , Z = 1 0 0 1 , Y = 0 i i 0 = i X Z
Pauli Group P 1
Single-qubit Pauli group including phases:
P 1 = { ± I , ± i I , ± X , ± i X , ± Y , ± i Y , ± Z , ± i Z }
Pauli Group P n
n-qubit Pauli group:
P n = { ± 1 , ± i } × { I , X , Y , Z } n
Elements are tensor products of single-qubit Paulis with overall phase ± 1 or ± i .
GF(4)–Pauli Isomorphism
Fundamental correspondence (modulo phases):
Preprints 187911 i003
Binary Symplectic Representation
Encoding Pauli P P n (modulo phase):
P ( u v ) F 2 2 n
where for each qubit j:
  • u j = 1 if P has X or Y on qubit j
  • v j = 1 if P has Z or Y on qubit j
Symplectic Form Matrix
The 2 n × 2 n matrix defining the symplectic inner product:
Ω = 0 n I n I n 0 n
where 0 n is the n × n zero matrix and I n is the n × n identity matrix.
Symplectic Inner Product
For P = ( u v ) , Q = ( u v ) F 2 2 n :
P , Q = ( u v ) Ω ( u v ) = u · v + v · u ( mod 2 )
Commutation Theorem
Two Pauli operators P and Q commute if and only if P , Q = 0 .
Operator Weight
wt ( P ) = number of qubits where P acts non-trivially (not as I).
Operator Support
supp ( P ) = set of qubit indices where P acts non-trivially.

Appendix A.3. Classical Coding Theory Fundamentals

Linear Code C
A subspace C F 2 n of dimension k. Contains 2 k codewords.
Code Parameters [ n , k , d
]
  • n: block length (number of bits)
  • k: dimension (number of information bits)
  • d: minimum distance = min { wt ( c ) : c C , c 0 }
Generator Matrix G
k × n matrix whose rows form a basis for C:
C = { x G : x F 2 k }
Parity-Check Matrix H
( n k ) × n matrix satisfying:
H c = 0 for all c C
Equivalently: C = { c F 2 n : H c = 0 } .
Syndrome (Classical)
For error e F 2 n :
s = H e F 2 n k
Used to detect and correct errors.
Coset
For linear code C and error e: e + C = { e + c : c C } .
Syndrome Decoding
Mapping syndromes to coset leaders (minimum weight errors).
Hamming Weight
wt ( v ) = number of 1’s in binary vector v.
Hamming Distance
d ( v , w ) = wt ( v + w ) .
Dual Code
C = { v F 2 n : v · c = 0 for all c C } .

Appendix A.4. Stabilizer Quantum Error Correction

Stabilizer Group S
An abelian subgroup of P n not containing I .
Stabilizer Code
The subspace:
C = { | ψ ( C 2 ) n : P | ψ = | ψ for all P S }
Stabilizer Generators
Independent set { g 1 , , g n k } S that generate S.
Code Parameters [[ n , k , d
]]
  • n: number of physical qubits
  • k: number of logical qubits = n rank ( S )
  • d: code distance = minimum weight of non-trivial logical operator
Centralizer C ( S )
Set of Pauli operators commuting with all elements of S:
C ( S ) = { P P n : P Q = Q P for all Q S }
Normalizer N ( S )
For stabilizer codes: N ( S ) = C ( S ) .
Logical Operators
Elements of C ( S ) S . Act non-trivially on encoded information.
Codespace Dimension
dim ( C ) = 2 k = 2 n rank ( S ) .
Syndrome (Quantum)
For error E P n , measurement outcomes of stabilizer generators:
s i = 0 if E commutes with g i 1 if E anti - commutes with g i

Appendix A.5. CSS Code Construction

CSS Construction
Given two classical linear codes C X , C Z F 2 n with C Z C X :
  • X-stabilizers: Generators from rows of H Z (parity-check of C Z )
  • Z-stabilizers: Generators from rows of H X (parity-check of C X )
Symplectic Stabilizer Matrix
For CSS codes:
M = H Z 0 0 H X
Code Parameters
For CSS code from [ n , k X , d X ] and [ n , k Z , d Z ] :
n quantum = n k quantum = k X + k Z n d quantum min ( d X , d Z )
Independent X and Z Correction
CSS codes correct X and Z errors separately using classical decoders for C Z and C X respectively.

Appendix A.6. The Steane [[7,1,3]] Code in Detail

Classical Foundation
Hamming [ 7 , 4 , 3 ] code:
  • Parity-check matrix: H = 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1
  • Minimum distance: 3 (corrects any single-bit error)
  • Perfect code: 2 7 4 = 8 syndromes match 7 single errors + no error
Stabilizer Generators
From CSS construction using same H for both X and Z:
S X 1 = X 1 X 3 X 5 X 7 S Z 1 = Z 1 Z 3 Z 5 Z 7 S X 2 = X 2 X 3 X 6 X 7 S Z 2 = Z 2 Z 3 Z 6 Z 7 S X 3 = X 4 X 5 X 6 X 7 S Z 3 = Z 4 Z 5 Z 6 Z 7
Logical Operators
Canonical choice:
X ¯ = X 7 , Z ¯ = Z 7
Syndrome Table
All 21 single-qubit errors produce distinct syndromes:
Preprints 187911 i002
Transversal Gates
H ¯ = H 7 : X ¯ Z ¯ S ¯ = S 7 : X ¯ Y ¯ i X ¯ Z ¯ CNOT ¯ = CNOT 7 : transversal entanglement

Appendix A.7. Fault-Tolerant Quantum Computation

Fault-Tolerant Gate
Implementation where a single physical fault causes at most one error per encoded block, preserving error correction capability.
Hook Error
Dangerous error propagation in multi-qubit gates where one fault creates correlated errors on multiple data qubits.
Flag Qubit
Ancilla used to detect when a measurement circuit may have created correlated errors.
Flagged Syndrome Extraction
Measurement circuit that uses flag qubits to signal dangerous fault patterns.
Ancilla States
Special states for measurement:
  • | 0 L , | + L : Logical zero and plus states
  • | 0 , | + : Physical ancilla states
Fault-Tolerant Measurement Circuit
For X-type stabilizer X a X b X c X d :
Preprints 187911 i004
Pseudo-Threshold
Physical error rate below which encoded computation has lower logical error rate than unencoded computation.
Code Capacity Threshold
Error rate threshold assuming perfect gates and measurements.
Circuit-Level Threshold
Error rate threshold including gate, measurement, and preparation errors.

Appendix A.8. Extension to Modern Code Families

Subsystem Codes
Decompose Hilbert space as H = C G C where:
  • C : Logical subsystem (protected information)
  • G : Gauge subsystem (not protected)
  • Stabilizers act only on C
  • Gauge operators generate transformations within G
Quantum LDPC Codes
Codes with sparse parity-check matrices (constant-weight stabilizers).
Hypergraph Product
Construction of QLDPC codes from two classical LDPC codes:
H 1 I n 2 I n 1 H 2 I n 1 H 2 H 1 I n 2
Tanner Graph
Bipartite graph representation connecting:
  • Variable nodes (qubits)
  • Check nodes (stabilizer generators)
Belief Propagation
Iterative decoding algorithm operating on Tanner graph.

Appendix A.9. Complete Notation Reference

Table A1. Comprehensive notation reference for quantum error correction.
Table A1. Comprehensive notation reference for quantum error correction.
Symbol Meaning and Usage
I, X, Y, Z Single-qubit Pauli matrices
P n Pauli operator P applied to all n qubits
( u v ) Binary symplectic vector (u = X-part, v = Z-part)
P , Q Symplectic inner product: u·v’ + v·u’ mod 2
wt ( P ) Weight of operator P (non-identity components)
supp ( P ) Support set of operator P
Addition modulo 2 (XOR)
α , β GF(4) elements: β = α + 1 , α 2 = β
F 2 Binary field {0,1}
F 4 Four-element field GF(4) = { 0 , 1 , α , β }
P n n-qubit Pauli group (including phases)
[ n , k , d ] Classical code parameters: length, dimension, distance
[ [ n , k , d ] ] Quantum code parameters: physical qubits, logical qubits, distance
G Generator matrix (classical)
H Parity-check matrix (classical) or Hadamard gate (quantum)
M Symplectic stabilizer matrix
S Stabilizer group
S X i , S Z j X-type and Z-type stabilizer generators
X ¯ , Z ¯ Logical X and Z operators
C(S) Centralizer of stabilizer group S
H n n-fold tensor product of Hadamard gates
S Phase gate: diag(1, i)
CNOT Controlled-NOT gate
| 0 , | + Computational and Hadamard basis states

Appendix A.10. Common Constructions and Formulas

Table A2. Useful formulas and constructions in quantum error correction.
Table A2. Useful formulas and constructions in quantum error correction.
Construction Formula/Procedure
Binary Symplectic Encoding P ( u v ) where u j = 1 for X/Y, v j = 1 for Z/Y
Syndrome Calculation s = M v E u E ( mod 2 )
CSS Code from C H X = H Z = H C , S X = rows ( H ) X , S Z = rows ( H ) Z
Centralizer Dimension dim C ( S ) = 2 n rank ( M )
Logical Qubit Count k = n rank ( M ) / 2
Code Distance d = min { wt ( L ) : L C ( S ) S }
Transversal Hadamard ( u v ) ( v u )
Transversal Phase ( u v ) ( u v u )
Transversal CNOT ( u c v c , u t v t ) ( u c v c v t , u t u c v t )
Hamming Code H Columns = binary numbers 1-7: 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1
Steane Stabilizers S X 1 = X 1 X 3 X 5 X 7 , S Z 1 = Z 1 Z 3 Z 5 Z 7 , etc.

Appendix A.11. Supplementary Examples and Exercises

Appendix A.11.11.1. Example: Verifying Steane Code Properties

  • Verify that S X 1 and S Z 2 commute using symplectic product.
  • Show that X ¯ = X 7 has syndrome 000 000 .
  • Find the syndrome for error Y 4 on the Steane code.
  • Verify that H 7 maps X ¯ to Z ¯ .

Appendix A.11.11.2. Example: General CSS Construction

Given classical code C with parity-check matrix:
H = 1 1 0 0 0 1 1 1
Construct the corresponding CSS code and determine its parameters [ [ n , k , d ] ] .

Appendix A.11.11.3. Exercise: Error Correction Capability

A code with distance d = 3 can:
  • Detect any error affecting 2 qubits
  • Correct any error affecting 1 qubit
  • Detect but not correct errors affecting 2 qubits
General rule: Code with distance d can correct ( d 1 ) / 2 errors.

Appendix A.12. Additional Resources and References

  • Classical Coding Theory: MacWilliams and Sloane, "The Theory of Error-Correcting Codes"
  • Quantum Information: Nielsen and Chuang, "Quantum Computation and Quantum Information"
  • Stabilizer Formalism: Gottesman, "Stabilizer Codes and Quantum Error Correction"
  • Fault Tolerance: Preskill, "Quantum Computing in the NISQ era and beyond"
  • Online Resources:
    • arXiv:quant-ph for latest research
    • QEC Zoo: errorcorrectionzoo.org
    • PennyLane, Qiskit tutorials for implementation

Appendix A.13. Glossary of Acronyms

QEC
Quantum Error Correction
CSS
Calderbank-Shor-Steane (code construction)
LDPC
Low-Density Parity-Check
GF
Galois Field (finite field)
MWPM
Minimum Weight Perfect Matching (decoder)
BP
Belief Propagation (decoder)
FT
Fault-Tolerant
CNOT
Controlled-NOT gate
NISQ
Noisy Intermediate-Scale Quantum
QLDPC
Quantum Low-Density Parity-Check

References

  1. D. Gottesman, Stabilizer Codes and Quantum Error Correction, Caltech Ph.D. thesis, 1997.
  2. A. R. Calderbank and P. W. Shor, Good quantum error-correcting codes exist, Phys. Rev. A 54, 1098 (1996).
  3. A. M. Steane, Error correcting codes in quantum theory, Phys. Rev. Lett. 77, 793 (1996).
  4. A. Leverrier, J. A. Leverrier, J. Tillich, and G. Zémor, Quantum expander codes, Proc. IEEE FOCS, 810–819 (2015).
  5. P. Panteleev and G. Kalachev, Asymptotically good quantum and locally testable classical LDPC codes, Proc. ACM STOC, 375–388 (2022).
  6. C. Chamberland and M. E. Beverland, Flag fault-tolerant error correction with arbitrary distance codes, Quantum 4, 256 (2020).
  7. D. Poulin, Stabilizer formalism for operator quantum error correction, Phys. Rev. Lett. 95, 230504 (2005).
  8. A. A. Kovalev and L. P. Pryadko, Quantum Kronecker sum-product low-density parity-check codes with finite rate, Phys. Rev. A 88, 012311 (2013).
  9. J. Tillich and G. Zémor, Quantum LDPC codes with positive rate and minimum distance proportional to the square root of the blocklength, IEEE Trans. Inf. Theory 60, 1193–1202 (2014).
  10. A. G. Fowler, M. A. G. Fowler, M. Mariantoni, J. M. Martinis, and A. N. Cleland, Surface codes: Towards practical large-scale quantum computation, Phys. Rev. A 86, 032324 (2012).
Disclaimer/Publisher’s Note: 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.
Copyright: This open access article is published under a Creative Commons CC BY 4.0 license, which permit the free download, distribution, and reuse, provided that the author and preprint are cited in any reuse.
Prerpints.org logo

Preprints.org is a free preprint server supported by MDPI in Basel, Switzerland.

Subscribe

Disclaimer

Terms of Use

Privacy Policy

Privacy Settings

© 2026 MDPI (Basel, Switzerland) unless otherwise stated