Hi Matt,
I don't think it is understood that an unprefixed 'subset constraint' means one role per tuple. I've used the terms 'single-column', 'basic', 'simple', etc. Although the NORMA UI presents rows and columns, technically each row (tuple) is an argument to the comparison operation, the argument length (column count) is an arity, and the number of arguments is the number of rows (always two for a subset). Columns are basically a UI notion. Given that the arity of each argument must be consistent for all arguments, you could also say that the set comparison constraint has a single arity, so 'subset constraint with arity 1' would be a reasonable formal description.
Of course, just to make things fun (and play devil's advocate with myself), the term arity is correctly used both for the number of values in a tuple and the number of arguments in a function or operation, so arity is also reasonably applied to the number of arguments. So, subset is a binary comparison operation is a reasonable statement using an arity (binary = arity of 2). Given that this is always true, using subset constraint with arity 1 aka unary subset constraint is contradictory and sounds wrong. However, unary tuple subset constraint is unambiguous as it ties the arity with the tuple (row in NORMA) instead of argument count (column in NORMA).
Technically join paths also apply to the tuples, not the entire constraint. A subset constraint can have zero, one, or two tuples with join paths.
-Matt