Tweak std/bzip2's "inverse of T" description
diff --git a/std/bzip2/README.md b/std/bzip2/README.md
index 5e0bcf0..e2627c7 100644
--- a/std/bzip2/README.md
+++ b/std/bzip2/README.md
@@ -241,13 +241,13 @@
 (assigning 0, 1 and 2), all the 'b' elements (assigning 3), all the 'c'
 elements (assinging 4) and all the 'r' elements (assigning 5).
 
-    Index   L  T
-    0       c  4
-    1       a  0
-    2       r  5
-    3       a  1
-    4       a  2
-    5       b  3
+    Index  L  T
+    0      c  4
+    1      a  0
+    2      r  5
+    3      a  1
+    4      a  2
+    5      b  3
 
 Starting with the *I* value given in the (g) bitslice, which was 1, calculate
 *I*, *T[I]*, *T[T[I]]*, *T[T[T[I]]]*, etc to give [1, 0, 4, 2, 5, 3]. Indexing
@@ -258,23 +258,20 @@
 ## Alternative BWT Inversion
 
 It's not in the BWT technical report, but instead of walking *I*, *T[I]*,
-*T[T[I]]*, etc, an alternative but equivalent algorithm starts with the *Index
-L T* table but then sorts the rows by *T*, modifying the *Index* and *T*
-columns (to produce *Index2* and *T2*) but leaving the *L* column unchanged.
-For example *Index == 4* matches *T == 2*, so *T2 == 2* matches *Index2 == 4*.
+*T[T[I]]*, etc, an alternative but equivalent algorithm works on *U*, the
+inverse of the *T* vector. For example *T[4] == 2* and so *U[2] == 4*.
 
-    Index2  L  T2
-    1       c  0
-    3       a  1
-    4       r  2
-    5       a  3
-    0       a  4
-    2       b  5
+    Index  L  T  F  U
+    0      c  4  a  1
+    1      a  0  a  3
+    2      r  5  a  4
+    3      a  1  b  5
+    4      a  2  c  0
+    5      b  3  r  2
 
-Our original *I* value was 1, and when *T2* is 1, *Index2* is 3. Call this
-value *I2*. Calculate *I2*, *Index2[I2]*, *Index2[Index2[I2]]*, etc to give [3,
-5, 2, 4, 0, 1]. Indexing *L* with these values gives "abraca", the uncompressed
-text (without being reversed).
+Calculate *U[I]*, *U[U[I]]*, *U[U[U[I]]]*, etc to give [3, 5, 2, 4, 0, 1].
+Indexing *L* with these values gives "abraca", the uncompressed text (without
+being reversed).
 
 
 ## Final Run Length Encoding
diff --git a/std/bzip2/decode_bzip2.wuffs b/std/bzip2/decode_bzip2.wuffs
index a334792..8da8d77 100644
--- a/std/bzip2/decode_bzip2.wuffs
+++ b/std/bzip2/decode_bzip2.wuffs
@@ -67,7 +67,7 @@
 
 	// bwt is the Burrows Wheeler Transform state. Per the README.md file, each
 	// entry is a row with the low 8 bits holding the L column and the high 20
-	// bits holding the Index2 column. The middle 4 bits are unused.
+	// bits holding the U column. The middle 4 bits are unused.
 	//
 	// The read_code_lengths and build_huffman_tree methods also re-purpose
 	// this buffer to temporarily hold up to 258 symbols' code lengths.
@@ -727,8 +727,8 @@
 		i += 1
 	} endwhile
 
-	// Second data pass, but per the README.md file, calculate the Index2
-	// column instead of the T column calculated by SRC-RR-124.pdf.
+	// Second data pass, but per the README.md file, calculate the U column
+	// instead of the BWT technical report's T column.
 	i = 0
 	while i < this.block_size {
 		assert i < 900000 via "a < b: a < c; c <= b"(c: this.block_size)