reserve r,s,t,x9,y9,z9,p,q for Element of RAT+;
reserve x,y,z for Element of REAL+;

theorem Th6:
  x + (y + z) = (x + y) + z
proof
  per cases;
  suppose
A1: x = {};
    hence x + (y + z) = y + z by Def8
      .= (x + y) + z by A1,Def8;
  end;
  suppose
A2: y = {};
    hence x + (y + z) = x + z by Def8
      .= (x + y) + z by A2,Def8;
  end;
  suppose
A3: z = {};
    hence x + (y + z) = x + y by Def8
      .= (x + y) + z by A3,Def8;
  end;
  suppose that
A4: x <> {} and
A5: y <> {} and
A6: z <> {};
A7: now
      assume GLUED(DEDEKIND_CUT y + DEDEKIND_CUT z) = {};
      then DEDEKIND_CUT y + DEDEKIND_CUT z = {} by Lm11;
      then DEDEKIND_CUT y = {} or DEDEKIND_CUT z = {} by Lm27;
      hence contradiction by A5,A6,Lm10;
    end;
A8: now
      assume GLUED(DEDEKIND_CUT x + DEDEKIND_CUT y) = {};
      then DEDEKIND_CUT x + DEDEKIND_CUT y = {} by Lm11;
      then DEDEKIND_CUT x = {} or DEDEKIND_CUT y = {} by Lm27;
      hence contradiction by A4,A5,Lm10;
    end;
    thus x + (y + z) = x + GLUED(DEDEKIND_CUT y + DEDEKIND_CUT z) by A5,A6,Def8
      .= GLUED(DEDEKIND_CUT x + DEDEKIND_CUT GLUED(DEDEKIND_CUT y +
    DEDEKIND_CUT z)) by A4,A7,Def8
      .= GLUED(DEDEKIND_CUT x + (DEDEKIND_CUT y + DEDEKIND_CUT z)) by Lm12
      .= GLUED((DEDEKIND_CUT x + DEDEKIND_CUT y) + DEDEKIND_CUT z) by Lm26
      .= GLUED(DEDEKIND_CUT GLUED(DEDEKIND_CUT x + DEDEKIND_CUT y) +
    DEDEKIND_CUT z) by Lm12
      .= GLUED(DEDEKIND_CUT x + DEDEKIND_CUT y) + z by A6,A8,Def8
      .= (x + y) + z by A4,A5,Def8;
  end;
end;
