{
  "ring": {
    "R": "Z_3[eta]/(eta^2 - 3 eta) \u2245 Z_3 \u00d7_{F_3} Z_3",
    "normalization": "S = Z_3 \u00d7 Z_3",
    "branch_modules": {
      "B0": "R/(eta) \u2245 Z_3 with eta = 0",
      "B3": "R/(eta-3) \u2245 Z_3 with eta = 3"
    },
    "node_module": "R"
  },
  "classification": {
    "scope": "all finitely generated torsion-free R-modules",
    "normal_form": "Every M is isomorphic to B0^u \u2295 R^c \u2295 B3^v for unique u,c,v >= 0.",
    "indecomposables": [
      "B0",
      "R",
      "B3"
    ]
  },
  "gluing_space_model": {
    "setup": [
      "If M has branch ranks (a,b), then after scaling 3(Z_3^a \u2295 Z_3^b) \u2286 M \u2286 Z_3^a \u2295 Z_3^b.",
      "Set W = M / 3(Z_3^a \u2295 Z_3^b) \u2282 F_3^a \u2295 F_3^b."
    ],
    "decomposition": [
      "K0 = W \u2229 (F_3^a \u2295 0)",
      "K3 = W \u2229 (0 \u2295 F_3^b)",
      "W \u2245 K0 \u2295 \u0394^c \u2295 K3",
      "where \u0394 = {(x,x)} is the diagonal line."
    ]
  },
  "rank2_verification": {
    "ambient": "F_3 \u2295 F_3",
    "subspace_orbits_under_units": [
      {
        "orbit": "0",
        "representatives": [
          "0"
        ],
        "module_type": "B0 \u2295 B3"
      },
      {
        "orbit": "left axis",
        "representatives": [
          "<(1,0)>"
        ],
        "module_type": "B0 \u2295 B3"
      },
      {
        "orbit": "right axis",
        "representatives": [
          "<(0,1)>"
        ],
        "module_type": "B0 \u2295 B3"
      },
      {
        "orbit": "diagonal",
        "representatives": [
          "<(1,1)>",
          "<(1,-1)>"
        ],
        "module_type": "R"
      },
      {
        "orbit": "full plane",
        "representatives": [
          "F_3^2"
        ],
        "module_type": "B0 \u2295 B3"
      }
    ],
    "conclusion": "The only indecomposable torsion-free Z_3-rank-2 module is R."
  }
}