for all `s1`, `s2`, `s3` in `S`:
(i) `s1*s2` etc are also in `S`
(ii) `(s1*s2)*s3` = `s1*(s2*s3)`
(iii) `z*s1` = `s1` = `s1*z`
for all `s1`, `s2`, `s3` in `S`:
(i) `s1*s2` etc are also in `S`
(ii) `(s1*s2)*s3` = `s1*(s2*s3)`
(iii) `z*s1` = `s1` = `s1*z`