data.polynomial.degree.card_pow_degreeMathlib.Data.Polynomial.Degree.CardPowDegree

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)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -45,7 +45,7 @@ open scoped Classical Polynomial
 noncomputable def cardPowDegree : AbsoluteValue Fq[X] ℤ :=
   have card_pos : 0 < Fintype.card Fq := Fintype.card_pos_iff.mpr inferInstance
   have pow_pos : ∀ n, 0 < (Fintype.card Fq : ℤ) ^ n := fun n =>
-    pow_pos (Int.coe_nat_pos.mpr card_pos) n
+    pow_pos (Int.natCast_pos.mpr card_pos) n
   { toFun := fun p => if p = 0 then 0 else Fintype.card Fq ^ p.natDegree
     nonneg' := fun p => by dsimp; split_ifs; · rfl; exact pow_nonneg (Int.ofNat_zero_le _) _
     eq_zero' := fun p =>
@@ -97,7 +97,7 @@ theorem cardPowDegree_nonzero (p : Fq[X]) (hp : p ≠ 0) :
 theorem cardPowDegree_isEuclidean : IsEuclidean (cardPowDegree : AbsoluteValue Fq[X] ℤ) :=
   have card_pos : 0 < Fintype.card Fq := Fintype.card_pos_iff.mpr inferInstance
   have pow_pos : ∀ n, 0 < (Fintype.card Fq : ℤ) ^ n := fun n =>
-    pow_pos (Int.coe_nat_pos.mpr card_pos) n
+    pow_pos (Int.natCast_pos.mpr card_pos) n
   {
     map_lt_map_iff' := fun p q =>
       by
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
 -/
 import Algebra.Order.EuclideanAbsoluteValue
-import Data.Polynomial.FieldDivision
+import Algebra.Polynomial.FieldDivision
 
 #align_import data.polynomial.degree.card_pow_degree from "leanprover-community/mathlib"@"31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0"
 
Diff
@@ -57,7 +57,7 @@ noncomputable def cardPowDegree : AbsoluteValue Fq[X] ℤ :=
       · simp only [hpq, hp, hq, eq_self_iff_true, if_true, if_false]
         exact add_nonneg (pow_pos _).le (pow_pos _).le
       simp only [hpq, hp, hq, if_false]
-      refine' le_trans (pow_le_pow (by linarith) (Polynomial.natDegree_add_le _ _)) _
+      refine' le_trans (pow_le_pow_right (by linarith) (Polynomial.natDegree_add_le _ _)) _
       refine'
         le_trans (le_max_iff.mpr _)
           (max_le_add_of_nonneg (pow_nonneg (by linarith) _) (pow_nonneg (by linarith) _))
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
 -/
-import Mathbin.Algebra.Order.EuclideanAbsoluteValue
-import Mathbin.Data.Polynomial.FieldDivision
+import Algebra.Order.EuclideanAbsoluteValue
+import Data.Polynomial.FieldDivision
 
 #align_import data.polynomial.degree.card_pow_degree from "leanprover-community/mathlib"@"31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
-
-! This file was ported from Lean 3 source module data.polynomial.degree.card_pow_degree
-! leanprover-community/mathlib commit 31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Order.EuclideanAbsoluteValue
 import Mathbin.Data.Polynomial.FieldDivision
 
+#align_import data.polynomial.degree.card_pow_degree from "leanprover-community/mathlib"@"31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0"
+
 /-!
 # Absolute value on polynomials over a finite field.
 
Diff
@@ -74,22 +74,29 @@ noncomputable def cardPowDegree : AbsoluteValue Fq[X] ℤ :=
 #align polynomial.card_pow_degree Polynomial.cardPowDegree
 -/
 
+#print Polynomial.cardPowDegree_apply /-
 theorem cardPowDegree_apply (p : Fq[X]) :
     cardPowDegree p = if p = 0 then 0 else Fintype.card Fq ^ natDegree p :=
   rfl
 #align polynomial.card_pow_degree_apply Polynomial.cardPowDegree_apply
+-/
 
+#print Polynomial.cardPowDegree_zero /-
 @[simp]
 theorem cardPowDegree_zero : cardPowDegree (0 : Fq[X]) = 0 :=
   if_pos rfl
 #align polynomial.card_pow_degree_zero Polynomial.cardPowDegree_zero
+-/
 
+#print Polynomial.cardPowDegree_nonzero /-
 @[simp]
 theorem cardPowDegree_nonzero (p : Fq[X]) (hp : p ≠ 0) :
     cardPowDegree p = Fintype.card Fq ^ p.natDegree :=
   if_neg hp
 #align polynomial.card_pow_degree_nonzero Polynomial.cardPowDegree_nonzero
+-/
 
+#print Polynomial.cardPowDegree_isEuclidean /-
 theorem cardPowDegree_isEuclidean : IsEuclidean (cardPowDegree : AbsoluteValue Fq[X] ℤ) :=
   have card_pos : 0 < Fintype.card Fq := Fintype.card_pos_iff.mpr inferInstance
   have pow_pos : ∀ n, 0 < (Fintype.card Fq : ℤ) ^ n := fun n =>
@@ -107,6 +114,7 @@ theorem cardPowDegree_isEuclidean : IsEuclidean (cardPowDegree : AbsoluteValue F
       · rw [degree_eq_nat_degree hp, degree_eq_nat_degree hq, WithBot.coe_lt_coe, pow_lt_pow_iff]
         exact_mod_cast @Fintype.one_lt_card Fq _ _ }
 #align polynomial.card_pow_degree_is_euclidean Polynomial.cardPowDegree_isEuclidean
+-/
 
 end Polynomial
 
Diff
@@ -39,7 +39,7 @@ variable {Fq : Type _} [Field Fq] [Fintype Fq]
 
 open AbsoluteValue
 
-open Classical Polynomial
+open scoped Classical Polynomial
 
 #print Polynomial.cardPowDegree /-
 /-- `card_pow_degree` is the absolute value on `𝔽_q[t]` sending `f` to `q ^ degree f`.
Diff
@@ -74,46 +74,22 @@ noncomputable def cardPowDegree : AbsoluteValue Fq[X] ℤ :=
 #align polynomial.card_pow_degree Polynomial.cardPowDegree
 -/
 
-/- warning: polynomial.card_pow_degree_apply -> Polynomial.cardPowDegree_apply is a dubious translation:
-lean 3 declaration is
-  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq] (p : Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))), Eq.{1} Int (coeFn.{succ u1, succ u1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (fun (f : AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) => (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) -> Int) (AbsoluteValue.hasCoeToFun.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) p) (ite.{1} Int (Eq.{succ u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))))))) (Classical.propDecidable (Eq.{succ u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1))))))))) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) (HPow.hPow.{0, 0, 0} Int Nat Int (instHPow.{0, 0} Int Nat (Monoid.Pow.{0} Int Int.monoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Fintype.card.{u1} Fq _inst_2)) (Polynomial.natDegree.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1))) p)))
-but is expected to have type
-  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq] (p : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))), Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) p) (FunLike.coe.{succ u1, succ u1, 1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (fun (f : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) f) (SubadditiveHomClass.toFunLike.{u1, u1, 0} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Distrib.toAdd.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))))))) (Distrib.toAdd.{0} Int (NonUnitalNonAssocSemiring.toDistrib.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int (OrderedSemiring.toSemiring.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))))) (Preorder.toLE.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedSemiring.toPartialOrder.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))) (AbsoluteValue.subadditiveHomClass.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) p) (ite.{1} Int (Eq.{succ u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))))))) (Classical.propDecidable (Eq.{succ u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))))))) (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) (HPow.hPow.{0, 0, 0} Int Nat Int Int.instHPowIntNat (Nat.cast.{0} Int instNatCastInt (Fintype.card.{u1} Fq _inst_2)) (Polynomial.natDegree.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))) p)))
-Case conversion may be inaccurate. Consider using '#align polynomial.card_pow_degree_apply Polynomial.cardPowDegree_applyₓ'. -/
 theorem cardPowDegree_apply (p : Fq[X]) :
     cardPowDegree p = if p = 0 then 0 else Fintype.card Fq ^ natDegree p :=
   rfl
 #align polynomial.card_pow_degree_apply Polynomial.cardPowDegree_apply
 
-/- warning: polynomial.card_pow_degree_zero -> Polynomial.cardPowDegree_zero is a dubious translation:
-lean 3 declaration is
-  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq], Eq.{1} Int (coeFn.{succ u1, succ u1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (fun (f : AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) => (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) -> Int) (AbsoluteValue.hasCoeToFun.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))))))) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))
-but is expected to have type
-  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq], Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))))))) (FunLike.coe.{succ u1, succ u1, 1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (fun (f : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) f) (SubadditiveHomClass.toFunLike.{u1, u1, 0} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Distrib.toAdd.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))))))) (Distrib.toAdd.{0} Int (NonUnitalNonAssocSemiring.toDistrib.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int (OrderedSemiring.toSemiring.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))))) (Preorder.toLE.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedSemiring.toPartialOrder.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))) (AbsoluteValue.subadditiveHomClass.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))))))) 0 (instOfNatInt 0))
-Case conversion may be inaccurate. Consider using '#align polynomial.card_pow_degree_zero Polynomial.cardPowDegree_zeroₓ'. -/
 @[simp]
 theorem cardPowDegree_zero : cardPowDegree (0 : Fq[X]) = 0 :=
   if_pos rfl
 #align polynomial.card_pow_degree_zero Polynomial.cardPowDegree_zero
 
-/- warning: polynomial.card_pow_degree_nonzero -> Polynomial.cardPowDegree_nonzero is a dubious translation:
-lean 3 declaration is
-  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq] (p : Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))), (Ne.{succ u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))))))) -> (Eq.{1} Int (coeFn.{succ u1, succ u1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (fun (f : AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) => (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) -> Int) (AbsoluteValue.hasCoeToFun.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) p) (HPow.hPow.{0, 0, 0} Int Nat Int (instHPow.{0, 0} Int Nat (Monoid.Pow.{0} Int Int.monoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Fintype.card.{u1} Fq _inst_2)) (Polynomial.natDegree.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1))) p)))
-but is expected to have type
-  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq] (p : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))), (Ne.{succ u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))))))) -> (Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) p) (FunLike.coe.{succ u1, succ u1, 1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (fun (f : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) f) (SubadditiveHomClass.toFunLike.{u1, u1, 0} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Distrib.toAdd.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))))))) (Distrib.toAdd.{0} Int (NonUnitalNonAssocSemiring.toDistrib.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int (OrderedSemiring.toSemiring.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))))) (Preorder.toLE.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedSemiring.toPartialOrder.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))) (AbsoluteValue.subadditiveHomClass.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) p) (HPow.hPow.{0, 0, 0} Int Nat Int Int.instHPowIntNat (Nat.cast.{0} Int instNatCastInt (Fintype.card.{u1} Fq _inst_2)) (Polynomial.natDegree.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))) p)))
-Case conversion may be inaccurate. Consider using '#align polynomial.card_pow_degree_nonzero Polynomial.cardPowDegree_nonzeroₓ'. -/
 @[simp]
 theorem cardPowDegree_nonzero (p : Fq[X]) (hp : p ≠ 0) :
     cardPowDegree p = Fintype.card Fq ^ p.natDegree :=
   if_neg hp
 #align polynomial.card_pow_degree_nonzero Polynomial.cardPowDegree_nonzero
 
-/- warning: polynomial.card_pow_degree_is_euclidean -> Polynomial.cardPowDegree_isEuclidean is a dubious translation:
-lean 3 declaration is
-  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq], AbsoluteValue.IsEuclidean.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.euclideanDomain.{u1} Fq _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2)
-but is expected to have type
-  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq], AbsoluteValue.IsEuclidean.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.instEuclideanDomainPolynomialToSemiringToDivisionSemiringToSemifield.{u1} Fq _inst_1) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2)
-Case conversion may be inaccurate. Consider using '#align polynomial.card_pow_degree_is_euclidean Polynomial.cardPowDegree_isEuclideanₓ'. -/
 theorem cardPowDegree_isEuclidean : IsEuclidean (cardPowDegree : AbsoluteValue Fq[X] ℤ) :=
   have card_pos : 0 < Fintype.card Fq := Fintype.card_pos_iff.mpr inferInstance
   have pow_pos : ∀ n, 0 < (Fintype.card Fq : ℤ) ^ n := fun n =>
Diff
@@ -50,16 +50,9 @@ noncomputable def cardPowDegree : AbsoluteValue Fq[X] ℤ :=
   have pow_pos : ∀ n, 0 < (Fintype.card Fq : ℤ) ^ n := fun n =>
     pow_pos (Int.coe_nat_pos.mpr card_pos) n
   { toFun := fun p => if p = 0 then 0 else Fintype.card Fq ^ p.natDegree
-    nonneg' := fun p => by
-      dsimp
-      split_ifs
-      · rfl
-      exact pow_nonneg (Int.ofNat_zero_le _) _
+    nonneg' := fun p => by dsimp; split_ifs; · rfl; exact pow_nonneg (Int.ofNat_zero_le _) _
     eq_zero' := fun p =>
-      ite_eq_left_iff.trans <|
-        ⟨fun h => by
-          contrapose! h
-          exact ⟨h, (pow_pos _).ne'⟩, absurd⟩
+      ite_eq_left_iff.trans <| ⟨fun h => by contrapose! h; exact ⟨h, (pow_pos _).ne'⟩, absurd⟩
     add_le' := fun p q => by
       by_cases hp : p = 0; · simp [hp]
       by_cases hq : q = 0; · simp [hq]
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
 
 ! This file was ported from Lean 3 source module data.polynomial.degree.card_pow_degree
-! leanprover-community/mathlib commit 85d9f2189d9489f9983c0d01536575b0233bd305
+! leanprover-community/mathlib commit 31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.Data.Polynomial.FieldDivision
 /-!
 # Absolute value on polynomials over a finite field.
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Let `Fq` be a finite field of cardinality `q`, then the map sending a polynomial `p`
 to `q ^ degree p` (where `q ^ degree 0 = 0`) is an absolute value.
 
Diff
@@ -38,6 +38,7 @@ open AbsoluteValue
 
 open Classical Polynomial
 
+#print Polynomial.cardPowDegree /-
 /-- `card_pow_degree` is the absolute value on `𝔽_q[t]` sending `f` to `q ^ degree f`.
 
 `card_pow_degree 0` is defined to be `0`. -/
@@ -75,23 +76,48 @@ noncomputable def cardPowDegree : AbsoluteValue Fq[X] ℤ :=
       simp only [hpq, hp, hq, eq_self_iff_true, if_true, if_false, Polynomial.natDegree_mul hp hq,
         pow_add] }
 #align polynomial.card_pow_degree Polynomial.cardPowDegree
+-/
 
+/- warning: polynomial.card_pow_degree_apply -> Polynomial.cardPowDegree_apply is a dubious translation:
+lean 3 declaration is
+  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq] (p : Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))), Eq.{1} Int (coeFn.{succ u1, succ u1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (fun (f : AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) => (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) -> Int) (AbsoluteValue.hasCoeToFun.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) p) (ite.{1} Int (Eq.{succ u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))))))) (Classical.propDecidable (Eq.{succ u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1))))))))) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero))) (HPow.hPow.{0, 0, 0} Int Nat Int (instHPow.{0, 0} Int Nat (Monoid.Pow.{0} Int Int.monoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Fintype.card.{u1} Fq _inst_2)) (Polynomial.natDegree.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1))) p)))
+but is expected to have type
+  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq] (p : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))), Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) p) (FunLike.coe.{succ u1, succ u1, 1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (fun (f : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) f) (SubadditiveHomClass.toFunLike.{u1, u1, 0} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Distrib.toAdd.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))))))) (Distrib.toAdd.{0} Int (NonUnitalNonAssocSemiring.toDistrib.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int (OrderedSemiring.toSemiring.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))))) (Preorder.toLE.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedSemiring.toPartialOrder.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))) (AbsoluteValue.subadditiveHomClass.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) p) (ite.{1} Int (Eq.{succ u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))))))) (Classical.propDecidable (Eq.{succ u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))))))) (OfNat.ofNat.{0} Int 0 (instOfNatInt 0)) (HPow.hPow.{0, 0, 0} Int Nat Int Int.instHPowIntNat (Nat.cast.{0} Int instNatCastInt (Fintype.card.{u1} Fq _inst_2)) (Polynomial.natDegree.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))) p)))
+Case conversion may be inaccurate. Consider using '#align polynomial.card_pow_degree_apply Polynomial.cardPowDegree_applyₓ'. -/
 theorem cardPowDegree_apply (p : Fq[X]) :
     cardPowDegree p = if p = 0 then 0 else Fintype.card Fq ^ natDegree p :=
   rfl
 #align polynomial.card_pow_degree_apply Polynomial.cardPowDegree_apply
 
+/- warning: polynomial.card_pow_degree_zero -> Polynomial.cardPowDegree_zero is a dubious translation:
+lean 3 declaration is
+  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq], Eq.{1} Int (coeFn.{succ u1, succ u1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (fun (f : AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) => (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) -> Int) (AbsoluteValue.hasCoeToFun.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))))))) (OfNat.ofNat.{0} Int 0 (OfNat.mk.{0} Int 0 (Zero.zero.{0} Int Int.hasZero)))
+but is expected to have type
+  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq], Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))))))) (FunLike.coe.{succ u1, succ u1, 1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (fun (f : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) f) (SubadditiveHomClass.toFunLike.{u1, u1, 0} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Distrib.toAdd.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))))))) (Distrib.toAdd.{0} Int (NonUnitalNonAssocSemiring.toDistrib.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int (OrderedSemiring.toSemiring.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))))) (Preorder.toLE.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedSemiring.toPartialOrder.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))) (AbsoluteValue.subadditiveHomClass.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))))))) 0 (instOfNatInt 0))
+Case conversion may be inaccurate. Consider using '#align polynomial.card_pow_degree_zero Polynomial.cardPowDegree_zeroₓ'. -/
 @[simp]
 theorem cardPowDegree_zero : cardPowDegree (0 : Fq[X]) = 0 :=
   if_pos rfl
 #align polynomial.card_pow_degree_zero Polynomial.cardPowDegree_zero
 
+/- warning: polynomial.card_pow_degree_nonzero -> Polynomial.cardPowDegree_nonzero is a dubious translation:
+lean 3 declaration is
+  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq] (p : Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))), (Ne.{succ u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (OfNat.mk.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) 0 (Zero.zero.{u1} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))))))) -> (Eq.{1} Int (coeFn.{succ u1, succ u1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (fun (f : AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) => (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) -> Int) (AbsoluteValue.hasCoeToFun.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) p) (HPow.hPow.{0, 0, 0} Int Nat Int (instHPow.{0, 0} Int Nat (Monoid.Pow.{0} Int Int.monoid)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat Int (HasLiftT.mk.{1, 1} Nat Int (CoeTCₓ.coe.{1, 1} Nat Int (coeBase.{1, 1} Nat Int Int.hasCoe))) (Fintype.card.{u1} Fq _inst_2)) (Polynomial.natDegree.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1))) p)))
+but is expected to have type
+  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq] (p : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))), (Ne.{succ u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) p (OfNat.ofNat.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) 0 (Zero.toOfNat0.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.zero.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))))))) -> (Eq.{1} ((fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) p) (FunLike.coe.{succ u1, succ u1, 1} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (fun (f : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => (fun (x._@.Mathlib.Algebra.Order.Hom.Basic._hyg.99 : Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) => Int) f) (SubadditiveHomClass.toFunLike.{u1, u1, 0} (AbsoluteValue.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))) (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Distrib.toAdd.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))))))) (Distrib.toAdd.{0} Int (NonUnitalNonAssocSemiring.toDistrib.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int (OrderedSemiring.toSemiring.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))))) (Preorder.toLE.{0} Int (PartialOrder.toPreorder.{0} Int (OrderedSemiring.toPartialOrder.{0} Int (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing))))))) (AbsoluteValue.subadditiveHomClass.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.semiring.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2) p) (HPow.hPow.{0, 0, 0} Int Nat Int Int.instHPowIntNat (Nat.cast.{0} Int instNatCastInt (Fintype.card.{u1} Fq _inst_2)) (Polynomial.natDegree.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1))) p)))
+Case conversion may be inaccurate. Consider using '#align polynomial.card_pow_degree_nonzero Polynomial.cardPowDegree_nonzeroₓ'. -/
 @[simp]
 theorem cardPowDegree_nonzero (p : Fq[X]) (hp : p ≠ 0) :
     cardPowDegree p = Fintype.card Fq ^ p.natDegree :=
   if_neg hp
 #align polynomial.card_pow_degree_nonzero Polynomial.cardPowDegree_nonzero
 
+/- warning: polynomial.card_pow_degree_is_euclidean -> Polynomial.cardPowDegree_isEuclidean is a dubious translation:
+lean 3 declaration is
+  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq], AbsoluteValue.IsEuclidean.{u1, 0} (Polynomial.{u1} Fq (Ring.toSemiring.{u1} Fq (DivisionRing.toRing.{u1} Fq (Field.toDivisionRing.{u1} Fq _inst_1)))) Int (Polynomial.euclideanDomain.{u1} Fq _inst_1) (StrictOrderedSemiring.toOrderedSemiring.{0} Int (StrictOrderedRing.toStrictOrderedSemiring.{0} Int (LinearOrderedRing.toStrictOrderedRing.{0} Int (LinearOrderedCommRing.toLinearOrderedRing.{0} Int Int.linearOrderedCommRing)))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2)
+but is expected to have type
+  forall {Fq : Type.{u1}} [_inst_1 : Field.{u1} Fq] [_inst_2 : Fintype.{u1} Fq], AbsoluteValue.IsEuclidean.{u1, 0} (Polynomial.{u1} Fq (DivisionSemiring.toSemiring.{u1} Fq (Semifield.toDivisionSemiring.{u1} Fq (Field.toSemifield.{u1} Fq _inst_1)))) Int (Polynomial.instEuclideanDomainPolynomialToSemiringToDivisionSemiringToSemifield.{u1} Fq _inst_1) (OrderedCommSemiring.toOrderedSemiring.{0} Int (StrictOrderedCommSemiring.toOrderedCommSemiring.{0} Int (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{0} Int (LinearOrderedCommRing.toLinearOrderedCommSemiring.{0} Int Int.linearOrderedCommRing)))) (Polynomial.cardPowDegree.{u1} Fq _inst_1 _inst_2)
+Case conversion may be inaccurate. Consider using '#align polynomial.card_pow_degree_is_euclidean Polynomial.cardPowDegree_isEuclideanₓ'. -/
 theorem cardPowDegree_isEuclidean : IsEuclidean (cardPowDegree : AbsoluteValue Fq[X] ℤ) :=
   have card_pos : 0 < Fintype.card Fq := Fintype.card_pos_iff.mpr inferInstance
   have pow_pos : ∀ n, 0 < (Fintype.card Fq : ℤ) ^ n := fun n =>

Changes in mathlib4

mathlib3
mathlib4
chore: Rename coe_nat/coe_int/coe_rat to natCast/intCast/ratCast (#11499)

This is less exhaustive than its sibling #11486 because edge cases are harder to classify. No fundamental difficulty, just me being a bit fast and lazy.

Reduce the diff of #11203

Diff
@@ -42,7 +42,7 @@ open Polynomial
 noncomputable def cardPowDegree : AbsoluteValue Fq[X] ℤ :=
   have card_pos : 0 < Fintype.card Fq := Fintype.card_pos_iff.mpr inferInstance
   have pow_pos : ∀ n, 0 < (Fintype.card Fq : ℤ) ^ n := fun n =>
-    pow_pos (Int.coe_nat_pos.mpr card_pos) n
+    pow_pos (Int.natCast_pos.mpr card_pos) n
   letI := Classical.decEq Fq;
   { toFun := fun p => if p = 0 then 0 else (Fintype.card Fq : ℤ) ^ p.natDegree
     nonneg' := fun p => by
@@ -95,7 +95,7 @@ theorem cardPowDegree_nonzero (p : Fq[X]) (hp : p ≠ 0) :
 theorem cardPowDegree_isEuclidean : IsEuclidean (cardPowDegree : AbsoluteValue Fq[X] ℤ) :=
   have card_pos : 0 < Fintype.card Fq := Fintype.card_pos_iff.mpr inferInstance
   have pow_pos : ∀ n, 0 < (Fintype.card Fq : ℤ) ^ n := fun n =>
-    pow_pos (Int.coe_nat_pos.mpr card_pos) n
+    pow_pos (Int.natCast_pos.mpr card_pos) n
   { map_lt_map_iff' := fun {p q} => by
       classical
       show cardPowDegree p < cardPowDegree q ↔ degree p < degree q
move(Polynomial): Move out of Data (#11751)

Polynomial and MvPolynomial are algebraic objects, hence should be under Algebra (or at least not under Data)

Diff
@@ -3,9 +3,9 @@ Copyright (c) 2021 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
 -/
-import Mathlib.Algebra.Order.EuclideanAbsoluteValue
-import Mathlib.Data.Polynomial.FieldDivision
 import Mathlib.Algebra.GroupPower.Order
+import Mathlib.Algebra.Order.EuclideanAbsoluteValue
+import Mathlib.Algebra.Polynomial.FieldDivision
 
 #align_import data.polynomial.degree.card_pow_degree from "leanprover-community/mathlib"@"85d9f2189d9489f9983c0d01536575b0233bd305"
 
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -102,7 +102,7 @@ theorem cardPowDegree_isEuclidean : IsEuclidean (cardPowDegree : AbsoluteValue F
       simp only [cardPowDegree_apply]
       split_ifs with hp hq hq
       · simp only [hp, hq, lt_self_iff_false]
-      · simp only [hp, hq, degree_zero, Ne.def, bot_lt_iff_ne_bot, degree_eq_bot, pow_pos,
+      · simp only [hp, hq, degree_zero, Ne, bot_lt_iff_ne_bot, degree_eq_bot, pow_pos,
           not_false_iff]
       · simp only [hp, hq, degree_zero, not_lt_bot, (pow_pos _).not_lt]
       · rw [degree_eq_natDegree hp, degree_eq_natDegree hq, Nat.cast_lt, pow_lt_pow_iff_right]
refactor: optimize proofs with omega (#11093)

I ran tryAtEachStep on all files under Mathlib to find all locations where omega succeeds. For each that was a linarith without an only, I tried replacing it with omega, and I verified that elaboration time got smaller. (In almost all cases, there was a noticeable speedup.) I also replaced some slow aesops along the way.

Diff
@@ -62,10 +62,10 @@ noncomputable def cardPowDegree : AbsoluteValue Fq[X] ℤ :=
       · simp only [hpq, hp, hq, eq_self_iff_true, if_true, if_false]
         exact add_nonneg (pow_pos _).le (pow_pos _).le
       simp only [hpq, hp, hq, if_false]
-      refine' le_trans (pow_le_pow_right (by linarith) (Polynomial.natDegree_add_le _ _)) _
+      refine' le_trans (pow_le_pow_right (by omega) (Polynomial.natDegree_add_le _ _)) _
       refine'
         le_trans (le_max_iff.mpr _)
-          (max_le_add_of_nonneg (pow_nonneg (by linarith) _) (pow_nonneg (by linarith) _))
+          (max_le_add_of_nonneg (pow_nonneg (by omega) _) (pow_nonneg (by omega) _))
       exact (max_choice p.natDegree q.natDegree).imp (fun h => by rw [h]) fun h => by rw [h]
     map_mul' := fun p q => by
       by_cases hp : p = 0; · simp [hp]
fix: shake the import tree (#9749)

cherry-picked from #9347

Co-Authored-By: @digama0

Diff
@@ -5,6 +5,7 @@ Authors: Anne Baanen
 -/
 import Mathlib.Algebra.Order.EuclideanAbsoluteValue
 import Mathlib.Data.Polynomial.FieldDivision
+import Mathlib.Algebra.GroupPower.Order
 
 #align_import data.polynomial.degree.card_pow_degree from "leanprover-community/mathlib"@"85d9f2189d9489f9983c0d01536575b0233bd305"
 
chore: Rename pow monotonicity lemmas (#9095)

The names for lemmas about monotonicity of (a ^ ·) and (· ^ n) were a mess. This PR tidies up everything related by following the naming convention for (a * ·) and (· * b). Namely, (a ^ ·) is pow_right and (· ^ n) is pow_left in lemma names. All lemma renames follow the corresponding multiplication lemma names closely.

Renames

Algebra.GroupPower.Order

  • pow_monopow_right_mono
  • pow_le_powpow_le_pow_right
  • pow_le_pow_of_le_leftpow_le_pow_left
  • pow_lt_pow_of_lt_leftpow_lt_pow_left
  • strictMonoOn_powpow_left_strictMonoOn
  • pow_strictMono_rightpow_right_strictMono
  • pow_lt_powpow_lt_pow_right
  • pow_lt_pow_iffpow_lt_pow_iff_right
  • pow_le_pow_iffpow_le_pow_iff_right
  • self_lt_powlt_self_pow
  • strictAnti_powpow_right_strictAnti
  • pow_lt_pow_iff_of_lt_onepow_lt_pow_iff_right_of_lt_one
  • pow_lt_pow_of_lt_onepow_lt_pow_right_of_lt_one
  • lt_of_pow_lt_powlt_of_pow_lt_pow_left
  • le_of_pow_le_powle_of_pow_le_pow_left
  • pow_lt_pow₀pow_lt_pow_right₀

Algebra.GroupPower.CovariantClass

  • pow_le_pow_of_le_left'pow_le_pow_left'
  • nsmul_le_nsmul_of_le_rightnsmul_le_nsmul_right
  • pow_lt_pow'pow_lt_pow_right'
  • nsmul_lt_nsmulnsmul_lt_nsmul_left
  • pow_strictMono_leftpow_right_strictMono'
  • nsmul_strictMono_rightnsmul_left_strictMono
  • StrictMono.pow_right'StrictMono.pow_const
  • StrictMono.nsmul_leftStrictMono.const_nsmul
  • pow_strictMono_right'pow_left_strictMono
  • nsmul_strictMono_leftnsmul_right_strictMono
  • Monotone.pow_rightMonotone.pow_const
  • Monotone.nsmul_leftMonotone.const_nsmul
  • lt_of_pow_lt_pow'lt_of_pow_lt_pow_left'
  • lt_of_nsmul_lt_nsmullt_of_nsmul_lt_nsmul_right
  • pow_le_pow'pow_le_pow_right'
  • nsmul_le_nsmulnsmul_le_nsmul_left
  • pow_le_pow_of_le_one'pow_le_pow_right_of_le_one'
  • nsmul_le_nsmul_of_nonposnsmul_le_nsmul_left_of_nonpos
  • le_of_pow_le_pow'le_of_pow_le_pow_left'
  • le_of_nsmul_le_nsmul'le_of_nsmul_le_nsmul_right'
  • pow_le_pow_iff'pow_le_pow_iff_right'
  • nsmul_le_nsmul_iffnsmul_le_nsmul_iff_left
  • pow_lt_pow_iff'pow_lt_pow_iff_right'
  • nsmul_lt_nsmul_iffnsmul_lt_nsmul_iff_left

Data.Nat.Pow

  • Nat.pow_lt_pow_of_lt_leftNat.pow_lt_pow_left
  • Nat.pow_le_iff_le_leftNat.pow_le_pow_iff_left
  • Nat.pow_lt_iff_lt_leftNat.pow_lt_pow_iff_left

Lemmas added

  • pow_le_pow_iff_left
  • pow_lt_pow_iff_left
  • pow_right_injective
  • pow_right_inj
  • Nat.pow_le_pow_left to have the correct name since Nat.pow_le_pow_of_le_left is in Std.
  • Nat.pow_le_pow_right to have the correct name since Nat.pow_le_pow_of_le_right is in Std.

Lemmas removed

  • self_le_pow was a duplicate of le_self_pow.
  • Nat.pow_lt_pow_of_lt_right is defeq to pow_lt_pow_right.
  • Nat.pow_right_strictMono is defeq to pow_right_strictMono.
  • Nat.pow_le_iff_le_right is defeq to pow_le_pow_iff_right.
  • Nat.pow_lt_iff_lt_right is defeq to pow_lt_pow_iff_right.

Other changes

  • A bunch of proofs have been golfed.
  • Some lemma assumptions have been turned from 0 < n or 1 ≤ n to n ≠ 0.
  • A few Nat lemmas have been protected.
  • One docstring has been fixed.
Diff
@@ -61,7 +61,7 @@ noncomputable def cardPowDegree : AbsoluteValue Fq[X] ℤ :=
       · simp only [hpq, hp, hq, eq_self_iff_true, if_true, if_false]
         exact add_nonneg (pow_pos _).le (pow_pos _).le
       simp only [hpq, hp, hq, if_false]
-      refine' le_trans (pow_le_pow (by linarith) (Polynomial.natDegree_add_le _ _)) _
+      refine' le_trans (pow_le_pow_right (by linarith) (Polynomial.natDegree_add_le _ _)) _
       refine'
         le_trans (le_max_iff.mpr _)
           (max_le_add_of_nonneg (pow_nonneg (by linarith) _) (pow_nonneg (by linarith) _))
@@ -104,7 +104,7 @@ theorem cardPowDegree_isEuclidean : IsEuclidean (cardPowDegree : AbsoluteValue F
       · simp only [hp, hq, degree_zero, Ne.def, bot_lt_iff_ne_bot, degree_eq_bot, pow_pos,
           not_false_iff]
       · simp only [hp, hq, degree_zero, not_lt_bot, (pow_pos _).not_lt]
-      · rw [degree_eq_natDegree hp, degree_eq_natDegree hq, Nat.cast_lt, pow_lt_pow_iff]
+      · rw [degree_eq_natDegree hp, degree_eq_natDegree hq, Nat.cast_lt, pow_lt_pow_iff_right]
         exact mod_cast @Fintype.one_lt_card Fq _ _ }
 #align polynomial.card_pow_degree_is_euclidean Polynomial.cardPowDegree_isEuclidean
 
chore: replace exact_mod_cast tactic with mod_cast elaborator where possible (#8404)

We still have the exact_mod_cast tactic, used in a few places, which somehow (?) works a little bit harder to prevent the expected type influencing the elaboration of the term. I would like to get to the bottom of this, and it will be easier once the only usages of exact_mod_cast are the ones that don't work using the term elaborator by itself.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -105,7 +105,7 @@ theorem cardPowDegree_isEuclidean : IsEuclidean (cardPowDegree : AbsoluteValue F
           not_false_iff]
       · simp only [hp, hq, degree_zero, not_lt_bot, (pow_pos _).not_lt]
       · rw [degree_eq_natDegree hp, degree_eq_natDegree hq, Nat.cast_lt, pow_lt_pow_iff]
-        exact_mod_cast @Fintype.one_lt_card Fq _ _ }
+        exact mod_cast @Fintype.one_lt_card Fq _ _ }
 #align polynomial.card_pow_degree_is_euclidean Polynomial.cardPowDegree_isEuclidean
 
 end Polynomial
refactor(Data/Polynomial): remove open Classical (#7706)

This doesn't change any polynomial operations, but:

  • Makes some Decidable values computable (otherwise, they're pointless!)
  • Add a few missing arguments to lemmas here and there to make them more general

This is exhaustive, within the directories it touches.

Once again, the use of letI := Classical.decEq R instead of classical here is because of the weird style of proofs in these files, where if is preferred to by_cases.

Diff
@@ -33,7 +33,7 @@ variable {Fq : Type*} [Field Fq] [Fintype Fq]
 
 open AbsoluteValue
 
-open Classical Polynomial
+open Polynomial
 
 /-- `cardPowDegree` is the absolute value on `𝔽_q[t]` sending `f` to `q ^ degree f`.
 
@@ -42,6 +42,7 @@ noncomputable def cardPowDegree : AbsoluteValue Fq[X] ℤ :=
   have card_pos : 0 < Fintype.card Fq := Fintype.card_pos_iff.mpr inferInstance
   have pow_pos : ∀ n, 0 < (Fintype.card Fq : ℤ) ^ n := fun n =>
     pow_pos (Int.coe_nat_pos.mpr card_pos) n
+  letI := Classical.decEq Fq;
   { toFun := fun p => if p = 0 then 0 else (Fintype.card Fq : ℤ) ^ p.natDegree
     nonneg' := fun p => by
       dsimp
@@ -73,9 +74,11 @@ noncomputable def cardPowDegree : AbsoluteValue Fq[X] ℤ :=
         pow_add] }
 #align polynomial.card_pow_degree Polynomial.cardPowDegree
 
-theorem cardPowDegree_apply (p : Fq[X]) :
-    cardPowDegree p = if p = 0 then 0 else (Fintype.card Fq : ℤ) ^ natDegree p :=
-  rfl
+theorem cardPowDegree_apply [DecidableEq Fq] (p : Fq[X]) :
+    cardPowDegree p = if p = 0 then 0 else (Fintype.card Fq : ℤ) ^ natDegree p := by
+  rw [cardPowDegree]
+  dsimp
+  convert rfl
 #align polynomial.card_pow_degree_apply Polynomial.cardPowDegree_apply
 
 @[simp, nolint simpNF]
@@ -93,6 +96,7 @@ theorem cardPowDegree_isEuclidean : IsEuclidean (cardPowDegree : AbsoluteValue F
   have pow_pos : ∀ n, 0 < (Fintype.card Fq : ℤ) ^ n := fun n =>
     pow_pos (Int.coe_nat_pos.mpr card_pos) n
   { map_lt_map_iff' := fun {p q} => by
+      classical
       show cardPowDegree p < cardPowDegree q ↔ degree p < degree q
       simp only [cardPowDegree_apply]
       split_ifs with hp hq hq
feat: WithTop.charZero (#6992)

Also WithBot.charZero

Diff
@@ -100,8 +100,7 @@ theorem cardPowDegree_isEuclidean : IsEuclidean (cardPowDegree : AbsoluteValue F
       · simp only [hp, hq, degree_zero, Ne.def, bot_lt_iff_ne_bot, degree_eq_bot, pow_pos,
           not_false_iff]
       · simp only [hp, hq, degree_zero, not_lt_bot, (pow_pos _).not_lt]
-      · rw [degree_eq_natDegree hp, degree_eq_natDegree hq, Nat.cast_withBot, Nat.cast_withBot,
-          WithBot.coe_lt_coe, pow_lt_pow_iff]
+      · rw [degree_eq_natDegree hp, degree_eq_natDegree hq, Nat.cast_lt, pow_lt_pow_iff]
         exact_mod_cast @Fintype.one_lt_card Fq _ _ }
 #align polynomial.card_pow_degree_is_euclidean Polynomial.cardPowDegree_isEuclidean
 
feat: Add a DecidableEq instance for Polynomial (#5942)

Add a DecidableEq instance for Polynomial (in the presence of DecidableEq for coefficients).

This instance is the companion of an analogue instance for MvPolynomial, and it allows to use if… then… else for Polynomial without having to open Classical.

This also makes Polynomial.instNormalizationMonoid computable, by defining it in terms of this new instance.

Co-authored-by: Antoine Chambert-Loir <antoine.chambert-loir@math.univ-paris-diderot.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -78,9 +78,8 @@ theorem cardPowDegree_apply (p : Fq[X]) :
   rfl
 #align polynomial.card_pow_degree_apply Polynomial.cardPowDegree_apply
 
--- @[simp] -- Porting note: simp can prove this
-theorem cardPowDegree_zero : cardPowDegree (0 : Fq[X]) = 0 :=
-  if_pos rfl
+@[simp, nolint simpNF]
+theorem cardPowDegree_zero : cardPowDegree (0 : Fq[X]) = 0 := rfl
 #align polynomial.card_pow_degree_zero Polynomial.cardPowDegree_zero
 
 @[simp]
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -29,7 +29,7 @@ to `q ^ degree p` (where `q ^ degree 0 = 0`) is an absolute value.
 
 namespace Polynomial
 
-variable {Fq : Type _} [Field Fq] [Fintype Fq]
+variable {Fq : Type*} [Field Fq] [Fintype Fq]
 
 open AbsoluteValue
 
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 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Anne Baanen
-
-! This file was ported from Lean 3 source module data.polynomial.degree.card_pow_degree
-! leanprover-community/mathlib commit 85d9f2189d9489f9983c0d01536575b0233bd305
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Order.EuclideanAbsoluteValue
 import Mathlib.Data.Polynomial.FieldDivision
 
+#align_import data.polynomial.degree.card_pow_degree from "leanprover-community/mathlib"@"85d9f2189d9489f9983c0d01536575b0233bd305"
+
 /-!
 # Absolute value on polynomials over a finite field.
 
feat: port Data.Polynomial.Degree.CardPowDegree (#3134)

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Dependencies 8 + 504

505 files ported (98.4%)
210973 lines ported (98.5%)
Show graph

The unported dependencies are