Section REGISTER_CLASSES.
Variable class: Type.
Variable regclass: reg -> class.
Hypothesis temp_preserves_class: forall r, regclass (temp r) = regclass r.
Definition is_class_compatible (mu: moves) : Prop :=
forall s d, In (s, d) mu -> regclass s = regclass d.

Lemma parmove_preserves_register_classes:
forall mu,
is_class_compatible mu ->
is_class_compatible (parmove mu).