norm_swap #
Evaluating swap x y z for numerals x y z that are ℕ, ℤ, or ℚ, via a norm_num plugin.
Terms are passed to eval, quickly failing if not of the form swap x y z.
The expressions for numerals x y z are converted to nat, and then compared.
Based on equality of these nats, equality proofs are generated using either
equiv.swap_apply_left, equiv.swap_apply_right, or swap_apply_of_ne_of_ne.