Rem_17: Circuit Implementation Fault Tolerance #
Statement #
The circuit implementation introduced in Rem_6 leads to a different but closely related fault-tolerant implementation where the vertex qubits are decoupled and can be discarded during the code deformation.
Potential issue: This alternative implementation can lead to a reduction in the code distance by a constant multiple factor.
Solution: The distance reduction can be avoided by adding an extra dummy vertex to divide each edge into a pair of edges. Specifically, for each edge e = {u, v} in G:
- Add a dummy vertex w
- Replace edge e with two edges {u, w} and {w, v}
This modification preserves the fault-distance at the cost of doubling the number of edge qubits.
Main Definitions #
SubdividedVertex: Vertex type of subdivided graph (original + one dummy per edge)subdivisionAdj: Adjacency in the subdivided graphsubdivideGraph: The subdivided graph construction
Main Results #
no_original_original_adj: In the subdivided graph, no original vertices are adjacent (vertex qubits are decoupled)no_dummy_dummy_adj: In the subdivided graph, no dummy vertices are adjacentsubdivided_is_bipartite: The subdivided graph is bipartitesubdivision_two_edges_per_original: Each original edge yields exactly 2 edgesnum_dummy_eq_edges: Number of dummy vertices = number of original edgessubdivided_vertex_count: |V'| = |V| + |E|
Edge Subdivision Construction #
For each edge e = {u, v} in G, add a dummy vertex w and replace e with {u, w} and {w, v}. The vertex type of the subdivided graph consists of original vertices plus one dummy per edge.
The vertex type of a subdivided graph: original vertices plus one dummy vertex per edge.
Uses Sum for clean disjointness.
Equations
- QEC1.SubdividedVertex' V E = (V ⊕ E)
Instances For
The adjacency relation for the subdivided graph.
- inl(u) ~ inr(e) iff u is an endpoint of e
- No inl-inl or inr-inr adjacencies
Equations
- QEC1.subdivisionAdj' G (Sum.inl v₁) (Sum.inr e) = (e ∈ G.edgeFinset ∧ v₁ ∈ e.toFinset)
- QEC1.subdivisionAdj' G (Sum.inr e) (Sum.inl v₁) = (e ∈ G.edgeFinset ∧ v₁ ∈ e.toFinset)
- QEC1.subdivisionAdj' G x y = False
Instances For
The subdivided graph as a SimpleGraph.
Equations
- QEC1.subdivideGraph' G = { Adj := QEC1.subdivisionAdj' G, symm := ⋯, loopless := ⋯ }
Instances For
Vertex Decoupling: No Original-Original Adjacency #
The key structural property: in the subdivided graph, no two original vertices are directly adjacent. This is precisely what allows vertex qubits to be decoupled and discarded during code deformation.
In the subdivided graph, original vertices are never adjacent to each other. This formalizes that vertex qubits are decoupled after subdivision.
In the subdivided graph, dummy vertices are never adjacent to each other.
The subdivided graph is bipartite: every edge connects an original to a dummy vertex.
Each Original Edge Yields Two Edges in the Subdivided Graph #
For each edge e = {u, v} in G, the subdivided graph has exactly two edges: {inl(u), inr(e)} and {inl(v), inr(e)}.
For each original edge e = s(u, v), the subdivided graph has the two adjacencies
inl(u) inr(e) and inl(v) inr(e).
The dummy vertex for edge s(u,v) is adjacent to both endpoints in the subdivided graph.
The only adjacencies of a dummy vertex inr(e) are to the endpoints of e.
Dummy Vertex and Edge Counts #
The subdivision adds exactly one dummy vertex per original edge, and creates exactly two new edges per original edge.
The set of original vertices in the subdivided graph.
Equations
Instances For
The set of dummy vertices in the subdivided graph (one per edge).
Equations
Instances For
The number of dummy vertices equals the number of original edges (one per edge).
Original vertices and dummy vertices are disjoint.
Total vertex count of subdivided graph: |V'| = |V| + |E_G|.
Edge Count Doubling #
The subdivided graph has exactly 2 * |E_G| edges. Each original edge e = {u,v} is replaced by exactly two edges {inl(u), inr(e)} and {inl(v), inr(e)}.
For each original edge, the two subdivided vertices inl(u) and inl(v) are distinct.
In the subdivided graph, every path between two original vertices must pass through a dummy vertex. This ensures vertex qubits are decoupled.
Summary #
The circuit implementation from Rem_6 yields an alternative fault-tolerant implementation
where vertex qubits are decoupled (no_original_original_adj'). The potential distance
reduction is avoided by subdividing every edge: for each edge e = {u,v}, add a dummy
vertex w (represented as Sum.inr e) and replace e with {u,w},{w,v}. This is formalized
by subdivideGraph'.
Key properties:
- Vertex decoupling:
no_original_original_adj' - Bipartiteness:
subdivided_is_bipartite' - Each edge yields two:
subdivision_two_edges_per_original' - Dummy count = edge count:
num_dummy_eq_edges' - Total edges double:
edge_qubits_double' - Total vertices:
subdivided_vertex_count'