Source: Mark Davis
Subject: Actions on Normalization and Casing Stability
Date: 2008-01-30

I have the action:

A173 Draft a revision of stability policies to include casing stability and NPSS_related changes to normalization stability and post as L2 doc.

Here is my draft (see also http://www.unicode.org/L2/L2006/06178-ms-casing.html).

Proposed changes for: http://www.unicode.org/policies/stability_policy.html

Between "Normalization Stability" and "Applicable Version: Unicode 3.1+", insert:


Applicable Version: Unicode 4.1+

If a string X contains only characters from a given version of the Unicode, and in accordance with that version of Unicode X is put into a normalized form, then in accordance with any subsequent version of Unicode, X will be put into an identical normalized form.

In particular, once a character is encoded, its canonical combining class and decomposition mapping will not be changed in a way that will destabilize normalization. Thus the following constraints will be maintained under all circumstances:

Decomposition Mapping

Once a character is assigned, the decomposition mapping will not change.

Canonical Combining Class

Once a character is assigned, the canonical combining class will not change.


Add at the end, after "Case Folding Stability":

Case Pair Stability

Applicable Version: Unicode XX (TODO - set XX to the earliest applicable version)

Once two characters are assigned, whether or not they are a case pair remains stable.

More formally, for given versions V and U of Unicode, and two characters X and Y that are both assigned according to both V and U:

toLowercase(X) = Y AND toUppercase(Y) = X according to V
if and only if
toLowercase(X) = Y AND toUppercase(Y) = X according to U.

Note that one-way mappings do not have this guarantee.

End of change