linear_algebra.projective_space.independenceMathlib.LinearAlgebra.Projectivization.Independence

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Michael Blyth. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Michael Blyth
 -/
-import LinearAlgebra.ProjectiveSpace.Basic
+import LinearAlgebra.Projectivization.Basic
 
 #align_import linear_algebra.projective_space.independence from "leanprover-community/mathlib"@"ef55335933293309ff8c0b1d20ffffeecbe5c39f"
 
Diff
@@ -129,8 +129,8 @@ theorem dependent_pair_iff_eq (u v : ℙ K V) : Dependent ![u, v] ↔ u = v :=
   by
   simp_rw [dependent_iff_not_independent, independent_iff, linearIndependent_fin2,
     Function.comp_apply, Matrix.cons_val_one, Matrix.head_cons, Ne.def, Matrix.cons_val_zero,
-    not_and, not_forall, Classical.not_not, ← mk_eq_mk_iff' K _ _ (rep_nonzero u) (rep_nonzero v),
-    mk_rep, imp_iff_right_iff]
+    not_and, Classical.not_forall, Classical.not_not, ←
+    mk_eq_mk_iff' K _ _ (rep_nonzero u) (rep_nonzero v), mk_rep, imp_iff_right_iff]
   exact Or.inl (rep_nonzero v)
 #align projectivization.dependent_pair_iff_eq Projectivization.dependent_pair_iff_eq
 -/
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Michael Blyth. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Michael Blyth
 -/
-import Mathbin.LinearAlgebra.ProjectiveSpace.Basic
+import LinearAlgebra.ProjectiveSpace.Basic
 
 #align_import linear_algebra.projective_space.independence from "leanprover-community/mathlib"@"ef55335933293309ff8c0b1d20ffffeecbe5c39f"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2022 Michael Blyth. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Michael Blyth
-
-! This file was ported from Lean 3 source module linear_algebra.projective_space.independence
-! leanprover-community/mathlib commit ef55335933293309ff8c0b1d20ffffeecbe5c39f
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.LinearAlgebra.ProjectiveSpace.Basic
 
+#align_import linear_algebra.projective_space.independence from "leanprover-community/mathlib"@"ef55335933293309ff8c0b1d20ffffeecbe5c39f"
+
 /-!
 # Independence in Projective Space
 
Diff
@@ -51,6 +51,7 @@ inductive Independent : (ι → ℙ K V) → Prop
 #align projectivization.independent Projectivization.Independent
 -/
 
+#print Projectivization.independent_iff /-
 /-- A family of points in a projective space is independent if and only if the representative
 vectors determined by the family are linearly independent. -/
 theorem independent_iff : Independent f ↔ LinearIndependent K (Projectivization.rep ∘ f) :=
@@ -64,7 +65,9 @@ theorem independent_iff : Independent f ↔ LinearIndependent K (Projectivizatio
     · ext; simp only [mk_rep]
     · intro i; apply rep_nonzero
 #align projectivization.independent_iff Projectivization.independent_iff
+-/
 
+#print Projectivization.independent_iff_completeLattice_independent /-
 /-- A family of points in projective space is independent if and only if the family of
 submodules which the points determine is independent in the lattice-theoretic sense. -/
 theorem independent_iff_completeLattice_independent :
@@ -78,6 +81,7 @@ theorem independent_iff_completeLattice_independent :
     · simpa only [Function.comp_apply, submodule_eq] using Submodule.mem_span_singleton_self _
     · exact rep_nonzero (f i)
 #align projectivization.independent_iff_complete_lattice_independent Projectivization.independent_iff_completeLattice_independent
+-/
 
 #print Projectivization.Dependent /-
 /-- A linearly dependent family of nonzero vectors gives a dependent family of points
@@ -89,6 +93,7 @@ inductive Dependent : (ι → ℙ K V) → Prop
 #align projectivization.dependent Projectivization.Dependent
 -/
 
+#print Projectivization.dependent_iff /-
 /-- A family of points in a projective space is dependent if and only if their
 representatives are linearly dependent. -/
 theorem dependent_iff : Dependent f ↔ ¬LinearIndependent K (Projectivization.rep ∘ f) :=
@@ -104,17 +109,23 @@ theorem dependent_iff : Dependent f ↔ ¬LinearIndependent K (Projectivization.
     · ext i; simp only [mk_rep]
     · exact fun i => rep_nonzero (f i)
 #align projectivization.dependent_iff Projectivization.dependent_iff
+-/
 
+#print Projectivization.dependent_iff_not_independent /-
 /-- Dependence is the negation of independence. -/
 theorem dependent_iff_not_independent : Dependent f ↔ ¬Independent f := by
   rw [dependent_iff, independent_iff]
 #align projectivization.dependent_iff_not_independent Projectivization.dependent_iff_not_independent
+-/
 
+#print Projectivization.independent_iff_not_dependent /-
 /-- Independence is the negation of dependence. -/
 theorem independent_iff_not_dependent : Independent f ↔ ¬Dependent f := by
   rw [dependent_iff_not_independent, Classical.not_not]
 #align projectivization.independent_iff_not_dependent Projectivization.independent_iff_not_dependent
+-/
 
+#print Projectivization.dependent_pair_iff_eq /-
 /-- Two points in a projective space are dependent if and only if they are equal. -/
 @[simp]
 theorem dependent_pair_iff_eq (u v : ℙ K V) : Dependent ![u, v] ↔ u = v :=
@@ -125,12 +136,15 @@ theorem dependent_pair_iff_eq (u v : ℙ K V) : Dependent ![u, v] ↔ u = v :=
     mk_rep, imp_iff_right_iff]
   exact Or.inl (rep_nonzero v)
 #align projectivization.dependent_pair_iff_eq Projectivization.dependent_pair_iff_eq
+-/
 
+#print Projectivization.independent_pair_iff_neq /-
 /-- Two points in a projective space are independent if and only if the points are not equal. -/
 @[simp]
 theorem independent_pair_iff_neq (u v : ℙ K V) : Independent ![u, v] ↔ u ≠ v := by
   rw [independent_iff_not_dependent, dependent_pair_iff_eq u v]
 #align projectivization.independent_pair_iff_neq Projectivization.independent_pair_iff_neq
+-/
 
 end Projectivization
 
Diff
@@ -51,12 +51,6 @@ inductive Independent : (ι → ℙ K V) → Prop
 #align projectivization.independent Projectivization.Independent
 -/
 
-/- warning: projectivization.independent_iff -> Projectivization.independent_iff is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {K : Type.{u2}} {V : Type.{u3}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u3} V] [_inst_3 : Module.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2)] {f : ι -> (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f) (LinearIndependent.{u1, u2, u3} ι K V (Function.comp.{succ u1, succ u3, succ u3} ι (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) V (Projectivization.rep.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) f) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2) _inst_3)
-but is expected to have type
-  forall {ι : Type.{u3}} {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] {f : ι -> (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f) (LinearIndependent.{u3, u2, u1} ι K V (Function.comp.{succ u3, succ u1, succ u1} ι (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) V (Projectivization.rep.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) f) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2) _inst_3)
-Case conversion may be inaccurate. Consider using '#align projectivization.independent_iff Projectivization.independent_iffₓ'. -/
 /-- A family of points in a projective space is independent if and only if the representative
 vectors determined by the family are linearly independent. -/
 theorem independent_iff : Independent f ↔ LinearIndependent K (Projectivization.rep ∘ f) :=
@@ -71,12 +65,6 @@ theorem independent_iff : Independent f ↔ LinearIndependent K (Projectivizatio
     · intro i; apply rep_nonzero
 #align projectivization.independent_iff Projectivization.independent_iff
 
-/- warning: projectivization.independent_iff_complete_lattice_independent -> Projectivization.independent_iff_completeLattice_independent is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {K : Type.{u2}} {V : Type.{u3}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u3} V] [_inst_3 : Module.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2)] {f : ι -> (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f) (CompleteLattice.Independent.{succ u1, u3} ι (Submodule.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2) _inst_3) (fun (i : ι) => Projectivization.submodule.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3 (f i)))
-but is expected to have type
-  forall {ι : Type.{u3}} {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] {f : ι -> (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f) (CompleteLattice.Independent.{succ u3, u1} ι (Submodule.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (DivisionRing.toDivisionSemiring.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2) _inst_3) (Submodule.completeLattice.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (DivisionRing.toDivisionSemiring.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2) _inst_3) (fun (i : ι) => Projectivization.submodule.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3 (f i)))
-Case conversion may be inaccurate. Consider using '#align projectivization.independent_iff_complete_lattice_independent Projectivization.independent_iff_completeLattice_independentₓ'. -/
 /-- A family of points in projective space is independent if and only if the family of
 submodules which the points determine is independent in the lattice-theoretic sense. -/
 theorem independent_iff_completeLattice_independent :
@@ -101,12 +89,6 @@ inductive Dependent : (ι → ℙ K V) → Prop
 #align projectivization.dependent Projectivization.Dependent
 -/
 
-/- warning: projectivization.dependent_iff -> Projectivization.dependent_iff is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {K : Type.{u2}} {V : Type.{u3}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u3} V] [_inst_3 : Module.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2)] {f : ι -> (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Dependent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f) (Not (LinearIndependent.{u1, u2, u3} ι K V (Function.comp.{succ u1, succ u3, succ u3} ι (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) V (Projectivization.rep.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) f) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2) _inst_3))
-but is expected to have type
-  forall {ι : Type.{u3}} {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] {f : ι -> (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Dependent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f) (Not (LinearIndependent.{u3, u2, u1} ι K V (Function.comp.{succ u3, succ u1, succ u1} ι (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) V (Projectivization.rep.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) f) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2) _inst_3))
-Case conversion may be inaccurate. Consider using '#align projectivization.dependent_iff Projectivization.dependent_iffₓ'. -/
 /-- A family of points in a projective space is dependent if and only if their
 representatives are linearly dependent. -/
 theorem dependent_iff : Dependent f ↔ ¬LinearIndependent K (Projectivization.rep ∘ f) :=
@@ -123,34 +105,16 @@ theorem dependent_iff : Dependent f ↔ ¬LinearIndependent K (Projectivization.
     · exact fun i => rep_nonzero (f i)
 #align projectivization.dependent_iff Projectivization.dependent_iff
 
-/- warning: projectivization.dependent_iff_not_independent -> Projectivization.dependent_iff_not_independent is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {K : Type.{u2}} {V : Type.{u3}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u3} V] [_inst_3 : Module.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2)] {f : ι -> (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Dependent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f) (Not (Projectivization.Independent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f))
-but is expected to have type
-  forall {ι : Type.{u3}} {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] {f : ι -> (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Dependent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f) (Not (Projectivization.Independent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f))
-Case conversion may be inaccurate. Consider using '#align projectivization.dependent_iff_not_independent Projectivization.dependent_iff_not_independentₓ'. -/
 /-- Dependence is the negation of independence. -/
 theorem dependent_iff_not_independent : Dependent f ↔ ¬Independent f := by
   rw [dependent_iff, independent_iff]
 #align projectivization.dependent_iff_not_independent Projectivization.dependent_iff_not_independent
 
-/- warning: projectivization.independent_iff_not_dependent -> Projectivization.independent_iff_not_dependent is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {K : Type.{u2}} {V : Type.{u3}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u3} V] [_inst_3 : Module.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2)] {f : ι -> (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f) (Not (Projectivization.Dependent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f))
-but is expected to have type
-  forall {ι : Type.{u3}} {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] {f : ι -> (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f) (Not (Projectivization.Dependent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f))
-Case conversion may be inaccurate. Consider using '#align projectivization.independent_iff_not_dependent Projectivization.independent_iff_not_dependentₓ'. -/
 /-- Independence is the negation of dependence. -/
 theorem independent_iff_not_dependent : Independent f ↔ ¬Dependent f := by
   rw [dependent_iff_not_independent, Classical.not_not]
 #align projectivization.independent_iff_not_dependent Projectivization.independent_iff_not_dependent
 
-/- warning: projectivization.dependent_pair_iff_eq -> Projectivization.dependent_pair_iff_eq is a dubious translation:
-lean 3 declaration is
-  forall {K : Type.{u1}} {V : Type.{u2}} [_inst_1 : Field.{u1} K] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} K V (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] (u : Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (v : Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3), Iff (Projectivization.Dependent.{0, u1, u2} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))))) K V _inst_1 _inst_2 _inst_3 (Matrix.vecCons.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) u (Matrix.vecCons.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) v (Matrix.vecEmpty.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3))))) (Eq.{succ u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) u v)
-but is expected to have type
-  forall {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] (u : Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (v : Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3), Iff (Projectivization.Dependent.{0, u2, u1} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) K V _inst_1 _inst_2 _inst_3 (Matrix.vecCons.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) u (Matrix.vecCons.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) v (Matrix.vecEmpty.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3))))) (Eq.{succ u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) u v)
-Case conversion may be inaccurate. Consider using '#align projectivization.dependent_pair_iff_eq Projectivization.dependent_pair_iff_eqₓ'. -/
 /-- Two points in a projective space are dependent if and only if they are equal. -/
 @[simp]
 theorem dependent_pair_iff_eq (u v : ℙ K V) : Dependent ![u, v] ↔ u = v :=
@@ -162,12 +126,6 @@ theorem dependent_pair_iff_eq (u v : ℙ K V) : Dependent ![u, v] ↔ u = v :=
   exact Or.inl (rep_nonzero v)
 #align projectivization.dependent_pair_iff_eq Projectivization.dependent_pair_iff_eq
 
-/- warning: projectivization.independent_pair_iff_neq -> Projectivization.independent_pair_iff_neq is a dubious translation:
-lean 3 declaration is
-  forall {K : Type.{u1}} {V : Type.{u2}} [_inst_1 : Field.{u1} K] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} K V (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] (u : Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (v : Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3), Iff (Projectivization.Independent.{0, u1, u2} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))))) K V _inst_1 _inst_2 _inst_3 (Matrix.vecCons.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) u (Matrix.vecCons.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) v (Matrix.vecEmpty.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3))))) (Ne.{succ u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) u v)
-but is expected to have type
-  forall {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] (u : Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (v : Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3), Iff (Projectivization.Independent.{0, u2, u1} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) K V _inst_1 _inst_2 _inst_3 (Matrix.vecCons.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) u (Matrix.vecCons.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) v (Matrix.vecEmpty.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3))))) (Ne.{succ u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) u v)
-Case conversion may be inaccurate. Consider using '#align projectivization.independent_pair_iff_neq Projectivization.independent_pair_iff_neqₓ'. -/
 /-- Two points in a projective space are independent if and only if the points are not equal. -/
 @[simp]
 theorem independent_pair_iff_neq (u v : ℙ K V) : Independent ![u, v] ↔ u ≠ v := by
Diff
@@ -65,13 +65,10 @@ theorem independent_iff : Independent f ↔ LinearIndependent K (Projectivizatio
   · rintro ⟨ff, hff, hh⟩
     choose a ha using fun i : ι => exists_smul_eq_mk_rep K (ff i) (hff i)
     convert hh.units_smul a
-    ext i
-    exact (ha i).symm
+    ext i; exact (ha i).symm
   · convert independent.mk _ _ h
-    · ext
-      simp only [mk_rep]
-    · intro i
-      apply rep_nonzero
+    · ext; simp only [mk_rep]
+    · intro i; apply rep_nonzero
 #align projectivization.independent_iff Projectivization.independent_iff
 
 /- warning: projectivization.independent_iff_complete_lattice_independent -> Projectivization.independent_iff_completeLattice_independent is a dubious translation:
@@ -122,8 +119,7 @@ theorem dependent_iff : Dependent f ↔ ¬LinearIndependent K (Projectivization.
     ext i
     simp only [← ha, inv_smul_smul, Pi.smul_apply', Pi.inv_apply, Function.comp_apply]
   · convert dependent.mk _ _ h
-    · ext i
-      simp only [mk_rep]
+    · ext i; simp only [mk_rep]
     · exact fun i => rep_nonzero (f i)
 #align projectivization.dependent_iff Projectivization.dependent_iff
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Michael Blyth
 
 ! This file was ported from Lean 3 source module linear_algebra.projective_space.independence
-! leanprover-community/mathlib commit 1e82f5ec4645f6a92bb9e02fce51e44e3bc3e1fe
+! leanprover-community/mathlib commit ef55335933293309ff8c0b1d20ffffeecbe5c39f
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.LinearAlgebra.ProjectiveSpace.Basic
 /-!
 # Independence in Projective Space
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file we define independence and dependence of families of elements in projective space.
 
 ## Implementation Details
Diff
@@ -38,6 +38,7 @@ variable {ι K V : Type _} [Field K] [AddCommGroup V] [Module K V] {f : ι → 
 
 namespace Projectivization
 
+#print Projectivization.Independent /-
 /-- A linearly independent family of nonzero vectors gives an independent family of points
 in projective space. -/
 inductive Independent : (ι → ℙ K V) → Prop
@@ -45,7 +46,14 @@ inductive Independent : (ι → ℙ K V) → Prop
   mk (f : ι → V) (hf : ∀ i : ι, f i ≠ 0) (hl : LinearIndependent K f) :
     independent fun i => mk K (f i) (hf i)
 #align projectivization.independent Projectivization.Independent
+-/
 
+/- warning: projectivization.independent_iff -> Projectivization.independent_iff is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {K : Type.{u2}} {V : Type.{u3}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u3} V] [_inst_3 : Module.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2)] {f : ι -> (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f) (LinearIndependent.{u1, u2, u3} ι K V (Function.comp.{succ u1, succ u3, succ u3} ι (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) V (Projectivization.rep.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) f) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2) _inst_3)
+but is expected to have type
+  forall {ι : Type.{u3}} {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] {f : ι -> (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f) (LinearIndependent.{u3, u2, u1} ι K V (Function.comp.{succ u3, succ u1, succ u1} ι (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) V (Projectivization.rep.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) f) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2) _inst_3)
+Case conversion may be inaccurate. Consider using '#align projectivization.independent_iff Projectivization.independent_iffₓ'. -/
 /-- A family of points in a projective space is independent if and only if the representative
 vectors determined by the family are linearly independent. -/
 theorem independent_iff : Independent f ↔ LinearIndependent K (Projectivization.rep ∘ f) :=
@@ -63,6 +71,12 @@ theorem independent_iff : Independent f ↔ LinearIndependent K (Projectivizatio
       apply rep_nonzero
 #align projectivization.independent_iff Projectivization.independent_iff
 
+/- warning: projectivization.independent_iff_complete_lattice_independent -> Projectivization.independent_iff_completeLattice_independent is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {K : Type.{u2}} {V : Type.{u3}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u3} V] [_inst_3 : Module.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2)] {f : ι -> (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f) (CompleteLattice.Independent.{succ u1, u3} ι (Submodule.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2) _inst_3) (fun (i : ι) => Projectivization.submodule.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3 (f i)))
+but is expected to have type
+  forall {ι : Type.{u3}} {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] {f : ι -> (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f) (CompleteLattice.Independent.{succ u3, u1} ι (Submodule.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (DivisionRing.toDivisionSemiring.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2) _inst_3) (Submodule.completeLattice.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (DivisionRing.toDivisionSemiring.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2) _inst_3) (fun (i : ι) => Projectivization.submodule.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3 (f i)))
+Case conversion may be inaccurate. Consider using '#align projectivization.independent_iff_complete_lattice_independent Projectivization.independent_iff_completeLattice_independentₓ'. -/
 /-- A family of points in projective space is independent if and only if the family of
 submodules which the points determine is independent in the lattice-theoretic sense. -/
 theorem independent_iff_completeLattice_independent :
@@ -77,6 +91,7 @@ theorem independent_iff_completeLattice_independent :
     · exact rep_nonzero (f i)
 #align projectivization.independent_iff_complete_lattice_independent Projectivization.independent_iff_completeLattice_independent
 
+#print Projectivization.Dependent /-
 /-- A linearly dependent family of nonzero vectors gives a dependent family of points
 in projective space. -/
 inductive Dependent : (ι → ℙ K V) → Prop
@@ -84,7 +99,14 @@ inductive Dependent : (ι → ℙ K V) → Prop
   mk (f : ι → V) (hf : ∀ i : ι, f i ≠ 0) (h : ¬LinearIndependent K f) :
     dependent fun i => mk K (f i) (hf i)
 #align projectivization.dependent Projectivization.Dependent
+-/
 
+/- warning: projectivization.dependent_iff -> Projectivization.dependent_iff is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {K : Type.{u2}} {V : Type.{u3}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u3} V] [_inst_3 : Module.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2)] {f : ι -> (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Dependent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f) (Not (LinearIndependent.{u1, u2, u3} ι K V (Function.comp.{succ u1, succ u3, succ u3} ι (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) V (Projectivization.rep.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) f) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2) _inst_3))
+but is expected to have type
+  forall {ι : Type.{u3}} {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] {f : ι -> (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Dependent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f) (Not (LinearIndependent.{u3, u2, u1} ι K V (Function.comp.{succ u3, succ u1, succ u1} ι (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) V (Projectivization.rep.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) f) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2) _inst_3))
+Case conversion may be inaccurate. Consider using '#align projectivization.dependent_iff Projectivization.dependent_iffₓ'. -/
 /-- A family of points in a projective space is dependent if and only if their
 representatives are linearly dependent. -/
 theorem dependent_iff : Dependent f ↔ ¬LinearIndependent K (Projectivization.rep ∘ f) :=
@@ -102,16 +124,34 @@ theorem dependent_iff : Dependent f ↔ ¬LinearIndependent K (Projectivization.
     · exact fun i => rep_nonzero (f i)
 #align projectivization.dependent_iff Projectivization.dependent_iff
 
+/- warning: projectivization.dependent_iff_not_independent -> Projectivization.dependent_iff_not_independent is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {K : Type.{u2}} {V : Type.{u3}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u3} V] [_inst_3 : Module.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2)] {f : ι -> (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Dependent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f) (Not (Projectivization.Independent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f))
+but is expected to have type
+  forall {ι : Type.{u3}} {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] {f : ι -> (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Dependent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f) (Not (Projectivization.Independent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f))
+Case conversion may be inaccurate. Consider using '#align projectivization.dependent_iff_not_independent Projectivization.dependent_iff_not_independentₓ'. -/
 /-- Dependence is the negation of independence. -/
 theorem dependent_iff_not_independent : Dependent f ↔ ¬Independent f := by
   rw [dependent_iff, independent_iff]
 #align projectivization.dependent_iff_not_independent Projectivization.dependent_iff_not_independent
 
+/- warning: projectivization.independent_iff_not_dependent -> Projectivization.independent_iff_not_dependent is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {K : Type.{u2}} {V : Type.{u3}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u3} V] [_inst_3 : Module.{u2, u3} K V (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u3} V _inst_2)] {f : ι -> (Projectivization.{u2, u3} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f) (Not (Projectivization.Dependent.{u1, u2, u3} ι K V _inst_1 _inst_2 _inst_3 f))
+but is expected to have type
+  forall {ι : Type.{u3}} {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] {f : ι -> (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3)}, Iff (Projectivization.Independent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f) (Not (Projectivization.Dependent.{u3, u2, u1} ι K V _inst_1 _inst_2 _inst_3 f))
+Case conversion may be inaccurate. Consider using '#align projectivization.independent_iff_not_dependent Projectivization.independent_iff_not_dependentₓ'. -/
 /-- Independence is the negation of dependence. -/
 theorem independent_iff_not_dependent : Independent f ↔ ¬Dependent f := by
   rw [dependent_iff_not_independent, Classical.not_not]
 #align projectivization.independent_iff_not_dependent Projectivization.independent_iff_not_dependent
 
+/- warning: projectivization.dependent_pair_iff_eq -> Projectivization.dependent_pair_iff_eq is a dubious translation:
+lean 3 declaration is
+  forall {K : Type.{u1}} {V : Type.{u2}} [_inst_1 : Field.{u1} K] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} K V (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] (u : Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (v : Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3), Iff (Projectivization.Dependent.{0, u1, u2} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))))) K V _inst_1 _inst_2 _inst_3 (Matrix.vecCons.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) u (Matrix.vecCons.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) v (Matrix.vecEmpty.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3))))) (Eq.{succ u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) u v)
+but is expected to have type
+  forall {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] (u : Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (v : Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3), Iff (Projectivization.Dependent.{0, u2, u1} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) K V _inst_1 _inst_2 _inst_3 (Matrix.vecCons.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) u (Matrix.vecCons.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) v (Matrix.vecEmpty.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3))))) (Eq.{succ u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) u v)
+Case conversion may be inaccurate. Consider using '#align projectivization.dependent_pair_iff_eq Projectivization.dependent_pair_iff_eqₓ'. -/
 /-- Two points in a projective space are dependent if and only if they are equal. -/
 @[simp]
 theorem dependent_pair_iff_eq (u v : ℙ K V) : Dependent ![u, v] ↔ u = v :=
@@ -123,6 +163,12 @@ theorem dependent_pair_iff_eq (u v : ℙ K V) : Dependent ![u, v] ↔ u = v :=
   exact Or.inl (rep_nonzero v)
 #align projectivization.dependent_pair_iff_eq Projectivization.dependent_pair_iff_eq
 
+/- warning: projectivization.independent_pair_iff_neq -> Projectivization.independent_pair_iff_neq is a dubious translation:
+lean 3 declaration is
+  forall {K : Type.{u1}} {V : Type.{u2}} [_inst_1 : Field.{u1} K] [_inst_2 : AddCommGroup.{u2} V] [_inst_3 : Module.{u1, u2} K V (Ring.toSemiring.{u1} K (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u2} V _inst_2)] (u : Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (v : Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3), Iff (Projectivization.Independent.{0, u1, u2} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))))) K V _inst_1 _inst_2 _inst_3 (Matrix.vecCons.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (Nat.succ (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) u (Matrix.vecCons.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) v (Matrix.vecEmpty.{u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3))))) (Ne.{succ u2} (Projectivization.{u1, u2} K V (Field.toDivisionRing.{u1} K _inst_1) _inst_2 _inst_3) u v)
+but is expected to have type
+  forall {K : Type.{u2}} {V : Type.{u1}} [_inst_1 : Field.{u2} K] [_inst_2 : AddCommGroup.{u1} V] [_inst_3 : Module.{u2, u1} K V (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_1))) (AddCommGroup.toAddCommMonoid.{u1} V _inst_2)] (u : Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (v : Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3), Iff (Projectivization.Independent.{0, u2, u1} (Fin (Nat.succ (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))) K V _inst_1 _inst_2 _inst_3 (Matrix.vecCons.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (Nat.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) u (Matrix.vecCons.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) v (Matrix.vecEmpty.{u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3))))) (Ne.{succ u1} (Projectivization.{u2, u1} K V (Field.toDivisionRing.{u2} K _inst_1) _inst_2 _inst_3) u v)
+Case conversion may be inaccurate. Consider using '#align projectivization.independent_pair_iff_neq Projectivization.independent_pair_iff_neqₓ'. -/
 /-- Two points in a projective space are independent if and only if the points are not equal. -/
 @[simp]
 theorem independent_pair_iff_neq (u v : ℙ K V) : Independent ![u, v] ↔ u ≠ v := by

Changes in mathlib4

mathlib3
mathlib4
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -108,7 +108,7 @@ theorem independent_iff_not_dependent : Independent f ↔ ¬Dependent f := by
 @[simp]
 theorem dependent_pair_iff_eq (u v : ℙ K V) : Dependent ![u, v] ↔ u = v := by
   rw [dependent_iff_not_independent, independent_iff, linearIndependent_fin2,
-    Function.comp_apply, Matrix.cons_val_one, Matrix.head_cons, Ne.def]
+    Function.comp_apply, Matrix.cons_val_one, Matrix.head_cons, Ne]
   simp only [Matrix.cons_val_zero, not_and, not_forall, Classical.not_not, Function.comp_apply,
     ← mk_eq_mk_iff' K _ _ (rep_nonzero u) (rep_nonzero v), mk_rep, imp_iff_right_iff]
   exact Or.inl (rep_nonzero v)
fix(LinearAlgebra/Projectivization/Independence): use DivisionRing instead of Field (#11232)

I need $K$ to be a skew field instead of a field to prove that projectivization of a vector space is a projective geometry stated in proposition 2.1.6 in the book "Modern Projective Geometry" by Claude-Alain Faure and Alfred Frölicher, see p. 27-28. In p.27, just before the proposition, it is noted that "... $K$ is allowed to be a skew field (often called division ring)."

Diff
@@ -32,7 +32,7 @@ ambient vector space. Similarly for the definition of dependence.
 
 open scoped LinearAlgebra.Projectivization
 
-variable {ι K V : Type*} [Field K] [AddCommGroup V] [Module K V] {f : ι → ℙ K V}
+variable {ι K V : Type*} [DivisionRing K] [AddCommGroup V] [Module K V] {f : ι → ℙ K V}
 
 namespace Projectivization
 
refactor(LinearAlgebra.ProjectiveSpace): localize notation and rename folder (#8394)

Following https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Projectivization I localize the notation $\mathbb{P}$ to the namespace LinearAlgebra.Projectivization. Following the discussion there, the namespace Projectivization is not optimal, as the notion can refer to different constructions, hence the choice of adding LinearAlgebra. in front of it.

Also, in accordance with the philosophy in the implementation, I replace "Projective Space" by "Projectivization" in the name of the folder, because the idea is that there is no "canonical" choice of the vector space one should start with to construct the projectivization.

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2022 Michael Blyth. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Michael Blyth
 -/
-import Mathlib.LinearAlgebra.ProjectiveSpace.Basic
+import Mathlib.LinearAlgebra.Projectivization.Basic
 
 #align_import linear_algebra.projective_space.independence from "leanprover-community/mathlib"@"1e82f5ec4645f6a92bb9e02fce51e44e3bc3e1fe"
 
@@ -30,6 +30,7 @@ ambient vector space. Similarly for the definition of dependence.
 - Define projective linear subspaces.
 -/
 
+open scoped LinearAlgebra.Projectivization
 
 variable {ι K V : Type*} [Field K] [AddCommGroup V] [Module K V] {f : ι → ℙ K V}
 
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
@@ -31,7 +31,7 @@ ambient vector space. Similarly for the definition of dependence.
 -/
 
 
-variable {ι K V : Type _} [Field K] [AddCommGroup V] [Module K V] {f : ι → ℙ K V}
+variable {ι K V : Type*} [Field K] [AddCommGroup V] [Module K V] {f : ι → ℙ K V}
 
 namespace Projectivization
 
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,14 +2,11 @@
 Copyright (c) 2022 Michael Blyth. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Michael Blyth
-
-! This file was ported from Lean 3 source module linear_algebra.projective_space.independence
-! leanprover-community/mathlib commit 1e82f5ec4645f6a92bb9e02fce51e44e3bc3e1fe
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.LinearAlgebra.ProjectiveSpace.Basic
 
+#align_import linear_algebra.projective_space.independence from "leanprover-community/mathlib"@"1e82f5ec4645f6a92bb9e02fce51e44e3bc3e1fe"
+
 /-!
 # Independence in Projective Space
 
chore: formatting issues (#4947)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -41,8 +41,8 @@ namespace Projectivization
 /-- A linearly independent family of nonzero vectors gives an independent family of points
 in projective space. -/
 inductive Independent : (ι → ℙ K V) → Prop
-| mk (f : ι → V) (hf : ∀ i : ι, f i ≠ 0) (hl : LinearIndependent K f) :
-  Independent fun i => mk K (f i) (hf i)
+  | mk (f : ι → V) (hf : ∀ i : ι, f i ≠ 0) (hl : LinearIndependent K f) :
+    Independent fun i => mk K (f i) (hf i)
 #align projectivization.independent Projectivization.Independent
 
 /-- A family of points in a projective space is independent if and only if the representative
@@ -77,8 +77,8 @@ theorem independent_iff_completeLattice_independent :
 /-- A linearly dependent family of nonzero vectors gives a dependent family of points
 in projective space. -/
 inductive Dependent : (ι → ℙ K V) → Prop
-| mk (f : ι → V) (hf : ∀ i : ι, f i ≠ 0) (h : ¬LinearIndependent K f) :
-  Dependent fun i => mk K (f i) (hf i)
+  | mk (f : ι → V) (hf : ∀ i : ι, f i ≠ 0) (h : ¬LinearIndependent K f) :
+    Dependent fun i => mk K (f i) (hf i)
 #align projectivization.dependent Projectivization.Dependent
 
 /-- A family of points in a projective space is dependent if and only if their
feat: port LinearAlgebra.ProjectiveSpace.Independence (#3728)

Co-authored-by: ChrisHughes24 <chrishughes24@gmail.com>

Dependencies 10 + 514

515 files ported (98.1%)
214544 lines ported (98.4%)
Show graph

The unported dependencies are