algebra.free_non_unital_non_assoc_algebraMathlib.Algebra.FreeNonUnitalNonAssocAlgebra

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2021 Oliver Nash. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Oliver Nash
 -/
-import Mathbin.Algebra.Free
-import Mathbin.Algebra.MonoidAlgebra.Basic
+import Algebra.Free
+import Algebra.MonoidAlgebra.Basic
 
 #align_import algebra.free_non_unital_non_assoc_algebra from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2021 Oliver Nash. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Oliver Nash
-
-! This file was ported from Lean 3 source module algebra.free_non_unital_non_assoc_algebra
-! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Free
 import Mathbin.Algebra.MonoidAlgebra.Basic
 
+#align_import algebra.free_non_unital_non_assoc_algebra from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
+
 /-!
 # Free algebras
 
Diff
@@ -72,45 +72,59 @@ variable {A : Type w} [NonUnitalNonAssocSemiring A]
 
 variable [Module R A] [IsScalarTower R A A] [SMulCommClass R A A]
 
+#print FreeNonUnitalNonAssocAlgebra.lift /-
 /-- The functor `X ↦ free_non_unital_non_assoc_algebra R X` from the category of types to the
 category of non-unital, non-associative algebras over `R` is adjoint to the forgetful functor in the
 other direction. -/
 def lift : (X → A) ≃ (FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :=
   FreeMagma.lift.trans (MonoidAlgebra.liftMagma R)
 #align free_non_unital_non_assoc_algebra.lift FreeNonUnitalNonAssocAlgebra.lift
+-/
 
+#print FreeNonUnitalNonAssocAlgebra.lift_symm_apply /-
 @[simp]
 theorem lift_symm_apply (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
     (lift R).symm F = F ∘ of R :=
   rfl
 #align free_non_unital_non_assoc_algebra.lift_symm_apply FreeNonUnitalNonAssocAlgebra.lift_symm_apply
+-/
 
+#print FreeNonUnitalNonAssocAlgebra.of_comp_lift /-
 @[simp]
 theorem of_comp_lift (f : X → A) : lift R f ∘ of R = f :=
   (lift R).left_inv f
 #align free_non_unital_non_assoc_algebra.of_comp_lift FreeNonUnitalNonAssocAlgebra.of_comp_lift
+-/
 
+#print FreeNonUnitalNonAssocAlgebra.lift_unique /-
 @[simp]
 theorem lift_unique (f : X → A) (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
     F ∘ of R = f ↔ F = lift R f :=
   (lift R).symm_apply_eq
 #align free_non_unital_non_assoc_algebra.lift_unique FreeNonUnitalNonAssocAlgebra.lift_unique
+-/
 
+#print FreeNonUnitalNonAssocAlgebra.lift_of_apply /-
 @[simp]
 theorem lift_of_apply (f : X → A) (x) : lift R f (of R x) = f x :=
   congr_fun (of_comp_lift _ f) x
 #align free_non_unital_non_assoc_algebra.lift_of_apply FreeNonUnitalNonAssocAlgebra.lift_of_apply
+-/
 
+#print FreeNonUnitalNonAssocAlgebra.lift_comp_of /-
 @[simp]
 theorem lift_comp_of (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) : lift R (F ∘ of R) = F :=
   (lift R).apply_symm_apply F
 #align free_non_unital_non_assoc_algebra.lift_comp_of FreeNonUnitalNonAssocAlgebra.lift_comp_of
+-/
 
+#print FreeNonUnitalNonAssocAlgebra.hom_ext /-
 @[ext]
 theorem hom_ext {F₁ F₂ : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A}
     (h : ∀ x, F₁ (of R x) = F₂ (of R x)) : F₁ = F₂ :=
   (lift R).symm.Injective <| funext h
 #align free_non_unital_non_assoc_algebra.hom_ext FreeNonUnitalNonAssocAlgebra.hom_ext
+-/
 
 end FreeNonUnitalNonAssocAlgebra
 
Diff
@@ -72,12 +72,6 @@ variable {A : Type w} [NonUnitalNonAssocSemiring A]
 
 variable [Module R A] [IsScalarTower R A A] [SMulCommClass R A A]
 
-/- warning: free_non_unital_non_assoc_algebra.lift -> FreeNonUnitalNonAssocAlgebra.lift is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))], Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))
-but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))], Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))
-Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift FreeNonUnitalNonAssocAlgebra.liftₓ'. -/
 /-- The functor `X ↦ free_non_unital_non_assoc_algebra R X` from the category of types to the
 category of non-unital, non-associative algebras over `R` is adjoint to the forgetful functor in the
 other direction. -/
@@ -85,51 +79,33 @@ def lift : (X → A) ≃ (FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :=
   FreeMagma.lift.trans (MonoidAlgebra.liftMagma R)
 #align free_non_unital_non_assoc_algebra.lift FreeNonUnitalNonAssocAlgebra.lift
 
-/- warning: free_non_unital_non_assoc_algebra.lift_symm_apply -> FreeNonUnitalNonAssocAlgebra.lift_symm_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_symm_apply FreeNonUnitalNonAssocAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
     (lift R).symm F = F ∘ of R :=
   rfl
 #align free_non_unital_non_assoc_algebra.lift_symm_apply FreeNonUnitalNonAssocAlgebra.lift_symm_apply
 
-/- warning: free_non_unital_non_assoc_algebra.of_comp_lift -> FreeNonUnitalNonAssocAlgebra.of_comp_lift is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.of_comp_lift FreeNonUnitalNonAssocAlgebra.of_comp_liftₓ'. -/
 @[simp]
 theorem of_comp_lift (f : X → A) : lift R f ∘ of R = f :=
   (lift R).left_inv f
 #align free_non_unital_non_assoc_algebra.of_comp_lift FreeNonUnitalNonAssocAlgebra.of_comp_lift
 
-/- warning: free_non_unital_non_assoc_algebra.lift_unique -> FreeNonUnitalNonAssocAlgebra.lift_unique is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_unique FreeNonUnitalNonAssocAlgebra.lift_uniqueₓ'. -/
 @[simp]
 theorem lift_unique (f : X → A) (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
     F ∘ of R = f ↔ F = lift R f :=
   (lift R).symm_apply_eq
 #align free_non_unital_non_assoc_algebra.lift_unique FreeNonUnitalNonAssocAlgebra.lift_unique
 
-/- warning: free_non_unital_non_assoc_algebra.lift_of_apply -> FreeNonUnitalNonAssocAlgebra.lift_of_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_of_apply FreeNonUnitalNonAssocAlgebra.lift_of_applyₓ'. -/
 @[simp]
 theorem lift_of_apply (f : X → A) (x) : lift R f (of R x) = f x :=
   congr_fun (of_comp_lift _ f) x
 #align free_non_unital_non_assoc_algebra.lift_of_apply FreeNonUnitalNonAssocAlgebra.lift_of_apply
 
-/- warning: free_non_unital_non_assoc_algebra.lift_comp_of -> FreeNonUnitalNonAssocAlgebra.lift_comp_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_comp_of FreeNonUnitalNonAssocAlgebra.lift_comp_ofₓ'. -/
 @[simp]
 theorem lift_comp_of (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) : lift R (F ∘ of R) = F :=
   (lift R).apply_symm_apply F
 #align free_non_unital_non_assoc_algebra.lift_comp_of FreeNonUnitalNonAssocAlgebra.lift_comp_of
 
-/- warning: free_non_unital_non_assoc_algebra.hom_ext -> FreeNonUnitalNonAssocAlgebra.hom_ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.hom_ext FreeNonUnitalNonAssocAlgebra.hom_extₓ'. -/
 @[ext]
 theorem hom_ext {F₁ F₂ : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A}
     (h : ∀ x, F₁ (of R x) = F₂ (of R x)) : F₁ = F₂ :=
Diff
@@ -86,10 +86,7 @@ def lift : (X → A) ≃ (FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :=
 #align free_non_unital_non_assoc_algebra.lift FreeNonUnitalNonAssocAlgebra.lift
 
 /- warning: free_non_unital_non_assoc_algebra.lift_symm_apply -> FreeNonUnitalNonAssocAlgebra.lift_symm_apply is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ u2) (succ u3)} (X -> A) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3)) (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3)} (Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) => (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) -> X -> A) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (Equiv.symm.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5)) F) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))
-but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) F) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (Equiv.symm.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5)) F) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))
+<too large>
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_symm_apply FreeNonUnitalNonAssocAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
@@ -98,10 +95,7 @@ theorem lift_symm_apply (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
 #align free_non_unital_non_assoc_algebra.lift_symm_apply FreeNonUnitalNonAssocAlgebra.lift_symm_apply
 
 /- warning: free_non_unital_non_assoc_algebra.of_comp_lift -> FreeNonUnitalNonAssocAlgebra.of_comp_lift is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A), Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f)) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f
-but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A), Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f)) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f
+<too large>
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.of_comp_lift FreeNonUnitalNonAssocAlgebra.of_comp_liftₓ'. -/
 @[simp]
 theorem of_comp_lift (f : X → A) : lift R f ∘ of R = f :=
@@ -109,10 +103,7 @@ theorem of_comp_lift (f : X → A) : lift R f ∘ of R = f :=
 #align free_non_unital_non_assoc_algebra.of_comp_lift FreeNonUnitalNonAssocAlgebra.of_comp_lift
 
 /- warning: free_non_unital_non_assoc_algebra.lift_unique -> FreeNonUnitalNonAssocAlgebra.lift_unique is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A) (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Iff (Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f) (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f))
-but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Iff (Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f) (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_unique FreeNonUnitalNonAssocAlgebra.lift_uniqueₓ'. -/
 @[simp]
 theorem lift_unique (f : X → A) (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
@@ -121,10 +112,7 @@ theorem lift_unique (f : X → A) (F : FreeNonUnitalNonAssocAlgebra R X →ₙ
 #align free_non_unital_non_assoc_algebra.lift_unique FreeNonUnitalNonAssocAlgebra.lift_unique
 
 /- warning: free_non_unital_non_assoc_algebra.lift_of_apply -> FreeNonUnitalNonAssocAlgebra.lift_of_apply is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A) (x : X), Eq.{succ u3} A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (f x)
-but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (x : X), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (f x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_of_apply FreeNonUnitalNonAssocAlgebra.lift_of_applyₓ'. -/
 @[simp]
 theorem lift_of_apply (f : X → A) (x) : lift R f (of R x) = f x :=
@@ -132,10 +120,7 @@ theorem lift_of_apply (f : X → A) (x) : lift R f (of R x) = f x :=
 #align free_non_unital_non_assoc_algebra.lift_of_apply FreeNonUnitalNonAssocAlgebra.lift_of_apply
 
 /- warning: free_non_unital_non_assoc_algebra.lift_comp_of -> FreeNonUnitalNonAssocAlgebra.lift_comp_of is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) F
-but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (a : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) a) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) F
+<too large>
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_comp_of FreeNonUnitalNonAssocAlgebra.lift_comp_ofₓ'. -/
 @[simp]
 theorem lift_comp_of (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) : lift R (F ∘ of R) = F :=
@@ -143,10 +128,7 @@ theorem lift_comp_of (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) : lif
 #align free_non_unital_non_assoc_algebra.lift_comp_of FreeNonUnitalNonAssocAlgebra.lift_comp_of
 
 /- warning: free_non_unital_non_assoc_algebra.hom_ext -> FreeNonUnitalNonAssocAlgebra.hom_ext is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] {F₁ : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)} {F₂ : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)}, (forall (x : X), Eq.{succ u3} A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₂ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ F₂)
-but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] {F₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)} {F₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)}, (forall (x : X), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₂ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ F₂)
+<too large>
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.hom_ext FreeNonUnitalNonAssocAlgebra.hom_extₓ'. -/
 @[ext]
 theorem hom_ext {F₁ F₂ : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A}
Diff
@@ -89,7 +89,7 @@ def lift : (X → A) ≃ (FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :=
 lean 3 declaration is
   forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ u2) (succ u3)} (X -> A) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3)) (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3)} (Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) => (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) -> X -> A) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (Equiv.symm.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5)) F) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))
 but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) F) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (Equiv.symm.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5)) F) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) F) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (Equiv.symm.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5)) F) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_symm_apply FreeNonUnitalNonAssocAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
@@ -101,7 +101,7 @@ theorem lift_symm_apply (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
 lean 3 declaration is
   forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A), Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f)) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f
 but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A), Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f)) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A), Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f)) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.of_comp_lift FreeNonUnitalNonAssocAlgebra.of_comp_liftₓ'. -/
 @[simp]
 theorem of_comp_lift (f : X → A) : lift R f ∘ of R = f :=
@@ -112,7 +112,7 @@ theorem of_comp_lift (f : X → A) : lift R f ∘ of R = f :=
 lean 3 declaration is
   forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A) (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Iff (Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f) (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f))
 but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Iff (Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f) (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f))
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Iff (Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f) (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f))
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_unique FreeNonUnitalNonAssocAlgebra.lift_uniqueₓ'. -/
 @[simp]
 theorem lift_unique (f : X → A) (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
@@ -124,7 +124,7 @@ theorem lift_unique (f : X → A) (F : FreeNonUnitalNonAssocAlgebra R X →ₙ
 lean 3 declaration is
   forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A) (x : X), Eq.{succ u3} A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (f x)
 but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (x : X), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (f x)
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (x : X), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (f x)
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_of_apply FreeNonUnitalNonAssocAlgebra.lift_of_applyₓ'. -/
 @[simp]
 theorem lift_of_apply (f : X → A) (x) : lift R f (of R x) = f x :=
@@ -135,7 +135,7 @@ theorem lift_of_apply (f : X → A) (x) : lift R f (of R x) = f x :=
 lean 3 declaration is
   forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) F
 but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (a : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) a) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) F
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (a : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) a) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) F
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_comp_of FreeNonUnitalNonAssocAlgebra.lift_comp_ofₓ'. -/
 @[simp]
 theorem lift_comp_of (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) : lift R (F ∘ of R) = F :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Oliver Nash
 
 ! This file was ported from Lean 3 source module algebra.free_non_unital_non_assoc_algebra
-! leanprover-community/mathlib commit 2f1a4aff21c9aadf7cfb96911734754d6c228029
+! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.Algebra.MonoidAlgebra.Basic
 /-!
 # Free algebras
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Given a semiring `R` and a type `X`, we construct the free non-unital, non-associative algebra on
 `X` with coefficients in `R`, together with its universal property. The construction is valuable
 because it can be used to build free algebras with more structure, e.g., free Lie algebras.
Diff
@@ -86,7 +86,7 @@ def lift : (X → A) ≃ (FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :=
 lean 3 declaration is
   forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ u2) (succ u3)} (X -> A) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3)) (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3)} (Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) => (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) -> X -> A) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (Equiv.symm.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5)) F) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))
 but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) F) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (Equiv.symm.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5)) F) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) F) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (Equiv.symm.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5)) F) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_symm_apply FreeNonUnitalNonAssocAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
@@ -98,7 +98,7 @@ theorem lift_symm_apply (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
 lean 3 declaration is
   forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A), Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f)) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f
 but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A), Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f)) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A), Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f)) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.of_comp_lift FreeNonUnitalNonAssocAlgebra.of_comp_liftₓ'. -/
 @[simp]
 theorem of_comp_lift (f : X → A) : lift R f ∘ of R = f :=
@@ -109,7 +109,7 @@ theorem of_comp_lift (f : X → A) : lift R f ∘ of R = f :=
 lean 3 declaration is
   forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A) (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Iff (Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f) (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f))
 but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Iff (Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f) (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f))
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Iff (Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f) (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f))
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_unique FreeNonUnitalNonAssocAlgebra.lift_uniqueₓ'. -/
 @[simp]
 theorem lift_unique (f : X → A) (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
@@ -121,7 +121,7 @@ theorem lift_unique (f : X → A) (F : FreeNonUnitalNonAssocAlgebra R X →ₙ
 lean 3 declaration is
   forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A) (x : X), Eq.{succ u3} A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (f x)
 but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (x : X), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (f x)
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (x : X), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (f x)
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_of_apply FreeNonUnitalNonAssocAlgebra.lift_of_applyₓ'. -/
 @[simp]
 theorem lift_of_apply (f : X → A) (x) : lift R f (of R x) = f x :=
@@ -132,7 +132,7 @@ theorem lift_of_apply (f : X → A) (x) : lift R f (of R x) = f x :=
 lean 3 declaration is
   forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) F
 but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (a : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) a) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) F
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (a : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) a) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) F
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_comp_of FreeNonUnitalNonAssocAlgebra.lift_comp_ofₓ'. -/
 @[simp]
 theorem lift_comp_of (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) : lift R (F ∘ of R) = F :=
@@ -143,7 +143,7 @@ theorem lift_comp_of (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) : lif
 lean 3 declaration is
   forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] {F₁ : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)} {F₂ : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)}, (forall (x : X), Eq.{succ u3} A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₂ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ F₂)
 but is expected to have type
-  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] {F₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)} {F₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)}, (forall (x : X), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₂ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ F₂)
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] {F₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)} {F₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)}, (forall (x : X), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1412 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₂ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ F₂)
 Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.hom_ext FreeNonUnitalNonAssocAlgebra.hom_extₓ'. -/
 @[ext]
 theorem hom_ext {F₁ F₂ : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A}
Diff
@@ -47,24 +47,34 @@ noncomputable section
 
 variable (R : Type u) (X : Type v) [Semiring R]
 
+#print FreeNonUnitalNonAssocAlgebra /-
 /-- The free non-unital, non-associative algebra on the type `X` with coefficients in `R`. -/
 abbrev FreeNonUnitalNonAssocAlgebra :=
   MonoidAlgebra R (FreeMagma X)
 #align free_non_unital_non_assoc_algebra FreeNonUnitalNonAssocAlgebra
+-/
 
 namespace FreeNonUnitalNonAssocAlgebra
 
 variable {X}
 
+#print FreeNonUnitalNonAssocAlgebra.of /-
 /-- The embedding of `X` into the free algebra with coefficients in `R`. -/
 def of : X → FreeNonUnitalNonAssocAlgebra R X :=
   MonoidAlgebra.ofMagma R _ ∘ FreeMagma.of
 #align free_non_unital_non_assoc_algebra.of FreeNonUnitalNonAssocAlgebra.of
+-/
 
 variable {A : Type w} [NonUnitalNonAssocSemiring A]
 
 variable [Module R A] [IsScalarTower R A A] [SMulCommClass R A A]
 
+/- warning: free_non_unital_non_assoc_algebra.lift -> FreeNonUnitalNonAssocAlgebra.lift is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))], Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))
+but is expected to have type
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))], Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))
+Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift FreeNonUnitalNonAssocAlgebra.liftₓ'. -/
 /-- The functor `X ↦ free_non_unital_non_assoc_algebra R X` from the category of types to the
 category of non-unital, non-associative algebras over `R` is adjoint to the forgetful functor in the
 other direction. -/
@@ -72,33 +82,69 @@ def lift : (X → A) ≃ (FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :=
   FreeMagma.lift.trans (MonoidAlgebra.liftMagma R)
 #align free_non_unital_non_assoc_algebra.lift FreeNonUnitalNonAssocAlgebra.lift
 
+/- warning: free_non_unital_non_assoc_algebra.lift_symm_apply -> FreeNonUnitalNonAssocAlgebra.lift_symm_apply is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ u2) (succ u3)} (X -> A) (coeFn.{max 1 (max (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3)) (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3), max (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3)} (Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (fun (_x : Equiv.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) => (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) -> X -> A) (Equiv.hasCoeToFun.{max (succ (max u1 u2)) (succ u3), max (succ u2) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (Equiv.symm.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5)) F) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))
+but is expected to have type
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) F) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (Equiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => X -> A) _x) (Equiv.instFunLikeEquiv.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (X -> A)) (Equiv.symm.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5)) F) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))
+Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_symm_apply FreeNonUnitalNonAssocAlgebra.lift_symm_applyₓ'. -/
 @[simp]
 theorem lift_symm_apply (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
     (lift R).symm F = F ∘ of R :=
   rfl
 #align free_non_unital_non_assoc_algebra.lift_symm_apply FreeNonUnitalNonAssocAlgebra.lift_symm_apply
 
+/- warning: free_non_unital_non_assoc_algebra.of_comp_lift -> FreeNonUnitalNonAssocAlgebra.of_comp_lift is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A), Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f)) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f
+but is expected to have type
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A), Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f)) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f
+Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.of_comp_lift FreeNonUnitalNonAssocAlgebra.of_comp_liftₓ'. -/
 @[simp]
 theorem of_comp_lift (f : X → A) : lift R f ∘ of R = f :=
   (lift R).left_inv f
 #align free_non_unital_non_assoc_algebra.of_comp_lift FreeNonUnitalNonAssocAlgebra.of_comp_lift
 
+/- warning: free_non_unital_non_assoc_algebra.lift_unique -> FreeNonUnitalNonAssocAlgebra.lift_unique is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A) (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Iff (Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f) (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f))
+but is expected to have type
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Iff (Eq.{max (succ u2) (succ u3)} (X -> A) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1)) f) (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f))
+Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_unique FreeNonUnitalNonAssocAlgebra.lift_uniqueₓ'. -/
 @[simp]
 theorem lift_unique (f : X → A) (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) :
     F ∘ of R = f ↔ F = lift R f :=
   (lift R).symm_apply_eq
 #align free_non_unital_non_assoc_algebra.lift_unique FreeNonUnitalNonAssocAlgebra.lift_unique
 
+/- warning: free_non_unital_non_assoc_algebra.lift_of_apply -> FreeNonUnitalNonAssocAlgebra.lift_of_apply is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (f : X -> A) (x : X), Eq.{succ u3} A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (f x)
+but is expected to have type
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (f : X -> A) (x : X), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) f) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) f) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (f x)
+Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_of_apply FreeNonUnitalNonAssocAlgebra.lift_of_applyₓ'. -/
 @[simp]
 theorem lift_of_apply (f : X → A) (x) : lift R f (of R x) = f x :=
   congr_fun (of_comp_lift _ f) x
 #align free_non_unital_non_assoc_algebra.lift_of_apply FreeNonUnitalNonAssocAlgebra.lift_of_apply
 
+/- warning: free_non_unital_non_assoc_algebra.lift_comp_of -> FreeNonUnitalNonAssocAlgebra.lift_comp_of is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] (F : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (coeFn.{max 1 (max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)) (max (succ (max u1 u2)) (succ u3)) (succ u2) (succ u3), max (max (succ u2) (succ u3)) (succ (max u1 u2)) (succ u3)} (Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (fun (_x : Equiv.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) => (X -> A) -> (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (Equiv.hasCoeToFun.{max (succ u2) (succ u3), max (succ (max u1 u2)) (succ u3)} (X -> A) (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) (Function.comp.{succ u2, succ (max u1 u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) F
+but is expected to have type
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] (F : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (a : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) a) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (Equiv.{max (succ u2) (succ u3), max (succ u3) (succ (max u2 u1))} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (X -> A) (fun (_x : X -> A) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : X -> A) => NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), max (max (succ u1) (succ u3)) (succ u2)} (X -> A) (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))) (FreeNonUnitalNonAssocAlgebra.lift.{u1, u2, u3} R X _inst_1 A _inst_2 _inst_3 _inst_4 _inst_5) (Function.comp.{succ u2, max (succ u1) (succ u2), succ u3} X (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1))) F
+Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.lift_comp_of FreeNonUnitalNonAssocAlgebra.lift_comp_ofₓ'. -/
 @[simp]
 theorem lift_comp_of (F : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A) : lift R (F ∘ of R) = F :=
   (lift R).apply_symm_apply F
 #align free_non_unital_non_assoc_algebra.lift_comp_of FreeNonUnitalNonAssocAlgebra.lift_comp_of
 
+/- warning: free_non_unital_non_assoc_algebra.hom_ext -> FreeNonUnitalNonAssocAlgebra.hom_ext is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2))) (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toHasSmul.{u1, u3} R A (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u3} R A (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddCommMonoid.toAddMonoid.{u3} A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)))) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (Mul.toSMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A _inst_2)))] {F₁ : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)} {F₂ : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)}, (forall (x : X), Eq.{succ u3} A (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (fun (_x : NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) => (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) -> A) (NonUnitalAlgHom.hasCoeToFun.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₂ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.hasMul.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ F₂)
+but is expected to have type
+  forall (R : Type.{u1}) {X : Type.{u2}} [_inst_1 : Semiring.{u1} R] {A : Type.{u3}} [_inst_2 : NonUnitalNonAssocSemiring.{u3} A] [_inst_3 : Module.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2)] [_inst_4 : IsScalarTower.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)))) (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3))))] [_inst_5 : SMulCommClass.{u1, u3, u3} R A A (SMulZeroClass.toSMul.{u1, u3} R A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R A (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R A (Semiring.toMonoidWithZero.{u1} R _inst_1) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (Module.toMulActionWithZero.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)))) (SMulZeroClass.toSMul.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u3} A A (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2)) (MulZeroClass.toSMulWithZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A _inst_2))))] {F₁ : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)} {F₂ : NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)}, (forall (x : X), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u2), succ u3} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) (fun (_x : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => (fun (x._@.Mathlib.Algebra.Hom.NonUnitalAlg._hyg.1410 : FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) => A) _x) (NonUnitalAlgHom.instFunLikeNonUnitalAlgHom.{u1, max u1 u2, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₂ (FreeNonUnitalNonAssocAlgebra.of.{u1, u2} R X _inst_1 x))) -> (Eq.{max (max (succ u1) (succ u2)) (succ u3)} (NonUnitalAlgHom.{u1, max u2 u1, u3} R (FreeNonUnitalNonAssocAlgebra.{u1, u2} R X _inst_1) A (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (MonoidAlgebra.nonUnitalNonAssocSemiring.{u1, u2} R (FreeMagma.{u2} X) _inst_1 (FreeMagma.instMulFreeMagma.{u2} X)) (MonoidAlgebra.distribMulAction.{u1, u2, u1} R (FreeMagma.{u2} X) R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) _inst_1 (Module.toDistribMulAction.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1))) _inst_2 (Module.toDistribMulAction.{u1, u3} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A _inst_2) _inst_3)) F₁ F₂)
+Case conversion may be inaccurate. Consider using '#align free_non_unital_non_assoc_algebra.hom_ext FreeNonUnitalNonAssocAlgebra.hom_extₓ'. -/
 @[ext]
 theorem hom_ext {F₁ F₂ : FreeNonUnitalNonAssocAlgebra R X →ₙₐ[R] A}
     (h : ∀ x, F₁ (of R x) = F₂ (of R x)) : F₁ = F₂ :=

Changes in mathlib4

mathlib3
mathlib4
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -59,7 +59,6 @@ def of : X → FreeNonUnitalNonAssocAlgebra R X :=
 #align free_non_unital_non_assoc_algebra.of FreeNonUnitalNonAssocAlgebra.of
 
 variable {A : Type w} [NonUnitalNonAssocSemiring A]
-
 variable [Module R A] [IsScalarTower R A A] [SMulCommClass R A A]
 
 /-- The functor `X ↦ FreeNonUnitalNonAssocAlgebra R X` from the category of types to the
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2021 Oliver Nash. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Oliver Nash
-
-! This file was ported from Lean 3 source module algebra.free_non_unital_non_assoc_algebra
-! leanprover-community/mathlib commit 2f1a4aff21c9aadf7cfb96911734754d6c228029
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Free
 import Mathlib.Algebra.MonoidAlgebra.Basic
 
+#align_import algebra.free_non_unital_non_assoc_algebra from "leanprover-community/mathlib"@"2f1a4aff21c9aadf7cfb96911734754d6c228029"
+
 /-!
 # Free algebras
 
feat: Port Algebra.FreeNonUnitalNonAssocAlgebra (#2642)

Rename only

Dependencies 8 + 377

378 files ported (97.9%)
158609 lines ported (98.1%)
Show graph

The unported dependencies are