From 94d298f609d20b21b378d11b242bde5fcbe06f60 Mon Sep 17 00:00:00 2001 From: Fe-r-oz Date: Mon, 28 Jul 2025 22:34:41 +0500 Subject: [PATCH 1/5] Double Homological Product Code --- .../small_distance/small/8/stab_8_3_3.yml | 2 +- .../double_homological_product.yml | 53 +++++++++++++++++++ users/users_db.yml | 4 +- 3 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml diff --git a/codes/quantum/qubits/small_distance/small/8/stab_8_3_3.yml b/codes/quantum/qubits/small_distance/small/8/stab_8_3_3.yml index 809493adc..e5d6800ae 100644 --- a/codes/quantum/qubits/small_distance/small/8/stab_8_3_3.yml +++ b/codes/quantum/qubits/small_distance/small/8/stab_8_3_3.yml @@ -39,7 +39,7 @@ relations: _meta: # Change log - most recent first changelog: - - user_id: FerozAhmad + - user_id: FerozAhmedMian date: '2024-03-14' - user_id: VictorVAlbert date: '2023-11-28' diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml new file mode 100644 index 000000000..a221a62f1 --- /dev/null +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml @@ -0,0 +1,53 @@ +####################################################### +## This is a code entry in the error correction zoo. ## +## https://github.com/errorcorrectionzoo ## +####################################################### + +code_id: double_homological_product +physical: qubits +logical: qubits + +name: 'Double homological product code' +introduced: '\cite{arxiv:1805.09271}' + +description: | + The double homological product code is derived from two applications of the homological product to a classical code, resulting in a length-\(4\) chain complex: + \[ + \breve{C}_{-2} \xrightarrow{\breve{\delta}_{-2}} \breve{C}_{-1} \xrightarrow{\breve{\delta}_{-1}} \breve{C}_0 \xrightarrow{\breve{\delta}_0} \breve{C}_1 \xrightarrow{\breve{\delta}_1} \breve{C}_2. + \] + + The boundary maps \(\breve{\delta}_j\) are constructed using tensor products of the original boundary maps, ensuring the chain condition \(\breve{\delta}_{j+1} \breve{\delta}_j = 0\). + + The code supports metachecks to detect measurement errors, enabling single-shot error correction. + +protection: | + - Given a classical \([n, k, d]\) code, the double homological product yields a quantum code with parameters: + \[ + [[n_Q = n^4 + 4n^2(n-k)^2 + (n-k)^4, k_Q = k^4, d_Q \geq d, d_{ss} = \infty]]. + \] + - The code is \((d, f)\)-sound with \(f(x) = x^3/4\), meaning small syndromes can be corrected by small errors. + - The check redundancy is bounded (\(\breve{\upsilon} < 2\)), and the construction preserves LDPC properties if the original code is LDPC. + +relations: + parents: + - code_id: homological_product + cousins: + - code_id: higher_dimensional_toric + detail: While topological codes like the \(2D\) or \(2D\) toric codes offer intuitive geometric structures, they face fundamental trade-offs in code parameters (e.g., rate vs. distance). The double homological product code, though more abstract, shares key advantages with high-dimensional topological codes—such as single-shot error correction—while circumventing these limitation. + +features: + fault_tolerance: + - Corrects errors using only one round of noisy measurements, with residual errors bounded by the soundness function. + - Metachecks enable detection of measurement errors, improving fault tolerance. + + decoders: + - 'The meta-check-based decoder operates through a two-stage process: first, it identifies a minimal correction \( s_{\text{rec}} \) to the syndrome \( s \) such that the repaired syndrome \( s + s_{\text{rec}} \) satisfies all metachecks (\( H(s + s_{\text{rec}}) = 0 \)). Second, it computes a minimal-weight physical error \( E_{\text{rec}} \) consistent with the repaired syndrome. This approach uniquely tolerates up to \( \lfloor (d_{ss} - 1)/2 \rfloor \) measurement errors in a single round, eliminating the need for repeated syndrome measurements—a hallmark of single-shot error correction.' + - 'The minimum-weight decoder optimizes the recovery operation \( E_{\text{rec}} \) to minimize the residual error \( E_{\text{rec}} \cdot E \) given a noisy syndrome \( s = \sigma(E) + u \). The decoder’s performance is intrinsically tied to the code’s soundness: when the code is \((t, f)\)-sound, the minimum-weight decoder guarantees that the residual error’s min-weight scales as \( f(2|u|) \) for measurement errors \( |u| < t/2 \) \cite{arxiv:1805.09271}. This property is particularly robust in double homological codes, where soundness follows a cubic scaling (\( f(x) \sim x^3 \)).' + +# Begin Entry Meta Information +_meta: + # Change log - most recent first + changelog: + - user_id: FerozAhmedMian + date: '2025-07-28' + diff --git a/users/users_db.yml b/users/users_db.yml index d370a1dec..0c45391bb 100644 --- a/users/users_db.yml +++ b/users/users_db.yml @@ -550,8 +550,8 @@ name: 'Purva Thakre' githubusername: purva-thakre -- user_id: FerozAhmad - name: 'Feroz Ahmad' +- user_id: FerozAhmedMian + name: 'Feroz Ahmed Mian' githubusername: Fe-r-oz - user_id: vtomole From 363fb07792bb9aa284e99a2d4cd7223d27da7385 Mon Sep 17 00:00:00 2001 From: Feroz Ahmed Mian Date: Tue, 29 Jul 2025 10:23:50 +0500 Subject: [PATCH 2/5] improvements to documentation --- .../balanced_product/double_homological_product.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml index a221a62f1..4f38a96d6 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml @@ -18,6 +18,8 @@ description: | The boundary maps \(\breve{\delta}_j\) are constructed using tensor products of the original boundary maps, ensuring the chain condition \(\breve{\delta}_{j+1} \breve{\delta}_j = 0\). + The construction method allows for the use of two different classical codes as inputs. However, \cite{arxiv:1805.09271} assumes identical input codes for simplicity. + The code supports metachecks to detect measurement errors, enabling single-shot error correction. protection: | @@ -34,6 +36,8 @@ relations: cousins: - code_id: higher_dimensional_toric detail: While topological codes like the \(2D\) or \(2D\) toric codes offer intuitive geometric structures, they face fundamental trade-offs in code parameters (e.g., rate vs. distance). The double homological product code, though more abstract, shares key advantages with high-dimensional topological codes—such as single-shot error correction—while circumventing these limitation. + - code_id: hypergraph_product + detail: Notational conventions for chain complexes permit some flexibility. \cite{arxiv:1805.09271} select conventions ensuring that the multi-sector homological product construction directly corresponds to the hypergraph product of \cite{arxiv:0903.0566}. features: fault_tolerance: From 818a5eddf519fe84e64930e90b0da2dd965071c4 Mon Sep 17 00:00:00 2001 From: Feroz Ahmed Mian Date: Thu, 16 Oct 2025 18:06:01 -0400 Subject: [PATCH 3/5] codereview suggestions: change parent to multi-sector product --- .../homological/balanced_product/double_homological_product.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml index 4f38a96d6..552b4ac84 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/balanced_product/double_homological_product.yml @@ -32,7 +32,7 @@ protection: | relations: parents: - - code_id: homological_product + - code_id: multisector_hypergraph cousins: - code_id: higher_dimensional_toric detail: While topological codes like the \(2D\) or \(2D\) toric codes offer intuitive geometric structures, they face fundamental trade-offs in code parameters (e.g., rate vs. distance). The double homological product code, though more abstract, shares key advantages with high-dimensional topological codes—such as single-shot error correction—while circumventing these limitation. From 05530127e7ed71b485ad8865fe43dec49cfd9876 Mon Sep 17 00:00:00 2001 From: Feroz Ahmed Mian Date: Thu, 16 Oct 2025 18:43:35 -0400 Subject: [PATCH 4/5] update citation in 3D surface code details to add the latest reference about construction of 3D Surface codes --- .../stabilizer/topological/surface/higher_d/3d_surface.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codes/quantum/qubits/stabilizer/topological/surface/higher_d/3d_surface.yml b/codes/quantum/qubits/stabilizer/topological/surface/higher_d/3d_surface.yml index 3064a6889..af0b7dd0f 100644 --- a/codes/quantum/qubits/stabilizer/topological/surface/higher_d/3d_surface.yml +++ b/codes/quantum/qubits/stabilizer/topological/surface/higher_d/3d_surface.yml @@ -71,7 +71,7 @@ relations: parents: - code_id: higher_dimensional_surface - code_id: multisector_hypergraph - detail: 'The 3D planar (3D toric) code can be obtained from a hypergraph product of three repetition (cyclic) codes \cite[Exam. A.1]{arxiv:2311.01328}\cite{arxiv:1810.01519}.' + detail: 'The 3D planar (3D toric) code can be obtained from a hypergraph product of three repetition (cyclic) codes \cite[Exam. A.1]{arxiv:2311.01328}\cite{arxiv:1810.01519}, \cite{arxiv:https://arxiv:2408.08865}.' - code_id: qudit_3d_surface detail: 'The qudit 3D surface code reduces to the 3D surface code for \(q=2\). The 3D surface code realizes 3D \(\mathbb{Z}_2\) gauge theory with bosonic charge and loop excitations (BcBl). The welded surface code does not satisfy homogeneous topological order \cite{arxiv:2009.13551}.' cousins: From 6568ae837e2fcc8d5f74df9f11ae448e3813953b Mon Sep 17 00:00:00 2001 From: Feroz Ahmed Mian Date: Thu, 16 Oct 2025 18:45:41 -0400 Subject: [PATCH 5/5] fix formatting in 3D surface file due to previous commit --- .../stabilizer/topological/surface/higher_d/3d_surface.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codes/quantum/qubits/stabilizer/topological/surface/higher_d/3d_surface.yml b/codes/quantum/qubits/stabilizer/topological/surface/higher_d/3d_surface.yml index af0b7dd0f..eb2c9dcb1 100644 --- a/codes/quantum/qubits/stabilizer/topological/surface/higher_d/3d_surface.yml +++ b/codes/quantum/qubits/stabilizer/topological/surface/higher_d/3d_surface.yml @@ -71,7 +71,7 @@ relations: parents: - code_id: higher_dimensional_surface - code_id: multisector_hypergraph - detail: 'The 3D planar (3D toric) code can be obtained from a hypergraph product of three repetition (cyclic) codes \cite[Exam. A.1]{arxiv:2311.01328}\cite{arxiv:1810.01519}, \cite{arxiv:https://arxiv:2408.08865}.' + detail: 'The 3D planar (3D toric) code can be obtained from a hypergraph product of three repetition (cyclic) codes \cite[Exam. A.1]{arxiv:2311.01328}\cite{arxiv:1810.01519}, \cite{arxiv:2408.08865}.' - code_id: qudit_3d_surface detail: 'The qudit 3D surface code reduces to the 3D surface code for \(q=2\). The 3D surface code realizes 3D \(\mathbb{Z}_2\) gauge theory with bosonic charge and loop excitations (BcBl). The welded surface code does not satisfy homogeneous topological order \cite{arxiv:2009.13551}.' cousins: