The transport tactic #
transport attempts to move an s : S α expression across an equivalence e : α ≃ β to solve
a goal of the form S β, by building the new object field by field, taking each field of s
and rewriting it along e using the equiv_rw tactic.
We try to ensure good definitional properties, so that, for example, when we transport a monoid α
to a monoid β, the new multiplication is definitionally λ x y, e (e.symm a * e.symm b).