generators.ET0LTreeGrammar:
  (
    { X1, pentagram, torso, rhomb, pentagon1, pentagon2, pentagon3 },
    { subst:2, invert:1, X1:0, pentagram:0, torso:0, rhomb:0, pentagon1:0,
      pentagon2:0, pentagon3:0, refine-pentagram:11, refine-torso:7,
      refine-rhomb:3, refine-pentagon1:6, refine-pentagon2:7,
      refine-pentagon3:8 },
    {
      {
        X1 -> invert[X1],
        pentagram -> refine-pentagram[pentagram, pentagon3, pentagon3, pentagon3, pentagon3, pentagon3, torso, torso, torso, torso, torso],
        torso -> refine-torso[pentagram, pentagon3, pentagon3, pentagon3, torso, torso, torso],
        rhomb -> refine-rhomb[pentagon3, pentagram, torso],
        pentagon1 -> refine-pentagon1[pentagon1,pentagon2,pentagon2,pentagon2,pentagon2,pentagon2],
        pentagon2 -> refine-pentagon2[pentagon1,pentagon2,pentagon2,pentagon3,pentagon3,pentagon2,rhomb],
        pentagon3 -> refine-pentagon3[pentagon1,pentagon2,pentagon3,pentagon3,pentagon3,pentagon3,rhomb,rhomb]
      }
    },
    subst[X1,pentagram]
  )
