{
  "schema_version": "ocme-reviewed-question-reader-v1",
  "question_id": "q-20261014-advance-20261105-r04-eulerian-trail-0042",
  "pilot_number": "R0036-18917",
  "number": 18917,
  "family_id": "qf-mod36-euler-odd-degree-classification",
  "title": {
    "zh-Hant": "第 18917 題：Euler trail與circuit",
    "en": "Question 18917: Degree Parity Needs Connected Nonisolated Support"
  },
  "original_question": {
    "schema_version": "ocme-question-v0.1",
    "id": "q-20261014-advance-20261105-r04-eulerian-trail-0042",
    "batch_id": "batch-20261014-advance-20261105-r04-eulerian-trail-foundations",
    "language": "zh-Hant",
    "source_mko_ids": [
      "mko-eulerian-trail"
    ],
    "title_zh": "Euler trail與circuit",
    "stem_zh": "完整有限簡單無向圖、edge support與明示walk。操作=euler-odd-degree-classification；資料={\"n\":18,\"edges\":[[0,1],[1,2],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,10],[10,11],[11,12],[12,13],[13,14],[14,15],[15,16],[16,17]]}。請依 exact_ordered_tuple_declared_by_interface 欄序回答。",
    "answer": {
      "kind": "expression",
      "value": "([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1], [0, 17], 是, open_euler_trail, zero_or_two_odd_vertices_on_connected_edge_support)",
      "explanation_zh": "Wave5第五層核對=([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1], [0, 17], 是, open_euler_trail, zero_or_two_odd_vertices_on_connected_edge_support)；依完整明示資料獨立重算；trail可重複頂點但不可重複邊；0或2個奇度判準還要求非孤立頂點同一分量；孤立點不破壞非零邊support；零邊非空圖採length-zero circuit且不推Hamilton性質。"
    },
    "difficulty": {
      "band": "undergraduate_core",
      "level": 2,
      "skills": [
        "Euler trail與circuit"
      ]
    },
    "variant": {
      "family_id": "qf-mod36-euler-odd-degree-classification",
      "seed": 202611054042,
      "parameters": {
        "n": 18,
        "edges": [
          [
            0,
            1
          ],
          [
            1,
            2
          ],
          [
            2,
            3
          ],
          [
            3,
            4
          ],
          [
            4,
            5
          ],
          [
            5,
            6
          ],
          [
            6,
            7
          ],
          [
            7,
            8
          ],
          [
            8,
            9
          ],
          [
            9,
            10
          ],
          [
            10,
            11
          ],
          [
            11,
            12
          ],
          [
            12,
            13
          ],
          [
            13,
            14
          ],
          [
            14,
            15
          ],
          [
            15,
            16
          ],
          [
            16,
            17
          ]
        ],
        "domain": "Complete_finite_simple_undirected_graph",
        "operation": "euler-odd-degree-classification",
        "semantic_template": "qf-mod36-euler-odd-degree-classification/{\"edges\":[[0,1],[1,2],[10,11],[11,12],[12,13],[13,14],[14,15],[15,16],[16,17],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,10]],\"n\":18}"
      }
    },
    "verification": {
      "status": "candidate",
      "checks": [
        "producer_exact_finite_or_symbolic_model",
        "producer_source_snapshot_check",
        "producer_substantive_template_deduplication",
        "producer_json_schema"
      ],
      "warning_zh": "候選須主端重算；不構成人工審定、有限取樣全稱證明、V與dual典範識別、Hamilton結論、一般continuous-bijection捷徑、統計性質、strong law、CLT、Lean或Evidence。"
    },
    "provenance": {
      "generator_role": "question_producer",
      "generator_model": "model_unknown",
      "generated_at": "2026-10-14",
      "contract_version": "ocme-question-factory-v0.1"
    }
  },
  "original_english_edition": {
    "schema_version": "ocme-question-localization-v0.1",
    "question_id": "q-20261014-advance-20261105-r04-eulerian-trail-0042",
    "batch_id": "batch-20261014-advance-20261105-r04-eulerian-trail-foundations",
    "locale": "en",
    "translation_state": "ai_candidate",
    "source": {
      "question_sha256": "85186f736926df6bb4fdfe73d47e590b25a69c0750dfe1b6a4e63fbd6b1b0345",
      "family_id": "qf-mod36-euler-odd-degree-classification",
      "seed": 202611054042,
      "semantic_template": "qf-mod36-euler-odd-degree-classification/{\"edges\":[[0,1],[1,2],[10,11],[11,12],[12,13],[13,14],[14,15],[15,16],[16,17],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,10]],\"n\":18}"
    },
    "fields": {
      "title": "Degree Parity Needs Connected Nonisolated Support",
      "stem": "Use the complete finite simple undirected graph on Fin(18)={0,…,17}, with canonical sorted edges=[[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9], [9, 10], [10, 11], [11, 12], [12, 13], [13, 14], [14, 15], [15, 16], [16, 17]] and zero-based edge indices in that order. The edge support contains exactly the nonisolated vertices. A trail may revisit vertices but may not repeat an edge; an Euler trail uses every edge once. Isolated vertices do not invalidate connected edge support, and no Hamiltonian conclusion follows. Give (degrees, odd_vertices, edge_support_connected, euler_type, criterion).",
      "answer": {
        "kind": "expression",
        "value": "([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1], [0, 17], Yes, open_euler_trail, zero_or_two_odd_vertices_on_connected_edge_support)",
        "explanation": "For a nonzero-edge graph, compute every degree, all odd vertices and edge-support connectivity. Connected support with zero odd vertices gives a circuit, with two gives an open Euler trail; otherwise none. Parity alone does not connect separated edge components. The exact result, retaining the requested order, is ([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1], [0, 17], Yes, open_euler_trail, zero_or_two_odd_vertices_on_connected_edge_support)."
      },
      "skills": [
        "Degree Parity Needs Connected Nonisolated Support"
      ],
      "verification_warning": "This is a candidate exercise. Mechanical recomputation checks only the stated conditions and this instance; it is neither a formal proof nor human review."
    }
  },
  "givens": [
    {
      "id": "G001",
      "text": {
        "zh-Hant": "完整有限簡單無向圖、edge support與明示walk。操作=euler-odd-degree-classification；資料={\"n\":18,\"edges\":[[0,1],[1,2],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,10],[10,11],[11,12],[12,13],[13,14],[14,15],[15,16],[16,17]]}。請依 exact_ordered_tuple_declared_by_interface 欄序回答。",
        "en": "Use the complete finite simple undirected graph on Fin(18)={0,…,17}, with canonical sorted edges=[[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9], [9, 10], [10, 11], [11, 12], [12, 13], [13, 14], [14, 15], [15, 16], [16, 17]] and zero-based edge indices in that order. The edge support contains exactly the nonisolated vertices. A trail may revisit vertices but may not repeat an edge; an Euler trail uses every edge once. Isolated vertices do not invalidate connected edge support, and no Hamiltonian conclusion follows. Give (degrees, odd_vertices, edge_support_connected, euler_type, criterion)."
      }
    }
  ],
  "steps": [
    {
      "id": "S001",
      "uses": [
        "G001"
      ],
      "before": "source operation=euler-odd-degree-classification;original snapshot and mathematics retained",
      "after": "explicit ordered source output fields=[degrees, odd_vertices, edge_support_connected, euler_type, criterion]",
      "relation": "implies",
      "rule_id": "source_ordered_interface_explicit_without_javascript",
      "conditions": [],
      "explanation": {
        "zh-Hant": "原題歷史介面標記仍在快照；這裡直接給原始欄位順序，主文不需JavaScript或外部表。描述欄位不自動證成任何數學聲稱。",
        "en": "Keep the historical interface marker in the original snapshot while listing the original ordered fields here.No JavaScript or external table is needed for the main text,and field labels are not mathematical evidence."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S002",
      "uses": [
        "G001",
        "S001"
      ],
      "before": "complete ORIGINAL carrier Fin(18);canonical ORIGINAL simple undirected edges=[[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9], [9, 10], [10, 11], [11, 12], [12, 13], [13, 14], [14, 15], [15, 16], [16, 17]]",
      "after": "edge indices are EXACT original list positions0..16;retain ALL vertices;no12-vertex or10-edge bound",
      "relation": "implies",
      "rule_id": "euler_original_simple_graph_indices_full_carrier",
      "conditions": [],
      "explanation": {
        "zh-Hant": "逐原邊位置固定索引，不用頂點對的字串排序代替來源數字順序。此題族允許到60頂點，不沿用前題族上界；零邊圖僅在允許的操作出現。",
        "en": "Keep edge indices at their original numeric positions,not string-sorted vertex pairs.This family permits up to60 vertices rather than importing earlier bounds;empty-edge graphs appear only where the operation allows them."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S003",
      "uses": [
        "G001",
        "S002"
      ],
      "before": "Euler vertex0 exact incident edge count := sum(1)",
      "after": "Euler vertex0 exact incident edge count = 1",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex0 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex0 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1"
        ],
        "output": "1",
        "label": "Euler vertex0 exact incident edge count"
      }
    },
    {
      "id": "S004",
      "uses": [
        "G001",
        "S003"
      ],
      "before": "original vertex=0;ALL original incident edge indices=[0]",
      "after": "degree=1;nonisolated=是;odd=是",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S005",
      "uses": [
        "G001",
        "S004"
      ],
      "before": "Euler vertex1 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex1 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex1 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex1 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex1 exact incident edge count"
      }
    },
    {
      "id": "S006",
      "uses": [
        "G001",
        "S005"
      ],
      "before": "original vertex=1;ALL original incident edge indices=[0, 1]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S007",
      "uses": [
        "G001",
        "S006"
      ],
      "before": "Euler vertex2 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex2 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex2 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex2 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex2 exact incident edge count"
      }
    },
    {
      "id": "S008",
      "uses": [
        "G001",
        "S007"
      ],
      "before": "original vertex=2;ALL original incident edge indices=[1, 2]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S009",
      "uses": [
        "G001",
        "S008"
      ],
      "before": "Euler vertex3 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex3 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex3 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex3 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex3 exact incident edge count"
      }
    },
    {
      "id": "S010",
      "uses": [
        "G001",
        "S009"
      ],
      "before": "original vertex=3;ALL original incident edge indices=[2, 3]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S011",
      "uses": [
        "G001",
        "S010"
      ],
      "before": "Euler vertex4 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex4 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex4 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex4 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex4 exact incident edge count"
      }
    },
    {
      "id": "S012",
      "uses": [
        "G001",
        "S011"
      ],
      "before": "original vertex=4;ALL original incident edge indices=[3, 4]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S013",
      "uses": [
        "G001",
        "S012"
      ],
      "before": "Euler vertex5 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex5 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex5 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex5 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex5 exact incident edge count"
      }
    },
    {
      "id": "S014",
      "uses": [
        "G001",
        "S013"
      ],
      "before": "original vertex=5;ALL original incident edge indices=[4, 5]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S015",
      "uses": [
        "G001",
        "S014"
      ],
      "before": "Euler vertex6 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex6 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex6 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex6 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex6 exact incident edge count"
      }
    },
    {
      "id": "S016",
      "uses": [
        "G001",
        "S015"
      ],
      "before": "original vertex=6;ALL original incident edge indices=[5, 6]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S017",
      "uses": [
        "G001",
        "S016"
      ],
      "before": "Euler vertex7 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex7 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex7 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex7 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex7 exact incident edge count"
      }
    },
    {
      "id": "S018",
      "uses": [
        "G001",
        "S017"
      ],
      "before": "original vertex=7;ALL original incident edge indices=[6, 7]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S019",
      "uses": [
        "G001",
        "S018"
      ],
      "before": "Euler vertex8 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex8 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex8 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex8 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex8 exact incident edge count"
      }
    },
    {
      "id": "S020",
      "uses": [
        "G001",
        "S019"
      ],
      "before": "original vertex=8;ALL original incident edge indices=[7, 8]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S021",
      "uses": [
        "G001",
        "S020"
      ],
      "before": "Euler vertex9 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex9 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex9 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex9 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex9 exact incident edge count"
      }
    },
    {
      "id": "S022",
      "uses": [
        "G001",
        "S021"
      ],
      "before": "original vertex=9;ALL original incident edge indices=[8, 9]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S023",
      "uses": [
        "G001",
        "S022"
      ],
      "before": "Euler vertex10 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex10 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex10 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex10 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex10 exact incident edge count"
      }
    },
    {
      "id": "S024",
      "uses": [
        "G001",
        "S023"
      ],
      "before": "original vertex=10;ALL original incident edge indices=[9, 10]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S025",
      "uses": [
        "G001",
        "S024"
      ],
      "before": "Euler vertex11 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex11 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex11 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex11 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex11 exact incident edge count"
      }
    },
    {
      "id": "S026",
      "uses": [
        "G001",
        "S025"
      ],
      "before": "original vertex=11;ALL original incident edge indices=[10, 11]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S027",
      "uses": [
        "G001",
        "S026"
      ],
      "before": "Euler vertex12 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex12 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex12 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex12 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex12 exact incident edge count"
      }
    },
    {
      "id": "S028",
      "uses": [
        "G001",
        "S027"
      ],
      "before": "original vertex=12;ALL original incident edge indices=[11, 12]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S029",
      "uses": [
        "G001",
        "S028"
      ],
      "before": "Euler vertex13 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex13 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex13 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex13 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex13 exact incident edge count"
      }
    },
    {
      "id": "S030",
      "uses": [
        "G001",
        "S029"
      ],
      "before": "original vertex=13;ALL original incident edge indices=[12, 13]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S031",
      "uses": [
        "G001",
        "S030"
      ],
      "before": "Euler vertex14 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex14 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex14 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex14 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex14 exact incident edge count"
      }
    },
    {
      "id": "S032",
      "uses": [
        "G001",
        "S031"
      ],
      "before": "original vertex=14;ALL original incident edge indices=[13, 14]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S033",
      "uses": [
        "G001",
        "S032"
      ],
      "before": "Euler vertex15 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex15 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex15 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex15 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex15 exact incident edge count"
      }
    },
    {
      "id": "S034",
      "uses": [
        "G001",
        "S033"
      ],
      "before": "original vertex=15;ALL original incident edge indices=[14, 15]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S035",
      "uses": [
        "G001",
        "S034"
      ],
      "before": "Euler vertex16 exact incident edge count := sum(1, 1)",
      "after": "Euler vertex16 exact incident edge count = 2",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex16 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex16 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1",
          "1"
        ],
        "output": "2",
        "label": "Euler vertex16 exact incident edge count"
      }
    },
    {
      "id": "S036",
      "uses": [
        "G001",
        "S035"
      ],
      "before": "original vertex=16;ALL original incident edge indices=[15, 16]",
      "after": "degree=2;nonisolated=是;odd=否",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S037",
      "uses": [
        "G001",
        "S036"
      ],
      "before": "Euler vertex17 exact incident edge count := sum(1)",
      "after": "Euler vertex17 exact incident edge count = 1",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原資料角色及前面已核中間量精確代值，保留索引、正負號與所在空間。",
        "en": "Substitute original data and established intermediates exactly,retaining indices,signs and the relevant space."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 Euler vertex17 exact incident edge count，不以小數近似替代。",
          "en": "Recompute Euler vertex17 exact incident edge count with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sum",
        "inputs": [
          "1"
        ],
        "output": "1",
        "label": "Euler vertex17 exact incident edge count"
      }
    },
    {
      "id": "S038",
      "uses": [
        "G001",
        "S037"
      ],
      "before": "original vertex=17;ALL original incident edge indices=[16]",
      "after": "degree=1;nonisolated=是;odd=是",
      "relation": "implies",
      "rule_id": "euler_degree_actual_incidence_not_label_or_support_size",
      "conditions": [],
      "explanation": {
        "zh-Hant": "只對原完整邊表計此頂點的incident邊，度數0的頂點仍留在全carrier；不是拿頂點標籤或support大小當degree。",
        "en": "Count this vertex's incident edges in the complete original list.Retain degree0 vertices in the full carrier;neither vertex labels nor support size are degrees."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S039",
      "uses": [
        "G001",
        "S038"
      ],
      "before": "nonisolated edge support:original edge index=0;edge=[0, 1];from=0;new vertex=1",
      "after": "original-edge path from0=[0, 1];reached=[0, 1]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S040",
      "uses": [
        "G001",
        "S039"
      ],
      "before": "nonisolated edge support:original edge index=1;edge=[1, 2];from=1;new vertex=2",
      "after": "original-edge path from0=[0, 1, 2];reached=[0, 1, 2]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S041",
      "uses": [
        "G001",
        "S040"
      ],
      "before": "nonisolated edge support:original edge index=2;edge=[2, 3];from=2;new vertex=3",
      "after": "original-edge path from0=[0, 1, 2, 3];reached=[0, 1, 2, 3]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S042",
      "uses": [
        "G001",
        "S041"
      ],
      "before": "nonisolated edge support:original edge index=3;edge=[3, 4];from=3;new vertex=4",
      "after": "original-edge path from0=[0, 1, 2, 3, 4];reached=[0, 1, 2, 3, 4]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S043",
      "uses": [
        "G001",
        "S042"
      ],
      "before": "nonisolated edge support:original edge index=4;edge=[4, 5];from=4;new vertex=5",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5];reached=[0, 1, 2, 3, 4, 5]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S044",
      "uses": [
        "G001",
        "S043"
      ],
      "before": "nonisolated edge support:original edge index=5;edge=[5, 6];from=5;new vertex=6",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6];reached=[0, 1, 2, 3, 4, 5, 6]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S045",
      "uses": [
        "G001",
        "S044"
      ],
      "before": "nonisolated edge support:original edge index=6;edge=[6, 7];from=6;new vertex=7",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7];reached=[0, 1, 2, 3, 4, 5, 6, 7]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S046",
      "uses": [
        "G001",
        "S045"
      ],
      "before": "nonisolated edge support:original edge index=7;edge=[7, 8];from=7;new vertex=8",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S047",
      "uses": [
        "G001",
        "S046"
      ],
      "before": "nonisolated edge support:original edge index=8;edge=[8, 9];from=8;new vertex=9",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S048",
      "uses": [
        "G001",
        "S047"
      ],
      "before": "nonisolated edge support:original edge index=9;edge=[9, 10];from=9;new vertex=10",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S049",
      "uses": [
        "G001",
        "S048"
      ],
      "before": "nonisolated edge support:original edge index=10;edge=[10, 11];from=10;new vertex=11",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S050",
      "uses": [
        "G001",
        "S049"
      ],
      "before": "nonisolated edge support:original edge index=11;edge=[11, 12];from=11;new vertex=12",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S051",
      "uses": [
        "G001",
        "S050"
      ],
      "before": "nonisolated edge support:original edge index=12;edge=[12, 13];from=12;new vertex=13",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S052",
      "uses": [
        "G001",
        "S051"
      ],
      "before": "nonisolated edge support:original edge index=13;edge=[13, 14];from=13;new vertex=14",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S053",
      "uses": [
        "G001",
        "S052"
      ],
      "before": "nonisolated edge support:original edge index=14;edge=[14, 15];from=14;new vertex=15",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S054",
      "uses": [
        "G001",
        "S053"
      ],
      "before": "nonisolated edge support:original edge index=15;edge=[15, 16];from=15;new vertex=16",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S055",
      "uses": [
        "G001",
        "S054"
      ],
      "before": "nonisolated edge support:original edge index=16;edge=[16, 17];from=16;new vertex=17",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S056",
      "uses": [
        "G001",
        "S055"
      ],
      "before": "nonisolated edge support:complete permitted carrier=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];unreached=[];ALL original edges=[[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9], [9, 10], [10, 11], [11, 12], [12, 13], [13, 14], [14, 15], [15, 16], [16, 17]]",
      "after": "no edge in carrier crosses reached/unreached cut;connected=是",
      "relation": "implies",
      "rule_id": "euler_complete_reachability_closed_cut_not_isolate_deletion",
      "conditions": [],
      "explanation": {
        "zh-Hant": "BFS耗盡給沒有跨cut的邊：有未達點便無起點到它的路徑，全部達到則路徑見證覆蓋。support與全carrier各自核對，不能為了全圖connected偷刪孤立點。",
        "en": "Exhausting BFS proves no edge crosses the cut,so an unreached vertex has no path from the start;otherwise path witnesses cover the carrier.Audit support and full carrier separately without silently deleting isolates to claim whole-graph connectivity."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S057",
      "uses": [
        "G001",
        "S056"
      ],
      "before": "whole original carrier:original edge index=0;edge=[0, 1];from=0;new vertex=1",
      "after": "original-edge path from0=[0, 1];reached=[0, 1]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S058",
      "uses": [
        "G001",
        "S057"
      ],
      "before": "whole original carrier:original edge index=1;edge=[1, 2];from=1;new vertex=2",
      "after": "original-edge path from0=[0, 1, 2];reached=[0, 1, 2]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S059",
      "uses": [
        "G001",
        "S058"
      ],
      "before": "whole original carrier:original edge index=2;edge=[2, 3];from=2;new vertex=3",
      "after": "original-edge path from0=[0, 1, 2, 3];reached=[0, 1, 2, 3]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S060",
      "uses": [
        "G001",
        "S059"
      ],
      "before": "whole original carrier:original edge index=3;edge=[3, 4];from=3;new vertex=4",
      "after": "original-edge path from0=[0, 1, 2, 3, 4];reached=[0, 1, 2, 3, 4]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S061",
      "uses": [
        "G001",
        "S060"
      ],
      "before": "whole original carrier:original edge index=4;edge=[4, 5];from=4;new vertex=5",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5];reached=[0, 1, 2, 3, 4, 5]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S062",
      "uses": [
        "G001",
        "S061"
      ],
      "before": "whole original carrier:original edge index=5;edge=[5, 6];from=5;new vertex=6",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6];reached=[0, 1, 2, 3, 4, 5, 6]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S063",
      "uses": [
        "G001",
        "S062"
      ],
      "before": "whole original carrier:original edge index=6;edge=[6, 7];from=6;new vertex=7",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7];reached=[0, 1, 2, 3, 4, 5, 6, 7]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S064",
      "uses": [
        "G001",
        "S063"
      ],
      "before": "whole original carrier:original edge index=7;edge=[7, 8];from=7;new vertex=8",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S065",
      "uses": [
        "G001",
        "S064"
      ],
      "before": "whole original carrier:original edge index=8;edge=[8, 9];from=8;new vertex=9",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S066",
      "uses": [
        "G001",
        "S065"
      ],
      "before": "whole original carrier:original edge index=9;edge=[9, 10];from=9;new vertex=10",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S067",
      "uses": [
        "G001",
        "S066"
      ],
      "before": "whole original carrier:original edge index=10;edge=[10, 11];from=10;new vertex=11",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S068",
      "uses": [
        "G001",
        "S067"
      ],
      "before": "whole original carrier:original edge index=11;edge=[11, 12];from=11;new vertex=12",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S069",
      "uses": [
        "G001",
        "S068"
      ],
      "before": "whole original carrier:original edge index=12;edge=[12, 13];from=12;new vertex=13",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S070",
      "uses": [
        "G001",
        "S069"
      ],
      "before": "whole original carrier:original edge index=13;edge=[13, 14];from=13;new vertex=14",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S071",
      "uses": [
        "G001",
        "S070"
      ],
      "before": "whole original carrier:original edge index=14;edge=[14, 15];from=14;new vertex=15",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S072",
      "uses": [
        "G001",
        "S071"
      ],
      "before": "whole original carrier:original edge index=15;edge=[15, 16];from=15;new vertex=16",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S073",
      "uses": [
        "G001",
        "S072"
      ],
      "before": "whole original carrier:original edge index=16;edge=[16, 17];from=16;new vertex=17",
      "after": "original-edge path from0=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]",
      "relation": "implies",
      "rule_id": "euler_connectivity_actual_path_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個新達頂點均列真邊路徑；support起點取其第一個實際頂點，不假定一定有邊接頂點0。",
        "en": "Give an actual-edge path for every discovered vertex.Start at the first actual support vertex rather than assuming vertex0 has an edge."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S074",
      "uses": [
        "G001",
        "S073"
      ],
      "before": "whole original carrier:complete permitted carrier=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];reached=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];unreached=[];ALL original edges=[[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9], [9, 10], [10, 11], [11, 12], [12, 13], [13, 14], [14, 15], [15, 16], [16, 17]]",
      "after": "no edge in carrier crosses reached/unreached cut;connected=是",
      "relation": "implies",
      "rule_id": "euler_complete_reachability_closed_cut_not_isolate_deletion",
      "conditions": [],
      "explanation": {
        "zh-Hant": "BFS耗盡給沒有跨cut的邊：有未達點便無起點到它的路徑，全部達到則路徑見證覆蓋。support與全carrier各自核對，不能為了全圖connected偷刪孤立點。",
        "en": "Exhausting BFS proves no edge crosses the cut,so an unreached vertex has no path from the start;otherwise path witnesses cover the carrier.Audit support and full carrier separately without silently deleting isolates to claim whole-graph connectivity."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S075",
      "uses": [
        "G001",
        "S074"
      ],
      "before": "complete degree list=[1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1];ALL odd vertices=[0, 17];actual nonisolated support=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];support connected=是;whole graph connected=是",
      "after": "ANY full-edge trail joins all nonisolated vertices in one support component;each internal visit pairs incident edges,leaving only0 or2 odd endpoints",
      "relation": "implies",
      "rule_id": "euler_necessary_connected_support_and_degree_parity",
      "conditions": [],
      "explanation": {
        "zh-Hant": "若有全邊trail，每條有邊的頂點都在此walk串成的一個分量。每個內部進出配成兩條incident邊，只有不同端點可能各餘一條，故奇點只可0或2。這是必要性全稱理由，不從一次walk測試猜。孤立點不在edge support。",
        "en": "Any all-edge trail puts every nonisolated vertex into its single walk component.Each internal entry/exit pairs incident edges;only distinct endpoints can leave one unmatched incidence,so there are0 or2 odd vertices.This is the universal necessity argument,not a guess from one tested walk.Isolates are outside edge support."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S076",
      "uses": [
        "G001",
        "S075"
      ],
      "before": "Hierholzer stack top=0;first unused incident ORIGINAL edge index=0;edge=[0, 1]",
      "after": "mark edge used ONCE;push vertex=1;current stack=[0, 1];used edge set=[0]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S077",
      "uses": [
        "G001",
        "S076"
      ],
      "before": "Hierholzer stack top=1;first unused incident ORIGINAL edge index=1;edge=[1, 2]",
      "after": "mark edge used ONCE;push vertex=2;current stack=[0, 1, 2];used edge set=[0, 1]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S078",
      "uses": [
        "G001",
        "S077"
      ],
      "before": "Hierholzer stack top=2;first unused incident ORIGINAL edge index=2;edge=[2, 3]",
      "after": "mark edge used ONCE;push vertex=3;current stack=[0, 1, 2, 3];used edge set=[0, 1, 2]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S079",
      "uses": [
        "G001",
        "S078"
      ],
      "before": "Hierholzer stack top=3;first unused incident ORIGINAL edge index=3;edge=[3, 4]",
      "after": "mark edge used ONCE;push vertex=4;current stack=[0, 1, 2, 3, 4];used edge set=[0, 1, 2, 3]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S080",
      "uses": [
        "G001",
        "S079"
      ],
      "before": "Hierholzer stack top=4;first unused incident ORIGINAL edge index=4;edge=[4, 5]",
      "after": "mark edge used ONCE;push vertex=5;current stack=[0, 1, 2, 3, 4, 5];used edge set=[0, 1, 2, 3, 4]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S081",
      "uses": [
        "G001",
        "S080"
      ],
      "before": "Hierholzer stack top=5;first unused incident ORIGINAL edge index=5;edge=[5, 6]",
      "after": "mark edge used ONCE;push vertex=6;current stack=[0, 1, 2, 3, 4, 5, 6];used edge set=[0, 1, 2, 3, 4, 5]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S082",
      "uses": [
        "G001",
        "S081"
      ],
      "before": "Hierholzer stack top=6;first unused incident ORIGINAL edge index=6;edge=[6, 7]",
      "after": "mark edge used ONCE;push vertex=7;current stack=[0, 1, 2, 3, 4, 5, 6, 7];used edge set=[0, 1, 2, 3, 4, 5, 6]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S083",
      "uses": [
        "G001",
        "S082"
      ],
      "before": "Hierholzer stack top=7;first unused incident ORIGINAL edge index=7;edge=[7, 8]",
      "after": "mark edge used ONCE;push vertex=8;current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8];used edge set=[0, 1, 2, 3, 4, 5, 6, 7]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S084",
      "uses": [
        "G001",
        "S083"
      ],
      "before": "Hierholzer stack top=8;first unused incident ORIGINAL edge index=8;edge=[8, 9]",
      "after": "mark edge used ONCE;push vertex=9;current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9];used edge set=[0, 1, 2, 3, 4, 5, 6, 7, 8]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S085",
      "uses": [
        "G001",
        "S084"
      ],
      "before": "Hierholzer stack top=9;first unused incident ORIGINAL edge index=9;edge=[9, 10]",
      "after": "mark edge used ONCE;push vertex=10;current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];used edge set=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S086",
      "uses": [
        "G001",
        "S085"
      ],
      "before": "Hierholzer stack top=10;first unused incident ORIGINAL edge index=10;edge=[10, 11]",
      "after": "mark edge used ONCE;push vertex=11;current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];used edge set=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S087",
      "uses": [
        "G001",
        "S086"
      ],
      "before": "Hierholzer stack top=11;first unused incident ORIGINAL edge index=11;edge=[11, 12]",
      "after": "mark edge used ONCE;push vertex=12;current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];used edge set=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S088",
      "uses": [
        "G001",
        "S087"
      ],
      "before": "Hierholzer stack top=12;first unused incident ORIGINAL edge index=12;edge=[12, 13]",
      "after": "mark edge used ONCE;push vertex=13;current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];used edge set=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S089",
      "uses": [
        "G001",
        "S088"
      ],
      "before": "Hierholzer stack top=13;first unused incident ORIGINAL edge index=13;edge=[13, 14]",
      "after": "mark edge used ONCE;push vertex=14;current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];used edge set=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S090",
      "uses": [
        "G001",
        "S089"
      ],
      "before": "Hierholzer stack top=14;first unused incident ORIGINAL edge index=14;edge=[14, 15]",
      "after": "mark edge used ONCE;push vertex=15;current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];used edge set=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S091",
      "uses": [
        "G001",
        "S090"
      ],
      "before": "Hierholzer stack top=15;first unused incident ORIGINAL edge index=15;edge=[15, 16]",
      "after": "mark edge used ONCE;push vertex=16;current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];used edge set=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S092",
      "uses": [
        "G001",
        "S091"
      ],
      "before": "Hierholzer stack top=16;first unused incident ORIGINAL edge index=16;edge=[16, 17]",
      "after": "mark edge used ONCE;push vertex=17;current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];used edge set=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]",
      "relation": "implies",
      "rule_id": "euler_constructive_unused_edge_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沿當前頂點一條未用真邊延伸，每次標一次邊，所以用邊數有限增加；頂點可以重訪，邊不重用。",
        "en": "Extend along an actual unused incident edge and mark it once.The finite used-edge count increases;vertices may recur but edges do not."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S093",
      "uses": [
        "G001",
        "S092"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17];remaining stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S094",
      "uses": [
        "G001",
        "S093"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16];remaining stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S095",
      "uses": [
        "G001",
        "S094"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15];remaining stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S096",
      "uses": [
        "G001",
        "S095"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14];remaining stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S097",
      "uses": [
        "G001",
        "S096"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13];remaining stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S098",
      "uses": [
        "G001",
        "S097"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12];remaining stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S099",
      "uses": [
        "G001",
        "S098"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11];remaining stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S100",
      "uses": [
        "G001",
        "S099"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11, 10];remaining stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S101",
      "uses": [
        "G001",
        "S100"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11, 10, 9];remaining stack=[0, 1, 2, 3, 4, 5, 6, 7, 8]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S102",
      "uses": [
        "G001",
        "S101"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6, 7, 8];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11, 10, 9, 8];remaining stack=[0, 1, 2, 3, 4, 5, 6, 7]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S103",
      "uses": [
        "G001",
        "S102"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6, 7];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7];remaining stack=[0, 1, 2, 3, 4, 5, 6]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S104",
      "uses": [
        "G001",
        "S103"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5, 6];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6];remaining stack=[0, 1, 2, 3, 4, 5]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S105",
      "uses": [
        "G001",
        "S104"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4, 5];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5];remaining stack=[0, 1, 2, 3, 4]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S106",
      "uses": [
        "G001",
        "S105"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3, 4];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4];remaining stack=[0, 1, 2, 3]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S107",
      "uses": [
        "G001",
        "S106"
      ],
      "before": "Hierholzer current stack=[0, 1, 2, 3];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3];remaining stack=[0, 1, 2]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S108",
      "uses": [
        "G001",
        "S107"
      ],
      "before": "Hierholzer current stack=[0, 1, 2];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2];remaining stack=[0, 1]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S109",
      "uses": [
        "G001",
        "S108"
      ],
      "before": "Hierholzer current stack=[0, 1];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1];remaining stack=[0]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S110",
      "uses": [
        "G001",
        "S109"
      ],
      "before": "Hierholzer current stack=[0];top vertex has NO unused incident edge",
      "after": "finalize top into reverse output=[17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0];remaining stack=[]",
      "relation": "implies",
      "rule_id": "euler_constructive_backtracking_cycle_splice",
      "conditions": [],
      "explanation": {
        "zh-Hant": "沒有未用邊才回退並逆序收集頂點；這是拼接閉段的紀錄，不在耗盡頂點處強走不存在的邊。",
        "en": "Backtrack and collect vertices in reverse only when no unused incident edge remains.This records the splicing of closed segments without traversing nonexistent edges."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S111",
      "uses": [
        "G001",
        "S110"
      ],
      "before": "connected nonisolated support=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];odd vertices=[0, 17];finished reversed construction",
      "after": "ACTUAL Euler witness walk=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17];actual ORIGINAL edge order=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];every original edge once;endpoints have required parity",
      "relation": "implies",
      "rule_id": "euler_sufficiency_actual_full_edge_witness_not_parity_alone",
      "conditions": [],
      "explanation": {
        "zh-Hant": "把最終walk逐步映回原邊，核長度m+1、索引無重複且全集覆蓋，便直接證此圖存在Euler trail。0奇點時閉合，2奇點時端點是那兩點；不是只看奇數個數就宣稱存在，也不推出Hamilton性質。",
        "en": "Map every step of the final walk back to original edges and verify length m+1,unique indices and complete coverage.This directly witnesses existence in this graph.With no odd vertices it closes;with two its endpoints are precisely those vertices.Parity alone is not the existence certificate,and no Hamiltonian property follows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    }
  ],
  "math_model": {
    "result": [
      [
        1,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        2,
        1
      ],
      [
        0,
        17
      ],
      true,
      "open_euler_trail",
      "zero_or_two_odd_vertices_on_connected_edge_support"
    ]
  },
  "conclusion": {
    "canonical_value": "([1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1], [0, 17], 是, open_euler_trail, zero_or_two_odd_vertices_on_connected_edge_support)",
    "explanation": {
      "zh-Hant": "依上列完整代值及條件核對得到原題答案；原題編號、格式與狀態保持不變。",
      "en": "The full substitutions and premise checks give the original answer; source identity,format and status are unchanged."
    }
  },
  "definition_note": {
    "zh-Hant": "沿用原題明示的論域、假設與來源 MKO 定義。本題已完成第二對話數理與中英語義覆核，並由原始參數逐題獨立重算模型、答案與每個算術步驟；原題仍為 candidate。",
    "en": "Use the original question domain, assumptions and cited MKO definitions. This item has second-context mathematical and bilingual review, with the model, answer and every arithmetic step independently recomputed from the original parameters; the source question remains a candidate."
  },
  "source": {
    "input_commit": "0f7be61e2c22317a4075561dc822c87d881a50db",
    "question_binding": {
      "batch_id": "batch-20261014-advance-20261105-r04-eulerian-trail-foundations",
      "batch_path": "public/data/questions/batches/batch-20261014-advance-20261105-r04-eulerian-trail-foundations/questions.jsonl",
      "batch_sha256": "290234a8be5114292ccdef5d758669877237520e20f4d7270260f7f29b4c745d",
      "original_line": 42,
      "original_line_sha256": "0a8c8cf58be54c4912cf78dbfc280961def2dd82e1e02033530ee19e3d5a1e91",
      "question_compact_sha256": "85186f736926df6bb4fdfe73d47e590b25a69c0750dfe1b6a4e63fbd6b1b0345",
      "english_row_compact_sha256": "af23e3634af750d1cc6dbbe7f74b0f444df2cbd9baf7aa2a1a4c9ce0b9522fe1",
      "english_manifest_path": "public/data/i18n/editions/batch-20261014-advance-20261105-r04-eulerian-trail-foundations.en.json",
      "english_rows_path": "public/data/i18n/questions/batch-20261014-advance-20261105-r04-eulerian-trail-foundations.en.jsonl"
    },
    "mko_bindings": {
      "mko-eulerian-trail": {
        "sha256": "bd4c7accbd4091e00d7a37abe72e796dc663a93d6cdb230cfaa24a0ec125ad41",
        "english_sha256": "e03f13cd5f3980be232f919922b722c842b0d6d7a7dca8b3ba1e5ea56bf7f340",
        "original_path": "public/data/mko/eulerian-trail.json",
        "english_path": "public/data/i18n/editions/mko-eulerian-trail.en.json"
      }
    },
    "selected_manifest_sha256": "5233edba9654a6cffd8b6b2d83c932f82ded15f9c0b7c733bd049943e672acff",
    "selected_part_sha256": "49e5d7674cefa01298c2386543f777d2bdfc99446b4027156b80142f10031994",
    "original_candidate_sha256": "deddbe47acbcc18e2b560c0c9d3cd3340148e6d30f76ec7786dd5267d3a4f800",
    "original_candidate_line_sha256": "deddbe47acbcc18e2b560c0c9d3cd3340148e6d30f76ec7786dd5267d3a4f800"
  },
  "historical_source_state": {
    "review_state": {
      "derivation": "candidate_authored_and_locally_checked",
      "source_question_state": "candidate",
      "independent_AI_or_human_review": "NOT_PERFORMED",
      "formalization": "not_formalized",
      "Lean": "NOT_RUN"
    },
    "scope_note": {
      "zh-Hant": "來源綁定教學推導候選；精確核對不等於獨立AI／人工審查或一般形式證明。原題、答案、MKO、公式、AST與歷史不變。",
      "en": "Source-bound pedagogical derivation candidate.Exact checking is not independent AI/human review or general formal proof.Original questions,answers,MKOs,formulas,ASTs and history remain unchanged."
    },
    "label": "Frozen producer metadata; current per-question review is separate below."
  },
  "revision": {
    "id": "review-20261026-008-p37",
    "review_date": "2026-10-26",
    "owner_authorized_reader_publication": true,
    "scope": "One hundred sixty family prototypes and their mathematical/bilingual reasoning variants, stems, boundary statements and every distinct explanation shape were reviewed in a context independent of the producer; parameter substitutions, source bindings, full math models, both answer strings and every arithmetic step were independently reconstructed per question from the original parameters only, with negative controls. This grouped method does not claim a separate literal AI reading of every repeated sentence or an extra AI voter.",
    "review_receipts": {
      "semantic_review_sha256": "efee5462991619d6ed9f64f11ddb085e5614ef33f9f8fcd8cf29b9329f8fd301",
      "question_first_witness_sha256": "acf91fa1622f01d2cf04b2c513294254323665351f660f2628aaafdb869c4ff2"
    },
    "status": "second_context_reviewed",
    "mathematical_semantics": true,
    "bilingual_semantics": true,
    "steps_reviewed": 111,
    "method": "family_template_semantic_review_plus_independent_per_instance_reconstruction",
    "exact_question_first_check": {
      "model_sha256": "7985049f9392ee182284777b2b8a39bd4a287fd9684b39d9063ea29e29e8fb2d",
      "arithmetic_steps": 18
    },
    "uses_answer_as_premise": false,
    "human_review": "NOT_PERFORMED",
    "formalization": "not_formalized",
    "Lean": "NOT_RUN",
    "Canonical_truth_promotion": false,
    "authority": "Owner-authorized reviewed reader publication; original question/candidate states remain historical and unchanged."
  }
}
