abstract sig City {roads: set City}
    one sig A,B,C,D,E,F,G,H,I,J
      extends City {}
    fact fixed {
      let onedirection =
        A->D + D->I + A->B + B->C + A->C +
        B->E + C->D + C->E + E->F + E->G +
        D->H + D->F + F->G + F->H + H->I +
        G->J + H->J + I->J |
      roads = onedirection + ~onedirection
    }
    run {} for 10 City