ring_theory.graded_algebra.homogeneous_ideal
⟷
Mathlib.RingTheory.GradedAlgebra.HomogeneousIdeal
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -197,8 +197,8 @@ theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁
theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x) :
(Ideal.span s).Homogeneous 𝒜 := by
rintro i r hr
- rw [Ideal.span, Finsupp.span_eq_range_total] at hr
- rw [LinearMap.mem_range] at hr
+ rw [Ideal.span, Finsupp.span_eq_range_total] at hr
+ rw [LinearMap.mem_range] at hr
obtain ⟨s, rfl⟩ := hr
rw [Finsupp.total_apply, Finsupp.sum, decompose_sum, DFinsupp.finset_sum_apply,
AddSubmonoidClass.coe_finset_sum]
@@ -217,7 +217,7 @@ theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x)
is the largest homogeneous ideal of `A` contained in `I`.-/
def Ideal.homogeneousCore : HomogeneousIdeal 𝒜 :=
⟨Ideal.homogeneousCore' 𝒜 I,
- Ideal.homogeneous_span _ _ fun x h => by rw [Subtype.image_preimage_coe] at h ; exact h.2⟩
+ Ideal.homogeneous_span _ _ fun x h => by rw [Subtype.image_preimage_coe] at h; exact h.2⟩
#align ideal.homogeneous_core Ideal.homogeneousCore
-/
@@ -300,7 +300,7 @@ namespace Ideal.IsHomogeneous
#print Ideal.IsHomogeneous.bot /-
theorem bot : Ideal.IsHomogeneous 𝒜 ⊥ := fun i r hr =>
by
- simp only [Ideal.mem_bot] at hr
+ simp only [Ideal.mem_bot] at hr
rw [hr, decompose_zero, zero_apply]
apply Ideal.zero_mem
#align ideal.is_homogeneous.bot Ideal.IsHomogeneous.bot
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -178,7 +178,18 @@ theorem Ideal.isHomogeneous_iff_subset_iInter :
#print Ideal.mul_homogeneous_element_mem_of_mem /-
theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁ : Homogeneous 𝒜 x)
- (hx₂ : x ∈ I) (j : ι) : GradedRing.proj 𝒜 j (r * x) ∈ I := by classical
+ (hx₂ : x ∈ I) (j : ι) : GradedRing.proj 𝒜 j (r * x) ∈ I := by
+ classical
+ rw [← DirectSum.sum_support_decompose 𝒜 r, Finset.sum_mul, map_sum]
+ apply Ideal.sum_mem
+ intro k hk
+ obtain ⟨i, hi⟩ := hx₁
+ have mem₁ : (DirectSum.decompose 𝒜 r k : A) * x ∈ 𝒜 (k + i) :=
+ graded_monoid.mul_mem (SetLike.coe_mem _) hi
+ erw [GradedRing.proj_apply, DirectSum.decompose_of_mem 𝒜 mem₁, coe_of_apply, SetLike.coe_mk]
+ split_ifs
+ · exact I.mul_mem_left _ hx₂
+ · exact I.zero_mem
#align ideal.mul_homogeneous_element_mem_of_mem Ideal.mul_homogeneous_element_mem_of_mem
-/
@@ -238,6 +249,8 @@ theorem Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self (h : I.Homogeneous
apply le_antisymm (I.homogeneous_core'_le 𝒜) _
intro x hx
classical
+ rw [← DirectSum.sum_support_decompose 𝒜 x]
+ exact Ideal.sum_mem _ fun j hj => Ideal.subset_span ⟨⟨_, is_homogeneous_coe _⟩, h _ hx, rfl⟩
#align ideal.is_homogeneous.to_ideal_homogeneous_core_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self
-/
@@ -657,6 +670,13 @@ theorem Ideal.le_toIdeal_homogeneousHull : I ≤ (Ideal.homogeneousHull 𝒜 I).
by
intro r hr
classical
+ rw [← DirectSum.sum_support_decompose 𝒜 r]
+ refine' Ideal.sum_mem _ _
+ intro j hj
+ apply Ideal.subset_span
+ use j
+ use⟨r, hr⟩
+ rfl
#align ideal.le_to_ideal_homogeneous_hull Ideal.le_toIdeal_homogeneousHull
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -178,18 +178,7 @@ theorem Ideal.isHomogeneous_iff_subset_iInter :
#print Ideal.mul_homogeneous_element_mem_of_mem /-
theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁ : Homogeneous 𝒜 x)
- (hx₂ : x ∈ I) (j : ι) : GradedRing.proj 𝒜 j (r * x) ∈ I := by
- classical
- rw [← DirectSum.sum_support_decompose 𝒜 r, Finset.sum_mul, map_sum]
- apply Ideal.sum_mem
- intro k hk
- obtain ⟨i, hi⟩ := hx₁
- have mem₁ : (DirectSum.decompose 𝒜 r k : A) * x ∈ 𝒜 (k + i) :=
- graded_monoid.mul_mem (SetLike.coe_mem _) hi
- erw [GradedRing.proj_apply, DirectSum.decompose_of_mem 𝒜 mem₁, coe_of_apply, SetLike.coe_mk]
- split_ifs
- · exact I.mul_mem_left _ hx₂
- · exact I.zero_mem
+ (hx₂ : x ∈ I) (j : ι) : GradedRing.proj 𝒜 j (r * x) ∈ I := by classical
#align ideal.mul_homogeneous_element_mem_of_mem Ideal.mul_homogeneous_element_mem_of_mem
-/
@@ -249,8 +238,6 @@ theorem Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self (h : I.Homogeneous
apply le_antisymm (I.homogeneous_core'_le 𝒜) _
intro x hx
classical
- rw [← DirectSum.sum_support_decompose 𝒜 x]
- exact Ideal.sum_mem _ fun j hj => Ideal.subset_span ⟨⟨_, is_homogeneous_coe _⟩, h _ hx, rfl⟩
#align ideal.is_homogeneous.to_ideal_homogeneous_core_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self
-/
@@ -670,13 +657,6 @@ theorem Ideal.le_toIdeal_homogeneousHull : I ≤ (Ideal.homogeneousHull 𝒜 I).
by
intro r hr
classical
- rw [← DirectSum.sum_support_decompose 𝒜 r]
- refine' Ideal.sum_mem _ _
- intro j hj
- apply Ideal.subset_span
- use j
- use⟨r, hr⟩
- rfl
#align ideal.le_to_ideal_homogeneous_hull Ideal.le_toIdeal_homogeneousHull
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -778,7 +778,7 @@ variable [Semiring A]
variable [DecidableEq ι]
-variable [CanonicallyOrderedAddMonoid ι]
+variable [CanonicallyOrderedAddCommMonoid ι]
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing 𝒜]
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2021 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang, Eric Wieser
-/
-import Mathbin.RingTheory.Ideal.Basic
-import Mathbin.RingTheory.Ideal.Operations
-import Mathbin.LinearAlgebra.Finsupp
-import Mathbin.RingTheory.GradedAlgebra.Basic
+import RingTheory.Ideal.Basic
+import RingTheory.Ideal.Operations
+import LinearAlgebra.Finsupp
+import RingTheory.GradedAlgebra.Basic
#align_import ring_theory.graded_algebra.homogeneous_ideal from "leanprover-community/mathlib"@"4280f5f32e16755ec7985ce11e189b6cd6ff6735"
mathlib commit https://github.com/leanprover-community/mathlib/commit/63721b2c3eba6c325ecf8ae8cca27155a4f6306f
@@ -675,7 +675,7 @@ theorem Ideal.le_toIdeal_homogeneousHull : I ≤ (Ideal.homogeneousHull 𝒜 I).
intro j hj
apply Ideal.subset_span
use j
- use ⟨r, hr⟩
+ use⟨r, hr⟩
rfl
#align ideal.le_to_ideal_homogeneous_hull Ideal.le_toIdeal_homogeneousHull
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2021 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang, Eric Wieser
-
-! This file was ported from Lean 3 source module ring_theory.graded_algebra.homogeneous_ideal
-! leanprover-community/mathlib commit 4280f5f32e16755ec7985ce11e189b6cd6ff6735
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.RingTheory.Ideal.Basic
import Mathbin.RingTheory.Ideal.Operations
import Mathbin.LinearAlgebra.Finsupp
import Mathbin.RingTheory.GradedAlgebra.Basic
+#align_import ring_theory.graded_algebra.homogeneous_ideal from "leanprover-community/mathlib"@"4280f5f32e16755ec7985ce11e189b6cd6ff6735"
+
/-!
# Homogeneous ideals of a graded algebra
mathlib commit https://github.com/leanprover-community/mathlib/commit/4e24c4bfcff371c71f7ba22050308aa17815626c
@@ -203,7 +203,7 @@ theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x)
rw [Ideal.span, Finsupp.span_eq_range_total] at hr
rw [LinearMap.mem_range] at hr
obtain ⟨s, rfl⟩ := hr
- rw [Finsupp.total_apply, Finsupp.sum, decompose_sum, Dfinsupp.finset_sum_apply,
+ rw [Finsupp.total_apply, Finsupp.sum, decompose_sum, DFinsupp.finset_sum_apply,
AddSubmonoidClass.coe_finset_sum]
refine' Ideal.sum_mem _ _
rintro z hz1
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -64,8 +64,6 @@ variable [DecidableEq ι] [AddMonoid ι] [GradedRing 𝒜]
variable (I : Ideal A)
-include A
-
#print Ideal.IsHomogeneous /-
/-- An `I : ideal A` is homogeneous if for every `r ∈ I`, all homogeneous components
of `r` are in `I`.-/
@@ -90,14 +88,18 @@ def HomogeneousIdeal.toIdeal (I : HomogeneousIdeal 𝒜) : Ideal A :=
#align homogeneous_ideal.to_ideal HomogeneousIdeal.toIdeal
-/
+#print HomogeneousIdeal.isHomogeneous /-
theorem HomogeneousIdeal.isHomogeneous (I : HomogeneousIdeal 𝒜) : I.toIdeal.Homogeneous 𝒜 :=
I.is_homogeneous'
#align homogeneous_ideal.is_homogeneous HomogeneousIdeal.isHomogeneous
+-/
+#print HomogeneousIdeal.toIdeal_injective /-
theorem HomogeneousIdeal.toIdeal_injective :
Function.Injective (HomogeneousIdeal.toIdeal : HomogeneousIdeal 𝒜 → Ideal A) :=
fun ⟨x, hx⟩ ⟨y, hy⟩ (h : x = y) => by simp [h]
#align homogeneous_ideal.to_ideal_injective HomogeneousIdeal.toIdeal_injective
+-/
#print HomogeneousIdeal.setLike /-
instance HomogeneousIdeal.setLike : SetLike (HomogeneousIdeal 𝒜) A
@@ -107,15 +109,19 @@ instance HomogeneousIdeal.setLike : SetLike (HomogeneousIdeal 𝒜) A
#align homogeneous_ideal.set_like HomogeneousIdeal.setLike
-/
+#print HomogeneousIdeal.ext /-
@[ext]
theorem HomogeneousIdeal.ext {I J : HomogeneousIdeal 𝒜} (h : I.toIdeal = J.toIdeal) : I = J :=
HomogeneousIdeal.toIdeal_injective h
#align homogeneous_ideal.ext HomogeneousIdeal.ext
+-/
+#print HomogeneousIdeal.mem_iff /-
@[simp]
theorem HomogeneousIdeal.mem_iff {I : HomogeneousIdeal 𝒜} {x : A} : x ∈ I.toIdeal ↔ x ∈ I :=
Iff.rfl
#align homogeneous_ideal.mem_iff HomogeneousIdeal.mem_iff
+-/
end HomogeneousDef
@@ -127,8 +133,6 @@ variable [SetLike σ A] (𝒜 : ι → σ)
variable (I : Ideal A)
-include A
-
#print Ideal.homogeneousCore' /-
/-- For any `I : ideal A`, not necessarily homogeneous, `I.homogeneous_core' 𝒜`
is the largest homogeneous ideal of `A` contained in `I`, as an ideal. -/
@@ -137,13 +141,17 @@ def Ideal.homogeneousCore' (I : Ideal A) : Ideal A :=
#align ideal.homogeneous_core' Ideal.homogeneousCore'
-/
+#print Ideal.homogeneousCore'_mono /-
theorem Ideal.homogeneousCore'_mono : Monotone (Ideal.homogeneousCore' 𝒜) := fun I J I_le_J =>
Ideal.span_mono <| Set.image_subset _ fun x => @I_le_J _
#align ideal.homogeneous_core'_mono Ideal.homogeneousCore'_mono
+-/
+#print Ideal.homogeneousCore'_le /-
theorem Ideal.homogeneousCore'_le : I.homogeneousCore' 𝒜 ≤ I :=
Ideal.span_le.2 <| image_preimage_subset _ _
#align ideal.homogeneous_core'_le Ideal.homogeneousCore'_le
+-/
end HomogeneousCore
@@ -157,18 +165,21 @@ variable [DecidableEq ι] [AddMonoid ι] [GradedRing 𝒜]
variable (I : Ideal A)
-include A
-
+#print Ideal.isHomogeneous_iff_forall_subset /-
theorem Ideal.isHomogeneous_iff_forall_subset :
I.Homogeneous 𝒜 ↔ ∀ i, (I : Set A) ⊆ GradedRing.proj 𝒜 i ⁻¹' I :=
Iff.rfl
#align ideal.is_homogeneous_iff_forall_subset Ideal.isHomogeneous_iff_forall_subset
+-/
+#print Ideal.isHomogeneous_iff_subset_iInter /-
theorem Ideal.isHomogeneous_iff_subset_iInter :
I.Homogeneous 𝒜 ↔ (I : Set A) ⊆ ⋂ i, GradedRing.proj 𝒜 i ⁻¹' ↑I :=
subset_iInter_iff.symm
#align ideal.is_homogeneous_iff_subset_Inter Ideal.isHomogeneous_iff_subset_iInter
+-/
+#print Ideal.mul_homogeneous_element_mem_of_mem /-
theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁ : Homogeneous 𝒜 x)
(hx₂ : x ∈ I) (j : ι) : GradedRing.proj 𝒜 j (r * x) ∈ I := by
classical
@@ -183,7 +194,9 @@ theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁
· exact I.mul_mem_left _ hx₂
· exact I.zero_mem
#align ideal.mul_homogeneous_element_mem_of_mem Ideal.mul_homogeneous_element_mem_of_mem
+-/
+#print Ideal.homogeneous_span /-
theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x) :
(Ideal.span s).Homogeneous 𝒜 := by
rintro i r hr
@@ -200,6 +213,7 @@ theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x)
apply h _ hz2
· exact Ideal.subset_span z.2
#align ideal.is_homogeneous_span Ideal.homogeneous_span
+-/
#print Ideal.homogeneousCore /-
/-- For any `I : ideal A`, not necessarily homogeneous, `I.homogeneous_core' 𝒜`
@@ -210,21 +224,28 @@ def Ideal.homogeneousCore : HomogeneousIdeal 𝒜 :=
#align ideal.homogeneous_core Ideal.homogeneousCore
-/
+#print Ideal.homogeneousCore_mono /-
theorem Ideal.homogeneousCore_mono : Monotone (Ideal.homogeneousCore 𝒜) :=
Ideal.homogeneousCore'_mono 𝒜
#align ideal.homogeneous_core_mono Ideal.homogeneousCore_mono
+-/
+#print Ideal.toIdeal_homogeneousCore_le /-
theorem Ideal.toIdeal_homogeneousCore_le : (I.homogeneousCore 𝒜).toIdeal ≤ I :=
Ideal.homogeneousCore'_le 𝒜 I
#align ideal.to_ideal_homogeneous_core_le Ideal.toIdeal_homogeneousCore_le
+-/
variable {𝒜 I}
+#print Ideal.mem_homogeneousCore_of_homogeneous_of_mem /-
theorem Ideal.mem_homogeneousCore_of_homogeneous_of_mem {x : A} (h : SetLike.Homogeneous 𝒜 x)
(hmem : x ∈ I) : x ∈ I.homogeneousCore 𝒜 :=
Ideal.subset_span ⟨⟨x, h⟩, hmem, rfl⟩
#align ideal.mem_homogeneous_core_of_is_homogeneous_of_mem Ideal.mem_homogeneousCore_of_homogeneous_of_mem
+-/
+#print Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self /-
theorem Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self (h : I.Homogeneous 𝒜) :
(I.homogeneousCore 𝒜).toIdeal = I :=
by
@@ -234,25 +255,32 @@ theorem Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self (h : I.Homogeneous
rw [← DirectSum.sum_support_decompose 𝒜 x]
exact Ideal.sum_mem _ fun j hj => Ideal.subset_span ⟨⟨_, is_homogeneous_coe _⟩, h _ hx, rfl⟩
#align ideal.is_homogeneous.to_ideal_homogeneous_core_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self
+-/
+#print HomogeneousIdeal.toIdeal_homogeneousCore_eq_self /-
@[simp]
theorem HomogeneousIdeal.toIdeal_homogeneousCore_eq_self (I : HomogeneousIdeal 𝒜) :
I.toIdeal.homogeneousCore 𝒜 = I := by
ext1 <;> convert Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self I.is_homogeneous
#align homogeneous_ideal.to_ideal_homogeneous_core_eq_self HomogeneousIdeal.toIdeal_homogeneousCore_eq_self
+-/
variable (𝒜 I)
+#print Ideal.IsHomogeneous.iff_eq /-
theorem Ideal.IsHomogeneous.iff_eq : I.Homogeneous 𝒜 ↔ (I.homogeneousCore 𝒜).toIdeal = I :=
⟨fun hI => hI.toIdeal_homogeneousCore_eq_self, fun hI => hI ▸ (Ideal.homogeneousCore 𝒜 I).2⟩
#align ideal.is_homogeneous.iff_eq Ideal.IsHomogeneous.iff_eq
+-/
+#print Ideal.IsHomogeneous.iff_exists /-
theorem Ideal.IsHomogeneous.iff_exists :
I.Homogeneous 𝒜 ↔ ∃ S : Set (homogeneousSubmonoid 𝒜), I = Ideal.span (coe '' S) :=
by
rw [Ideal.IsHomogeneous.iff_eq, eq_comm]
exact ((set.image_preimage.compose (Submodule.gi _ _).gc).exists_eq_l _).symm
#align ideal.is_homogeneous.iff_exists Ideal.IsHomogeneous.iff_exists
+-/
end IsHomogeneousIdealDefs
@@ -270,26 +298,31 @@ variable [Semiring A] [DecidableEq ι] [AddMonoid ι]
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing 𝒜]
-include A
-
namespace Ideal.IsHomogeneous
+#print Ideal.IsHomogeneous.bot /-
theorem bot : Ideal.IsHomogeneous 𝒜 ⊥ := fun i r hr =>
by
simp only [Ideal.mem_bot] at hr
rw [hr, decompose_zero, zero_apply]
apply Ideal.zero_mem
#align ideal.is_homogeneous.bot Ideal.IsHomogeneous.bot
+-/
+#print Ideal.IsHomogeneous.top /-
theorem top : Ideal.IsHomogeneous 𝒜 ⊤ := fun i r hr => by simp only [Submodule.mem_top]
#align ideal.is_homogeneous.top Ideal.IsHomogeneous.top
+-/
variable {𝒜}
+#print Ideal.IsHomogeneous.inf /-
theorem inf {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜) : (I ⊓ J).Homogeneous 𝒜 :=
fun i r hr => ⟨HI _ hr.1, HJ _ hr.2⟩
#align ideal.is_homogeneous.inf Ideal.IsHomogeneous.inf
+-/
+#print Ideal.IsHomogeneous.sup /-
theorem sup {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜) : (I ⊔ J).Homogeneous 𝒜 :=
by
rw [iff_exists] at HI HJ ⊢
@@ -298,7 +331,9 @@ theorem sup {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜)
rw [Set.image_union]
exact (Submodule.span_union _ _).symm
#align ideal.is_homogeneous.sup Ideal.IsHomogeneous.sup
+-/
+#print Ideal.IsHomogeneous.iSup /-
protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
(⨆ i, f i).Homogeneous 𝒜 := by
simp_rw [iff_exists] at h ⊢
@@ -308,33 +343,44 @@ protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homo
congr
exact funext hs
#align ideal.is_homogeneous.supr Ideal.IsHomogeneous.iSup
+-/
+#print Ideal.IsHomogeneous.iInf /-
protected theorem iInf {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
(⨅ i, f i).Homogeneous 𝒜 := by
intro i x hx
simp only [Ideal.mem_iInf] at hx ⊢
exact fun j => h _ _ (hx j)
#align ideal.is_homogeneous.infi Ideal.IsHomogeneous.iInf
+-/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Ideal.IsHomogeneous.iSup₂ /-
theorem iSup₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
(h : ∀ i j, (f i j).Homogeneous 𝒜) : (⨆ (i) (j), f i j).Homogeneous 𝒜 :=
IsHomogeneous.iSup fun i => IsHomogeneous.iSup <| h i
#align ideal.is_homogeneous.supr₂ Ideal.IsHomogeneous.iSup₂
+-/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print Ideal.IsHomogeneous.iInf₂ /-
theorem iInf₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
(h : ∀ i j, (f i j).Homogeneous 𝒜) : (⨅ (i) (j), f i j).Homogeneous 𝒜 :=
IsHomogeneous.iInf fun i => IsHomogeneous.iInf <| h i
#align ideal.is_homogeneous.infi₂ Ideal.IsHomogeneous.iInf₂
+-/
+#print Ideal.IsHomogeneous.sSup /-
theorem sSup {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sSup ℐ).Homogeneous 𝒜 :=
by rw [sSup_eq_iSup]; exact supr₂ h
#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.sSup
+-/
+#print Ideal.IsHomogeneous.sInf /-
theorem sInf {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sInf ℐ).Homogeneous 𝒜 :=
by rw [sInf_eq_iInf]; exact infi₂ h
#align ideal.is_homogeneous.Inf Ideal.IsHomogeneous.sInf
+-/
end Ideal.IsHomogeneous
@@ -363,89 +409,121 @@ instance : SupSet (HomogeneousIdeal 𝒜) :=
instance : InfSet (HomogeneousIdeal 𝒜) :=
⟨fun S => ⟨⨅ s ∈ S, toIdeal s, Ideal.IsHomogeneous.iInf₂ fun s _ => s.Homogeneous⟩⟩
+#print HomogeneousIdeal.coe_top /-
@[simp]
theorem coe_top : ((⊤ : HomogeneousIdeal 𝒜) : Set A) = univ :=
rfl
#align homogeneous_ideal.coe_top HomogeneousIdeal.coe_top
+-/
+#print HomogeneousIdeal.coe_bot /-
@[simp]
theorem coe_bot : ((⊥ : HomogeneousIdeal 𝒜) : Set A) = 0 :=
rfl
#align homogeneous_ideal.coe_bot HomogeneousIdeal.coe_bot
+-/
+#print HomogeneousIdeal.coe_sup /-
@[simp]
theorem coe_sup (I J : HomogeneousIdeal 𝒜) : ↑(I ⊔ J) = (I + J : Set A) :=
Submodule.coe_sup _ _
#align homogeneous_ideal.coe_sup HomogeneousIdeal.coe_sup
+-/
+#print HomogeneousIdeal.coe_inf /-
@[simp]
theorem coe_inf (I J : HomogeneousIdeal 𝒜) : (↑(I ⊓ J) : Set A) = I ∩ J :=
rfl
#align homogeneous_ideal.coe_inf HomogeneousIdeal.coe_inf
+-/
+#print HomogeneousIdeal.toIdeal_top /-
@[simp]
theorem toIdeal_top : (⊤ : HomogeneousIdeal 𝒜).toIdeal = (⊤ : Ideal A) :=
rfl
#align homogeneous_ideal.to_ideal_top HomogeneousIdeal.toIdeal_top
+-/
+#print HomogeneousIdeal.toIdeal_bot /-
@[simp]
theorem toIdeal_bot : (⊥ : HomogeneousIdeal 𝒜).toIdeal = (⊥ : Ideal A) :=
rfl
#align homogeneous_ideal.to_ideal_bot HomogeneousIdeal.toIdeal_bot
+-/
+#print HomogeneousIdeal.toIdeal_sup /-
@[simp]
theorem toIdeal_sup (I J : HomogeneousIdeal 𝒜) : (I ⊔ J).toIdeal = I.toIdeal ⊔ J.toIdeal :=
rfl
#align homogeneous_ideal.to_ideal_sup HomogeneousIdeal.toIdeal_sup
+-/
+#print HomogeneousIdeal.toIdeal_inf /-
@[simp]
theorem toIdeal_inf (I J : HomogeneousIdeal 𝒜) : (I ⊓ J).toIdeal = I.toIdeal ⊓ J.toIdeal :=
rfl
#align homogeneous_ideal.to_ideal_inf HomogeneousIdeal.toIdeal_inf
+-/
+#print HomogeneousIdeal.toIdeal_sSup /-
@[simp]
theorem toIdeal_sSup (ℐ : Set (HomogeneousIdeal 𝒜)) : (sSup ℐ).toIdeal = ⨆ s ∈ ℐ, toIdeal s :=
rfl
#align homogeneous_ideal.to_ideal_Sup HomogeneousIdeal.toIdeal_sSup
+-/
+#print HomogeneousIdeal.toIdeal_sInf /-
@[simp]
theorem toIdeal_sInf (ℐ : Set (HomogeneousIdeal 𝒜)) : (sInf ℐ).toIdeal = ⨅ s ∈ ℐ, toIdeal s :=
rfl
#align homogeneous_ideal.to_ideal_Inf HomogeneousIdeal.toIdeal_sInf
+-/
+#print HomogeneousIdeal.toIdeal_iSup /-
@[simp]
theorem toIdeal_iSup {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
(⨆ i, s i).toIdeal = ⨆ i, (s i).toIdeal := by rw [iSup, to_ideal_Sup, iSup_range]
#align homogeneous_ideal.to_ideal_supr HomogeneousIdeal.toIdeal_iSup
+-/
+#print HomogeneousIdeal.toIdeal_iInf /-
@[simp]
theorem toIdeal_iInf {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
(⨅ i, s i).toIdeal = ⨅ i, (s i).toIdeal := by rw [iInf, to_ideal_Inf, iInf_range]
#align homogeneous_ideal.to_ideal_infi HomogeneousIdeal.toIdeal_iInf
+-/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print HomogeneousIdeal.toIdeal_iSup₂ /-
@[simp]
theorem toIdeal_iSup₂ {κ : Sort _} {κ' : κ → Sort _} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
(⨆ (i) (j), s i j).toIdeal = ⨆ (i) (j), (s i j).toIdeal := by simp_rw [to_ideal_supr]
#align homogeneous_ideal.to_ideal_supr₂ HomogeneousIdeal.toIdeal_iSup₂
+-/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
+#print HomogeneousIdeal.toIdeal_iInf₂ /-
@[simp]
theorem toIdeal_iInf₂ {κ : Sort _} {κ' : κ → Sort _} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
(⨅ (i) (j), s i j).toIdeal = ⨅ (i) (j), (s i j).toIdeal := by simp_rw [to_ideal_infi]
#align homogeneous_ideal.to_ideal_infi₂ HomogeneousIdeal.toIdeal_iInf₂
+-/
+#print HomogeneousIdeal.eq_top_iff /-
@[simp]
theorem eq_top_iff (I : HomogeneousIdeal 𝒜) : I = ⊤ ↔ I.toIdeal = ⊤ :=
toIdeal_injective.eq_iff.symm
#align homogeneous_ideal.eq_top_iff HomogeneousIdeal.eq_top_iff
+-/
+#print HomogeneousIdeal.eq_bot_iff /-
@[simp]
theorem eq_bot_iff (I : HomogeneousIdeal 𝒜) : I = ⊥ ↔ I.toIdeal = ⊥ :=
toIdeal_injective.eq_iff.symm
#align homogeneous_ideal.eq_bot_iff HomogeneousIdeal.eq_bot_iff
+-/
instance : CompleteLattice (HomogeneousIdeal 𝒜) :=
toIdeal_injective.CompleteLattice _ toIdeal_sup toIdeal_inf toIdeal_sSup toIdeal_sInf toIdeal_top
@@ -454,10 +532,12 @@ instance : CompleteLattice (HomogeneousIdeal 𝒜) :=
instance : Add (HomogeneousIdeal 𝒜) :=
⟨(· ⊔ ·)⟩
+#print HomogeneousIdeal.toIdeal_add /-
@[simp]
theorem toIdeal_add (I J : HomogeneousIdeal 𝒜) : (I + J).toIdeal = I.toIdeal + J.toIdeal :=
rfl
#align homogeneous_ideal.to_ideal_add HomogeneousIdeal.toIdeal_add
+-/
instance : Inhabited (HomogeneousIdeal 𝒜) where default := ⊥
@@ -475,8 +555,7 @@ variable [SetLike σ A] [AddSubmonoidClass σ A] {𝒜 : ι → σ} [GradedRing
variable (I : Ideal A)
-include A
-
+#print Ideal.IsHomogeneous.mul /-
theorem Ideal.IsHomogeneous.mul {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜) :
(I * J).Homogeneous 𝒜 :=
by
@@ -485,17 +564,20 @@ theorem Ideal.IsHomogeneous.mul {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ :
rw [Ideal.span_mul_span']
exact ⟨s₁ * s₂, congr_arg _ <| (Set.image_mul (homogeneous_submonoid 𝒜).Subtype).symm⟩
#align ideal.is_homogeneous.mul Ideal.IsHomogeneous.mul
+-/
variable {𝒜}
instance : Mul (HomogeneousIdeal 𝒜)
where mul I J := ⟨I.toIdeal * J.toIdeal, I.Homogeneous.mul J.Homogeneous⟩
+#print HomogeneousIdeal.toIdeal_mul /-
@[simp]
theorem HomogeneousIdeal.toIdeal_mul (I J : HomogeneousIdeal 𝒜) :
(I * J).toIdeal = I.toIdeal * J.toIdeal :=
rfl
#align homogeneous_ideal.to_ideal_mul HomogeneousIdeal.toIdeal_mul
+-/
end CommSemiring
@@ -517,13 +599,14 @@ variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing
variable (I : Ideal A)
-include A
-
+#print Ideal.homogeneousCore.gc /-
theorem Ideal.homogeneousCore.gc : GaloisConnection toIdeal (Ideal.homogeneousCore 𝒜) := fun I J =>
⟨fun H => I.toIdeal_homogeneousCore_eq_self ▸ Ideal.homogeneousCore_mono 𝒜 H, fun H =>
le_trans H (Ideal.homogeneousCore'_le _ _)⟩
#align ideal.homogeneous_core.gc Ideal.homogeneousCore.gc
+-/
+#print Ideal.homogeneousCore.gi /-
/-- `to_ideal : homogeneous_ideal 𝒜 → ideal A` and `ideal.homogeneous_core 𝒜` forms a galois
coinsertion-/
def Ideal.homogeneousCore.gi : GaloisCoinsertion toIdeal (Ideal.homogeneousCore 𝒜)
@@ -534,12 +617,16 @@ def Ideal.homogeneousCore.gi : GaloisCoinsertion toIdeal (Ideal.homogeneousCore
u_l_le I := Ideal.homogeneousCore'_le _ _
choice_eq I H := le_antisymm H (I.toIdeal_homogeneousCore_le _)
#align ideal.homogeneous_core.gi Ideal.homogeneousCore.gi
+-/
+#print Ideal.homogeneousCore_eq_sSup /-
theorem Ideal.homogeneousCore_eq_sSup :
I.homogeneousCore 𝒜 = sSup {J : HomogeneousIdeal 𝒜 | J.toIdeal ≤ I} :=
Eq.symm <| IsLUB.sSup_eq <| (Ideal.homogeneousCore.gc 𝒜).isGreatest_u.IsLUB
#align ideal.homogeneous_core_eq_Sup Ideal.homogeneousCore_eq_sSup
+-/
+#print Ideal.homogeneousCore'_eq_sSup /-
theorem Ideal.homogeneousCore'_eq_sSup :
I.homogeneousCore' 𝒜 = sSup {J : Ideal A | J.Homogeneous 𝒜 ∧ J ≤ I} :=
by
@@ -552,6 +639,7 @@ theorem Ideal.homogeneousCore'_eq_sSup :
refine'
⟨fun hI => ⟨⟨x, hI.1⟩, ⟨hI.2, rfl⟩⟩, by rintro ⟨x, ⟨hx, rfl⟩⟩ <;> exact ⟨x.is_homogeneous, hx⟩⟩
#align ideal.homogeneous_core'_eq_Sup Ideal.homogeneousCore'_eq_sSup
+-/
end HomogeneousCore
@@ -568,8 +656,6 @@ variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing
variable (I : Ideal A)
-include A
-
#print Ideal.homogeneousHull /-
/-- For any `I : ideal A`, not necessarily homogeneous, `I.homogeneous_hull 𝒜` is
the smallest homogeneous ideal containing `I`. -/
@@ -582,6 +668,7 @@ def Ideal.homogeneousHull : HomogeneousIdeal 𝒜 :=
#align ideal.homogeneous_hull Ideal.homogeneousHull
-/
+#print Ideal.le_toIdeal_homogeneousHull /-
theorem Ideal.le_toIdeal_homogeneousHull : I ≤ (Ideal.homogeneousHull 𝒜 I).toIdeal :=
by
intro r hr
@@ -594,16 +681,20 @@ theorem Ideal.le_toIdeal_homogeneousHull : I ≤ (Ideal.homogeneousHull 𝒜 I).
use ⟨r, hr⟩
rfl
#align ideal.le_to_ideal_homogeneous_hull Ideal.le_toIdeal_homogeneousHull
+-/
+#print Ideal.homogeneousHull_mono /-
theorem Ideal.homogeneousHull_mono : Monotone (Ideal.homogeneousHull 𝒜) := fun I J I_le_J =>
by
apply Ideal.span_mono
rintro r ⟨hr1, ⟨x, hx⟩, rfl⟩
refine' ⟨hr1, ⟨⟨x, I_le_J hx⟩, rfl⟩⟩
#align ideal.homogeneous_hull_mono Ideal.homogeneousHull_mono
+-/
variable {I 𝒜}
+#print Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self /-
theorem Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self (h : I.Homogeneous 𝒜) :
(Ideal.homogeneousHull 𝒜 I).toIdeal = I :=
by
@@ -612,15 +703,19 @@ theorem Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self (h : I.Homogeneous
rintro _ ⟨i, x, rfl⟩
exact h _ x.prop
#align ideal.is_homogeneous.to_ideal_homogeneous_hull_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self
+-/
+#print HomogeneousIdeal.homogeneousHull_toIdeal_eq_self /-
@[simp]
theorem HomogeneousIdeal.homogeneousHull_toIdeal_eq_self (I : HomogeneousIdeal 𝒜) :
I.toIdeal.homogeneousHull 𝒜 = I :=
HomogeneousIdeal.toIdeal_injective <| I.Homogeneous.toIdeal_homogeneousHull_eq_self
#align homogeneous_ideal.homogeneous_hull_to_ideal_eq_self HomogeneousIdeal.homogeneousHull_toIdeal_eq_self
+-/
variable (I 𝒜)
+#print Ideal.toIdeal_homogeneousHull_eq_iSup /-
theorem Ideal.toIdeal_homogeneousHull_eq_iSup :
(I.homogeneousHull 𝒜).toIdeal = ⨆ i, Ideal.span (GradedRing.proj 𝒜 i '' I) :=
by
@@ -630,7 +725,9 @@ theorem Ideal.toIdeal_homogeneousHull_eq_iSup :
simp only [Set.mem_iUnion, Set.mem_image, mem_set_of_eq, GradedRing.proj_apply, SetLike.exists,
exists_prop, Subtype.coe_mk, SetLike.mem_coe]
#align ideal.to_ideal_homogeneous_hull_eq_supr Ideal.toIdeal_homogeneousHull_eq_iSup
+-/
+#print Ideal.homogeneousHull_eq_iSup /-
theorem Ideal.homogeneousHull_eq_iSup :
I.homogeneousHull 𝒜 =
⨆ i,
@@ -638,6 +735,7 @@ theorem Ideal.homogeneousHull_eq_iSup :
Ideal.homogeneous_span 𝒜 _ (by rintro _ ⟨x, -, rfl⟩; apply SetLike.homogeneous_coe)⟩ :=
by ext1; rw [Ideal.toIdeal_homogeneousHull_eq_iSup, to_ideal_supr]; rfl
#align ideal.homogeneous_hull_eq_supr Ideal.homogeneousHull_eq_iSup
+-/
end HomogeneousHull
@@ -649,13 +747,14 @@ variable [Semiring A] [DecidableEq ι] [AddMonoid ι]
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing 𝒜]
-include A
-
+#print Ideal.homogeneousHull.gc /-
theorem Ideal.homogeneousHull.gc : GaloisConnection (Ideal.homogeneousHull 𝒜) toIdeal := fun I J =>
⟨le_trans (Ideal.le_toIdeal_homogeneousHull _ _), fun H =>
J.homogeneousHull_toIdeal_eq_self ▸ Ideal.homogeneousHull_mono 𝒜 H⟩
#align ideal.homogeneous_hull.gc Ideal.homogeneousHull.gc
+-/
+#print Ideal.homogeneousHull.gi /-
/-- `ideal.homogeneous_hull 𝒜` and `to_ideal : homogeneous_ideal 𝒜 → ideal A` form a galois
insertion-/
def Ideal.homogeneousHull.gi : GaloisInsertion (Ideal.homogeneousHull 𝒜) toIdeal
@@ -665,11 +764,14 @@ def Ideal.homogeneousHull.gi : GaloisInsertion (Ideal.homogeneousHull 𝒜) toId
le_l_u I := Ideal.le_toIdeal_homogeneousHull _ _
choice_eq I H := le_antisymm (I.le_toIdeal_homogeneousHull 𝒜) H
#align ideal.homogeneous_hull.gi Ideal.homogeneousHull.gi
+-/
+#print Ideal.homogeneousHull_eq_sInf /-
theorem Ideal.homogeneousHull_eq_sInf (I : Ideal A) :
Ideal.homogeneousHull 𝒜 I = sInf {J : HomogeneousIdeal 𝒜 | I ≤ J.toIdeal} :=
Eq.symm <| IsGLB.sInf_eq <| (Ideal.homogeneousHull.gc 𝒜).isLeast_l.IsGLB
#align ideal.homogeneous_hull_eq_Inf Ideal.homogeneousHull_eq_sInf
+-/
end GaloisConnection
@@ -683,8 +785,6 @@ variable [CanonicallyOrderedAddMonoid ι]
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing 𝒜]
-include A
-
open GradedRing SetLike.GradedMonoid DirectSum
#print HomogeneousIdeal.irrelevant /-
@@ -708,17 +808,21 @@ def HomogeneousIdeal.irrelevant : HomogeneousIdeal 𝒜 :=
#align homogeneous_ideal.irrelevant HomogeneousIdeal.irrelevant
-/
+#print HomogeneousIdeal.mem_irrelevant_iff /-
@[simp]
theorem HomogeneousIdeal.mem_irrelevant_iff (a : A) :
a ∈ HomogeneousIdeal.irrelevant 𝒜 ↔ proj 𝒜 0 a = 0 :=
Iff.rfl
#align homogeneous_ideal.mem_irrelevant_iff HomogeneousIdeal.mem_irrelevant_iff
+-/
+#print HomogeneousIdeal.toIdeal_irrelevant /-
@[simp]
theorem HomogeneousIdeal.toIdeal_irrelevant :
(HomogeneousIdeal.irrelevant 𝒜).toIdeal = (GradedRing.projZeroRingHom 𝒜).ker :=
rfl
#align homogeneous_ideal.to_ideal_irrelevant HomogeneousIdeal.toIdeal_irrelevant
+-/
end IrrelevantIdeal
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -172,16 +172,16 @@ theorem Ideal.isHomogeneous_iff_subset_iInter :
theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁ : Homogeneous 𝒜 x)
(hx₂ : x ∈ I) (j : ι) : GradedRing.proj 𝒜 j (r * x) ∈ I := by
classical
- rw [← DirectSum.sum_support_decompose 𝒜 r, Finset.sum_mul, map_sum]
- apply Ideal.sum_mem
- intro k hk
- obtain ⟨i, hi⟩ := hx₁
- have mem₁ : (DirectSum.decompose 𝒜 r k : A) * x ∈ 𝒜 (k + i) :=
- graded_monoid.mul_mem (SetLike.coe_mem _) hi
- erw [GradedRing.proj_apply, DirectSum.decompose_of_mem 𝒜 mem₁, coe_of_apply, SetLike.coe_mk]
- split_ifs
- · exact I.mul_mem_left _ hx₂
- · exact I.zero_mem
+ rw [← DirectSum.sum_support_decompose 𝒜 r, Finset.sum_mul, map_sum]
+ apply Ideal.sum_mem
+ intro k hk
+ obtain ⟨i, hi⟩ := hx₁
+ have mem₁ : (DirectSum.decompose 𝒜 r k : A) * x ∈ 𝒜 (k + i) :=
+ graded_monoid.mul_mem (SetLike.coe_mem _) hi
+ erw [GradedRing.proj_apply, DirectSum.decompose_of_mem 𝒜 mem₁, coe_of_apply, SetLike.coe_mk]
+ split_ifs
+ · exact I.mul_mem_left _ hx₂
+ · exact I.zero_mem
#align ideal.mul_homogeneous_element_mem_of_mem Ideal.mul_homogeneous_element_mem_of_mem
theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x) :
@@ -231,8 +231,8 @@ theorem Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self (h : I.Homogeneous
apply le_antisymm (I.homogeneous_core'_le 𝒜) _
intro x hx
classical
- rw [← DirectSum.sum_support_decompose 𝒜 x]
- exact Ideal.sum_mem _ fun j hj => Ideal.subset_span ⟨⟨_, is_homogeneous_coe _⟩, h _ hx, rfl⟩
+ rw [← DirectSum.sum_support_decompose 𝒜 x]
+ exact Ideal.sum_mem _ fun j hj => Ideal.subset_span ⟨⟨_, is_homogeneous_coe _⟩, h _ hx, rfl⟩
#align ideal.is_homogeneous.to_ideal_homogeneous_core_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self
@[simp]
@@ -536,12 +536,12 @@ def Ideal.homogeneousCore.gi : GaloisCoinsertion toIdeal (Ideal.homogeneousCore
#align ideal.homogeneous_core.gi Ideal.homogeneousCore.gi
theorem Ideal.homogeneousCore_eq_sSup :
- I.homogeneousCore 𝒜 = sSup { J : HomogeneousIdeal 𝒜 | J.toIdeal ≤ I } :=
+ I.homogeneousCore 𝒜 = sSup {J : HomogeneousIdeal 𝒜 | J.toIdeal ≤ I} :=
Eq.symm <| IsLUB.sSup_eq <| (Ideal.homogeneousCore.gc 𝒜).isGreatest_u.IsLUB
#align ideal.homogeneous_core_eq_Sup Ideal.homogeneousCore_eq_sSup
theorem Ideal.homogeneousCore'_eq_sSup :
- I.homogeneousCore' 𝒜 = sSup { J : Ideal A | J.Homogeneous 𝒜 ∧ J ≤ I } :=
+ I.homogeneousCore' 𝒜 = sSup {J : Ideal A | J.Homogeneous 𝒜 ∧ J ≤ I} :=
by
refine' (IsLUB.sSup_eq _).symm
apply IsGreatest.isLUB
@@ -574,7 +574,7 @@ include A
/-- For any `I : ideal A`, not necessarily homogeneous, `I.homogeneous_hull 𝒜` is
the smallest homogeneous ideal containing `I`. -/
def Ideal.homogeneousHull : HomogeneousIdeal 𝒜 :=
- ⟨Ideal.span { r : A | ∃ (i : ι) (x : I), (DirectSum.decompose 𝒜 (x : A) i : A) = r },
+ ⟨Ideal.span {r : A | ∃ (i : ι) (x : I), (DirectSum.decompose 𝒜 (x : A) i : A) = r},
by
refine' Ideal.homogeneous_span _ _ fun x hx => _
obtain ⟨i, x, rfl⟩ := hx
@@ -586,13 +586,13 @@ theorem Ideal.le_toIdeal_homogeneousHull : I ≤ (Ideal.homogeneousHull 𝒜 I).
by
intro r hr
classical
- rw [← DirectSum.sum_support_decompose 𝒜 r]
- refine' Ideal.sum_mem _ _
- intro j hj
- apply Ideal.subset_span
- use j
- use ⟨r, hr⟩
- rfl
+ rw [← DirectSum.sum_support_decompose 𝒜 r]
+ refine' Ideal.sum_mem _ _
+ intro j hj
+ apply Ideal.subset_span
+ use j
+ use ⟨r, hr⟩
+ rfl
#align ideal.le_to_ideal_homogeneous_hull Ideal.le_toIdeal_homogeneousHull
theorem Ideal.homogeneousHull_mono : Monotone (Ideal.homogeneousHull 𝒜) := fun I J I_le_J =>
@@ -667,7 +667,7 @@ def Ideal.homogeneousHull.gi : GaloisInsertion (Ideal.homogeneousHull 𝒜) toId
#align ideal.homogeneous_hull.gi Ideal.homogeneousHull.gi
theorem Ideal.homogeneousHull_eq_sInf (I : Ideal A) :
- Ideal.homogeneousHull 𝒜 I = sInf { J : HomogeneousIdeal 𝒜 | I ≤ J.toIdeal } :=
+ Ideal.homogeneousHull 𝒜 I = sInf {J : HomogeneousIdeal 𝒜 | I ≤ J.toIdeal} :=
Eq.symm <| IsGLB.sInf_eq <| (Ideal.homogeneousHull.gc 𝒜).isLeast_l.IsGLB
#align ideal.homogeneous_hull_eq_Inf Ideal.homogeneousHull_eq_sInf
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -187,8 +187,8 @@ theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁
theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x) :
(Ideal.span s).Homogeneous 𝒜 := by
rintro i r hr
- rw [Ideal.span, Finsupp.span_eq_range_total] at hr
- rw [LinearMap.mem_range] at hr
+ rw [Ideal.span, Finsupp.span_eq_range_total] at hr
+ rw [LinearMap.mem_range] at hr
obtain ⟨s, rfl⟩ := hr
rw [Finsupp.total_apply, Finsupp.sum, decompose_sum, Dfinsupp.finset_sum_apply,
AddSubmonoidClass.coe_finset_sum]
@@ -206,7 +206,7 @@ theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x)
is the largest homogeneous ideal of `A` contained in `I`.-/
def Ideal.homogeneousCore : HomogeneousIdeal 𝒜 :=
⟨Ideal.homogeneousCore' 𝒜 I,
- Ideal.homogeneous_span _ _ fun x h => by rw [Subtype.image_preimage_coe] at h; exact h.2⟩
+ Ideal.homogeneous_span _ _ fun x h => by rw [Subtype.image_preimage_coe] at h ; exact h.2⟩
#align ideal.homogeneous_core Ideal.homogeneousCore
-/
@@ -276,7 +276,7 @@ namespace Ideal.IsHomogeneous
theorem bot : Ideal.IsHomogeneous 𝒜 ⊥ := fun i r hr =>
by
- simp only [Ideal.mem_bot] at hr
+ simp only [Ideal.mem_bot] at hr
rw [hr, decompose_zero, zero_apply]
apply Ideal.zero_mem
#align ideal.is_homogeneous.bot Ideal.IsHomogeneous.bot
@@ -292,7 +292,7 @@ theorem inf {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜)
theorem sup {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜) : (I ⊔ J).Homogeneous 𝒜 :=
by
- rw [iff_exists] at HI HJ⊢
+ rw [iff_exists] at HI HJ ⊢
obtain ⟨⟨s₁, rfl⟩, ⟨s₂, rfl⟩⟩ := HI, HJ
refine' ⟨s₁ ∪ s₂, _⟩
rw [Set.image_union]
@@ -301,7 +301,7 @@ theorem sup {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜)
protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
(⨆ i, f i).Homogeneous 𝒜 := by
- simp_rw [iff_exists] at h⊢
+ simp_rw [iff_exists] at h ⊢
choose s hs using h
refine' ⟨⋃ i, s i, _⟩
simp_rw [Set.image_iUnion, Ideal.span_iUnion]
@@ -312,7 +312,7 @@ protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homo
protected theorem iInf {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
(⨅ i, f i).Homogeneous 𝒜 := by
intro i x hx
- simp only [Ideal.mem_iInf] at hx⊢
+ simp only [Ideal.mem_iInf] at hx ⊢
exact fun j => h _ _ (hx j)
#align ideal.is_homogeneous.infi Ideal.IsHomogeneous.iInf
@@ -480,7 +480,7 @@ include A
theorem Ideal.IsHomogeneous.mul {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜) :
(I * J).Homogeneous 𝒜 :=
by
- rw [Ideal.IsHomogeneous.iff_exists] at HI HJ⊢
+ rw [Ideal.IsHomogeneous.iff_exists] at HI HJ ⊢
obtain ⟨⟨s₁, rfl⟩, ⟨s₂, rfl⟩⟩ := HI, HJ
rw [Ideal.span_mul_span']
exact ⟨s₁ * s₂, congr_arg _ <| (Set.image_mul (homogeneous_submonoid 𝒜).Subtype).symm⟩
@@ -574,7 +574,7 @@ include A
/-- For any `I : ideal A`, not necessarily homogeneous, `I.homogeneous_hull 𝒜` is
the smallest homogeneous ideal containing `I`. -/
def Ideal.homogeneousHull : HomogeneousIdeal 𝒜 :=
- ⟨Ideal.span { r : A | ∃ (i : ι)(x : I), (DirectSum.decompose 𝒜 (x : A) i : A) = r },
+ ⟨Ideal.span { r : A | ∃ (i : ι) (x : I), (DirectSum.decompose 𝒜 (x : A) i : A) = r },
by
refine' Ideal.homogeneous_span _ _ fun x hx => _
obtain ⟨i, x, rfl⟩ := hx
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -178,7 +178,7 @@ theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁
obtain ⟨i, hi⟩ := hx₁
have mem₁ : (DirectSum.decompose 𝒜 r k : A) * x ∈ 𝒜 (k + i) :=
graded_monoid.mul_mem (SetLike.coe_mem _) hi
- erw [GradedRing.proj_apply, DirectSum.decompose_of_mem 𝒜 mem₁, coe_of_apply, [anonymous]]
+ erw [GradedRing.proj_apply, DirectSum.decompose_of_mem 𝒜 mem₁, coe_of_apply, SetLike.coe_mk]
split_ifs
· exact I.mul_mem_left _ hx₂
· exact I.zero_mem
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -50,7 +50,7 @@ graded algebra, homogeneous
open SetLike DirectSum Set
-open BigOperators Pointwise DirectSum
+open scoped BigOperators Pointwise DirectSum
variable {ι σ R A : Type _}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -90,22 +90,10 @@ def HomogeneousIdeal.toIdeal (I : HomogeneousIdeal 𝒜) : Ideal A :=
#align homogeneous_ideal.to_ideal HomogeneousIdeal.toIdeal
-/
-/- warning: homogeneous_ideal.is_homogeneous -> HomogeneousIdeal.isHomogeneous is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6), Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6), Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.is_homogeneous HomogeneousIdeal.isHomogeneousₓ'. -/
theorem HomogeneousIdeal.isHomogeneous (I : HomogeneousIdeal 𝒜) : I.toIdeal.Homogeneous 𝒜 :=
I.is_homogeneous'
#align homogeneous_ideal.is_homogeneous HomogeneousIdeal.isHomogeneous
-/- warning: homogeneous_ideal.to_ideal_injective -> HomogeneousIdeal.toIdeal_injective is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜], Function.Injective.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] [_inst_3 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u2} ι] [_inst_5 : AddMonoid.{u2} ι] [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜], Function.Injective.{succ u3, succ u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_injective HomogeneousIdeal.toIdeal_injectiveₓ'. -/
theorem HomogeneousIdeal.toIdeal_injective :
Function.Injective (HomogeneousIdeal.toIdeal : HomogeneousIdeal 𝒜 → Ideal A) :=
fun ⟨x, hx⟩ ⟨y, hy⟩ (h : x = y) => by simp [h]
@@ -119,23 +107,11 @@ instance HomogeneousIdeal.setLike : SetLike (HomogeneousIdeal 𝒜) A
#align homogeneous_ideal.set_like HomogeneousIdeal.setLike
-/
-/- warning: homogeneous_ideal.ext -> HomogeneousIdeal.ext is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6} {J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6}, (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 J)) -> (Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) I J)
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6} {J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6}, (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 J)) -> (Eq.{succ u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) I J)
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.ext HomogeneousIdeal.extₓ'. -/
@[ext]
theorem HomogeneousIdeal.ext {I J : HomogeneousIdeal 𝒜} (h : I.toIdeal = J.toIdeal) : I = J :=
HomogeneousIdeal.toIdeal_injective h
#align homogeneous_ideal.ext HomogeneousIdeal.ext
-/- warning: homogeneous_ideal.mem_iff -> HomogeneousIdeal.mem_iff is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6} {x : A}, Iff (Membership.Mem.{u3, u3} A (Ideal.{u3} A _inst_1) (SetLike.hasMem.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) x (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) (Membership.Mem.{u3, u3} A (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.hasMem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) x I)
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6} {x : A}, Iff (Membership.mem.{u1, u1} A (Ideal.{u1} A _inst_1) (SetLike.instMembership.{u1, u1} (Ideal.{u1} A _inst_1) A (Submodule.setLike.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1))) x (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) (Membership.mem.{u1, u1} A (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.instMembership.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) x I)
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.mem_iff HomogeneousIdeal.mem_iffₓ'. -/
@[simp]
theorem HomogeneousIdeal.mem_iff {I : HomogeneousIdeal 𝒜} {x : A} : x ∈ I.toIdeal ↔ x ∈ I :=
Iff.rfl
@@ -161,22 +137,10 @@ def Ideal.homogeneousCore' (I : Ideal A) : Ideal A :=
#align ideal.homogeneous_core' Ideal.homogeneousCore'
-/
-/- warning: ideal.homogeneous_core'_mono -> Ideal.homogeneousCore'_mono is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] (𝒜 : ι -> σ), Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (Ideal.homogeneousCore'.{u1, u2, u3} ι σ A _inst_1 _inst_2 𝒜)
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] (𝒜 : ι -> σ), Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (Ideal.homogeneousCore'.{u2, u1, u3} ι σ A _inst_1 _inst_2 𝒜)
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core'_mono Ideal.homogeneousCore'_monoₓ'. -/
theorem Ideal.homogeneousCore'_mono : Monotone (Ideal.homogeneousCore' 𝒜) := fun I J I_le_J =>
Ideal.span_mono <| Set.image_subset _ fun x => @I_le_J _
#align ideal.homogeneous_core'_mono Ideal.homogeneousCore'_mono
-/- warning: ideal.homogeneous_core'_le -> Ideal.homogeneousCore'_le is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] (𝒜 : ι -> σ) (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (Ideal.homogeneousCore'.{u1, u2, u3} ι σ A _inst_1 _inst_2 𝒜 I) I
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] (𝒜 : ι -> σ) (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) (Ideal.homogeneousCore'.{u2, u1, u3} ι σ A _inst_1 _inst_2 𝒜 I) I
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core'_le Ideal.homogeneousCore'_leₓ'. -/
theorem Ideal.homogeneousCore'_le : I.homogeneousCore' 𝒜 ≤ I :=
Ideal.span_le.2 <| image_preimage_subset _ _
#align ideal.homogeneous_core'_le Ideal.homogeneousCore'_le
@@ -195,25 +159,16 @@ variable (I : Ideal A)
include A
-/- warning: ideal.is_homogeneous_iff_forall_subset -> Ideal.isHomogeneous_iff_forall_subset is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous_iff_forall_subset Ideal.isHomogeneous_iff_forall_subsetₓ'. -/
theorem Ideal.isHomogeneous_iff_forall_subset :
I.Homogeneous 𝒜 ↔ ∀ i, (I : Set A) ⊆ GradedRing.proj 𝒜 i ⁻¹' I :=
Iff.rfl
#align ideal.is_homogeneous_iff_forall_subset Ideal.isHomogeneous_iff_forall_subset
-/- warning: ideal.is_homogeneous_iff_subset_Inter -> Ideal.isHomogeneous_iff_subset_iInter is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous_iff_subset_Inter Ideal.isHomogeneous_iff_subset_iInterₓ'. -/
theorem Ideal.isHomogeneous_iff_subset_iInter :
I.Homogeneous 𝒜 ↔ (I : Set A) ⊆ ⋂ i, GradedRing.proj 𝒜 i ⁻¹' ↑I :=
subset_iInter_iff.symm
#align ideal.is_homogeneous_iff_subset_Inter Ideal.isHomogeneous_iff_subset_iInter
-/- warning: ideal.mul_homogeneous_element_mem_of_mem -> Ideal.mul_homogeneous_element_mem_of_mem is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ideal.mul_homogeneous_element_mem_of_mem Ideal.mul_homogeneous_element_mem_of_memₓ'. -/
theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁ : Homogeneous 𝒜 x)
(hx₂ : x ∈ I) (j : ι) : GradedRing.proj 𝒜 j (r * x) ∈ I := by
classical
@@ -229,12 +184,6 @@ theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁
· exact I.zero_mem
#align ideal.mul_homogeneous_element_mem_of_mem Ideal.mul_homogeneous_element_mem_of_mem
-/- warning: ideal.is_homogeneous_span -> Ideal.homogeneous_span is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (s : Set.{u3} A), (forall (x : A), (Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x s) -> (SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_2 𝒜 x)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.span.{u3} A _inst_1 s))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] [_inst_3 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u2} ι] [_inst_5 : AddMonoid.{u2} ι] [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (s : Set.{u3} A), (forall (x : A), (Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x s) -> (SetLike.Homogeneous.{u2, u3, u1} ι A σ _inst_2 𝒜 x)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.span.{u3} A _inst_1 s))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous_span Ideal.homogeneous_spanₓ'. -/
theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x) :
(Ideal.span s).Homogeneous 𝒜 := by
rintro i r hr
@@ -261,45 +210,21 @@ def Ideal.homogeneousCore : HomogeneousIdeal 𝒜 :=
#align ideal.homogeneous_core Ideal.homogeneousCore
-/
-/- warning: ideal.homogeneous_core_mono -> Ideal.homogeneousCore_mono is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜], Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.partialOrder.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6))) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] [_inst_3 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u2} ι] [_inst_5 : AddMonoid.{u2} ι] [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜], Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.instPartialOrder.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6))) (Ideal.homogeneousCore.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core_mono Ideal.homogeneousCore_monoₓ'. -/
theorem Ideal.homogeneousCore_mono : Monotone (Ideal.homogeneousCore 𝒜) :=
Ideal.homogeneousCore'_mono 𝒜
#align ideal.homogeneous_core_mono Ideal.homogeneousCore_mono
-/- warning: ideal.to_ideal_homogeneous_core_le -> Ideal.toIdeal_homogeneousCore_le is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] [_inst_3 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u2} ι] [_inst_5 : AddMonoid.{u2} ι] [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I
-Case conversion may be inaccurate. Consider using '#align ideal.to_ideal_homogeneous_core_le Ideal.toIdeal_homogeneousCore_leₓ'. -/
theorem Ideal.toIdeal_homogeneousCore_le : (I.homogeneousCore 𝒜).toIdeal ≤ I :=
Ideal.homogeneousCore'_le 𝒜 I
#align ideal.to_ideal_homogeneous_core_le Ideal.toIdeal_homogeneousCore_le
variable {𝒜 I}
-/- warning: ideal.mem_homogeneous_core_of_is_homogeneous_of_mem -> Ideal.mem_homogeneousCore_of_homogeneous_of_mem is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u3} A _inst_1} {x : A}, (SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_2 𝒜 x) -> (Membership.Mem.{u3, u3} A (Ideal.{u3} A _inst_1) (SetLike.hasMem.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) x I) -> (Membership.Mem.{u3, u3} A (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.hasMem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) x (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u1}} {A : Type.{u2}} [_inst_1 : Semiring.{u2} A] [_inst_2 : SetLike.{u1, u2} σ A] [_inst_3 : AddSubmonoidClass.{u1, u2} σ A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u2, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u2} A _inst_1} {x : A}, (SetLike.Homogeneous.{u3, u2, u1} ι A σ _inst_2 𝒜 x) -> (Membership.mem.{u2, u2} A (Ideal.{u2} A _inst_1) (SetLike.instMembership.{u2, u2} (Ideal.{u2} A _inst_1) A (Submodule.setLike.{u2, u2} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_1))) (Semiring.toModule.{u2} A _inst_1))) x I) -> (Membership.mem.{u2, u2} A (HomogeneousIdeal.{u3, u1, u2} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.instMembership.{u2, u2} (HomogeneousIdeal.{u3, u1, u2} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u3, u1, u2} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) x (Ideal.homogeneousCore.{u3, u1, u2} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I))
-Case conversion may be inaccurate. Consider using '#align ideal.mem_homogeneous_core_of_is_homogeneous_of_mem Ideal.mem_homogeneousCore_of_homogeneous_of_memₓ'. -/
theorem Ideal.mem_homogeneousCore_of_homogeneous_of_mem {x : A} (h : SetLike.Homogeneous 𝒜 x)
(hmem : x ∈ I) : x ∈ I.homogeneousCore 𝒜 :=
Ideal.subset_span ⟨⟨x, h⟩, hmem, rfl⟩
#align ideal.mem_homogeneous_core_of_is_homogeneous_of_mem Ideal.mem_homogeneousCore_of_homogeneous_of_mem
-/- warning: ideal.is_homogeneous.to_ideal_homogeneous_core_eq_self -> Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) -> (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I)
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u1} A _inst_1}, (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) -> (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I)
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.to_ideal_homogeneous_core_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_selfₓ'. -/
theorem Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self (h : I.Homogeneous 𝒜) :
(I.homogeneousCore 𝒜).toIdeal = I :=
by
@@ -310,12 +235,6 @@ theorem Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self (h : I.Homogeneous
exact Ideal.sum_mem _ fun j hj => Ideal.subset_span ⟨⟨_, is_homogeneous_coe _⟩, h _ hx, rfl⟩
#align ideal.is_homogeneous.to_ideal_homogeneous_core_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self
-/- warning: homogeneous_ideal.to_ideal_homogeneous_core_eq_self -> HomogeneousIdeal.toIdeal_homogeneousCore_eq_self is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6), Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6), Eq.{succ u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (Ideal.homogeneousCore.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_homogeneous_core_eq_self HomogeneousIdeal.toIdeal_homogeneousCore_eq_selfₓ'. -/
@[simp]
theorem HomogeneousIdeal.toIdeal_homogeneousCore_eq_self (I : HomogeneousIdeal 𝒜) :
I.toIdeal.homogeneousCore 𝒜 = I := by
@@ -324,19 +243,10 @@ theorem HomogeneousIdeal.toIdeal_homogeneousCore_eq_self (I : HomogeneousIdeal
variable (𝒜 I)
-/- warning: ideal.is_homogeneous.iff_eq -> Ideal.IsHomogeneous.iff_eq is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), Iff (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I)
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u1} A _inst_1), Iff (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I)
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.iff_eq Ideal.IsHomogeneous.iff_eqₓ'. -/
theorem Ideal.IsHomogeneous.iff_eq : I.Homogeneous 𝒜 ↔ (I.homogeneousCore 𝒜).toIdeal = I :=
⟨fun hI => hI.toIdeal_homogeneousCore_eq_self, fun hI => hI ▸ (Ideal.homogeneousCore 𝒜 I).2⟩
#align ideal.is_homogeneous.iff_eq Ideal.IsHomogeneous.iff_eq
-/- warning: ideal.is_homogeneous.iff_exists -> Ideal.IsHomogeneous.iff_exists is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.iff_exists Ideal.IsHomogeneous.iff_existsₓ'. -/
theorem Ideal.IsHomogeneous.iff_exists :
I.Homogeneous 𝒜 ↔ ∃ S : Set (homogeneousSubmonoid 𝒜), I = Ideal.span (coe '' S) :=
by
@@ -364,12 +274,6 @@ include A
namespace Ideal.IsHomogeneous
-/- warning: ideal.is_homogeneous.bot -> Ideal.IsHomogeneous.bot is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Bot.bot.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasBot.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Bot.bot.{u1} (Ideal.{u1} A _inst_1) (Submodule.instBotSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.bot Ideal.IsHomogeneous.botₓ'. -/
theorem bot : Ideal.IsHomogeneous 𝒜 ⊥ := fun i r hr =>
by
simp only [Ideal.mem_bot] at hr
@@ -377,33 +281,15 @@ theorem bot : Ideal.IsHomogeneous 𝒜 ⊥ := fun i r hr =>
apply Ideal.zero_mem
#align ideal.is_homogeneous.bot Ideal.IsHomogeneous.bot
-/- warning: ideal.is_homogeneous.top -> Ideal.IsHomogeneous.top is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Top.top.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasTop.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Top.top.{u1} (Ideal.{u1} A _inst_1) (Submodule.instTopSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.top Ideal.IsHomogeneous.topₓ'. -/
theorem top : Ideal.IsHomogeneous 𝒜 ⊤ := fun i r hr => by simp only [Submodule.mem_top]
#align ideal.is_homogeneous.top Ideal.IsHomogeneous.top
variable {𝒜}
-/- warning: ideal.is_homogeneous.inf -> Ideal.IsHomogeneous.inf is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A _inst_1} {J : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Inf.inf.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I J))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A _inst_1} {J : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Inf.inf.{u3} (Ideal.{u3} A _inst_1) (Submodule.instInfSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I J))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.inf Ideal.IsHomogeneous.infₓ'. -/
theorem inf {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜) : (I ⊓ J).Homogeneous 𝒜 :=
fun i r hr => ⟨HI _ hr.1, HJ _ hr.2⟩
#align ideal.is_homogeneous.inf Ideal.IsHomogeneous.inf
-/- warning: ideal.is_homogeneous.sup -> Ideal.IsHomogeneous.sup is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A _inst_1} {J : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Sup.sup.{u3} (Ideal.{u3} A _inst_1) (SemilatticeSup.toHasSup.{u3} (Ideal.{u3} A _inst_1) (Lattice.toSemilatticeSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toLattice.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) I J))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A _inst_1} {J : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Sup.sup.{u3} (Ideal.{u3} A _inst_1) (SemilatticeSup.toSup.{u3} (Ideal.{u3} A _inst_1) (Lattice.toSemilatticeSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toLattice.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) I J))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.sup Ideal.IsHomogeneous.supₓ'. -/
theorem sup {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜) : (I ⊔ J).Homogeneous 𝒜 :=
by
rw [iff_exists] at HI HJ⊢
@@ -413,12 +299,6 @@ theorem sup {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜)
exact (Submodule.span_union _ _).symm
#align ideal.is_homogeneous.sup Ideal.IsHomogeneous.sup
-/- warning: ideal.is_homogeneous.supr -> Ideal.IsHomogeneous.iSup is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {f : κ -> (Ideal.{u3} A _inst_1)}, (forall (i : κ), Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => f i)))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {f : κ -> (Ideal.{u3} A _inst_1)}, (forall (i : κ), Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => f i)))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.supr Ideal.IsHomogeneous.iSupₓ'. -/
protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
(⨆ i, f i).Homogeneous 𝒜 := by
simp_rw [iff_exists] at h⊢
@@ -429,12 +309,6 @@ protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homo
exact funext hs
#align ideal.is_homogeneous.supr Ideal.IsHomogeneous.iSup
-/- warning: ideal.is_homogeneous.infi -> Ideal.IsHomogeneous.iInf is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {f : κ -> (Ideal.{u3} A _inst_1)}, (forall (i : κ), Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => f i)))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {f : κ -> (Ideal.{u3} A _inst_1)}, (forall (i : κ), Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => f i)))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.infi Ideal.IsHomogeneous.iInfₓ'. -/
protected theorem iInf {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
(⨅ i, f i).Homogeneous 𝒜 := by
intro i x hx
@@ -442,46 +316,22 @@ protected theorem iInf {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homo
exact fun j => h _ _ (hx j)
#align ideal.is_homogeneous.infi Ideal.IsHomogeneous.iInf
-/- warning: ideal.is_homogeneous.supr₂ -> Ideal.IsHomogeneous.iSup₂ is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {κ' : κ -> Sort.{u5}} {f : forall (i : κ), (κ' i) -> (Ideal.{u3} A _inst_1)}, (forall (i : κ) (j : κ' i), Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i j)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => iSup.{u3, u5} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (κ' i) (fun (j : κ' i) => f i j))))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u5}} {κ' : κ -> Sort.{u4}} {f : forall (i : κ), (κ' i) -> (Ideal.{u3} A _inst_1)}, (forall (i : κ) (j : κ' i), Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i j)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u5} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (κ' i) (fun (j : κ' i) => f i j))))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.supr₂ Ideal.IsHomogeneous.iSup₂ₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
theorem iSup₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
(h : ∀ i j, (f i j).Homogeneous 𝒜) : (⨆ (i) (j), f i j).Homogeneous 𝒜 :=
IsHomogeneous.iSup fun i => IsHomogeneous.iSup <| h i
#align ideal.is_homogeneous.supr₂ Ideal.IsHomogeneous.iSup₂
-/- warning: ideal.is_homogeneous.infi₂ -> Ideal.IsHomogeneous.iInf₂ is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {κ' : κ -> Sort.{u5}} {f : forall (i : κ), (κ' i) -> (Ideal.{u3} A _inst_1)}, (forall (i : κ) (j : κ' i), Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i j)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => iInf.{u3, u5} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (κ' i) (fun (j : κ' i) => f i j))))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u5}} {κ' : κ -> Sort.{u4}} {f : forall (i : κ), (κ' i) -> (Ideal.{u3} A _inst_1)}, (forall (i : κ) (j : κ' i), Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i j)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u5} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (κ' i) (fun (j : κ' i) => f i j))))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.infi₂ Ideal.IsHomogeneous.iInf₂ₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
theorem iInf₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
(h : ∀ i j, (f i j).Homogeneous 𝒜) : (⨅ (i) (j), f i j).Homogeneous 𝒜 :=
IsHomogeneous.iInf fun i => IsHomogeneous.iInf <| h i
#align ideal.is_homogeneous.infi₂ Ideal.IsHomogeneous.iInf₂
-/- warning: ideal.is_homogeneous.Sup -> Ideal.IsHomogeneous.sSup is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {ℐ : Set.{u3} (Ideal.{u3} A _inst_1)}, (forall (I : Ideal.{u3} A _inst_1), (Membership.Mem.{u3, u3} (Ideal.{u3} A _inst_1) (Set.{u3} (Ideal.{u3} A _inst_1)) (Set.hasMem.{u3} (Ideal.{u3} A _inst_1)) I ℐ) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (SupSet.sSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) ℐ))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {ℐ : Set.{u3} (Ideal.{u3} A _inst_1)}, (forall (I : Ideal.{u3} A _inst_1), (Membership.mem.{u3, u3} (Ideal.{u3} A _inst_1) (Set.{u3} (Ideal.{u3} A _inst_1)) (Set.instMembershipSet.{u3} (Ideal.{u3} A _inst_1)) I ℐ) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (SupSet.sSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) ℐ))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.sSupₓ'. -/
theorem sSup {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sSup ℐ).Homogeneous 𝒜 :=
by rw [sSup_eq_iSup]; exact supr₂ h
#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.sSup
-/- warning: ideal.is_homogeneous.Inf -> Ideal.IsHomogeneous.sInf is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {ℐ : Set.{u3} (Ideal.{u3} A _inst_1)}, (forall (I : Ideal.{u3} A _inst_1), (Membership.Mem.{u3, u3} (Ideal.{u3} A _inst_1) (Set.{u3} (Ideal.{u3} A _inst_1)) (Set.hasMem.{u3} (Ideal.{u3} A _inst_1)) I ℐ) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (InfSet.sInf.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) ℐ))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {ℐ : Set.{u3} (Ideal.{u3} A _inst_1)}, (forall (I : Ideal.{u3} A _inst_1), (Membership.mem.{u3, u3} (Ideal.{u3} A _inst_1) (Set.{u3} (Ideal.{u3} A _inst_1)) (Set.instMembershipSet.{u3} (Ideal.{u3} A _inst_1)) I ℐ) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (InfSet.sInf.{u3} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) ℐ))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.Inf Ideal.IsHomogeneous.sInfₓ'. -/
theorem sInf {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sInf ℐ).Homogeneous 𝒜 :=
by rw [sInf_eq_iInf]; exact infi₂ h
#align ideal.is_homogeneous.Inf Ideal.IsHomogeneous.sInf
@@ -513,129 +363,66 @@ instance : SupSet (HomogeneousIdeal 𝒜) :=
instance : InfSet (HomogeneousIdeal 𝒜) :=
⟨fun S => ⟨⨅ s ∈ S, toIdeal s, Ideal.IsHomogeneous.iInf₂ fun s _ => s.Homogeneous⟩⟩
-/- warning: homogeneous_ideal.coe_top -> HomogeneousIdeal.coe_top is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Set.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) (Top.top.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasTop.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Set.univ.{u3} A)
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Set.{u3} A) (SetLike.coe.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Top.top.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instTopHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Set.univ.{u3} A)
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.coe_top HomogeneousIdeal.coe_topₓ'. -/
@[simp]
theorem coe_top : ((⊤ : HomogeneousIdeal 𝒜) : Set A) = univ :=
rfl
#align homogeneous_ideal.coe_top HomogeneousIdeal.coe_top
-/- warning: homogeneous_ideal.coe_bot -> HomogeneousIdeal.coe_bot is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Set.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) (Bot.bot.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasBot.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (OfNat.ofNat.{u3} (Set.{u3} A) 0 (OfNat.mk.{u3} (Set.{u3} A) 0 (Zero.zero.{u3} (Set.{u3} A) (Set.zero.{u3} A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))))))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Set.{u3} A) (SetLike.coe.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Bot.bot.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instBotHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (OfNat.ofNat.{u3} (Set.{u3} A) 0 (Zero.toOfNat0.{u3} (Set.{u3} A) (Set.zero.{u3} A (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.coe_bot HomogeneousIdeal.coe_botₓ'. -/
@[simp]
theorem coe_bot : ((⊥ : HomogeneousIdeal 𝒜) : Set A) = 0 :=
rfl
#align homogeneous_ideal.coe_bot HomogeneousIdeal.coe_bot
-/- warning: homogeneous_ideal.coe_sup -> HomogeneousIdeal.coe_sup is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.coe_sup HomogeneousIdeal.coe_supₓ'. -/
@[simp]
theorem coe_sup (I J : HomogeneousIdeal 𝒜) : ↑(I ⊔ J) = (I + J : Set A) :=
Submodule.coe_sup _ _
#align homogeneous_ideal.coe_sup HomogeneousIdeal.coe_sup
-/- warning: homogeneous_ideal.coe_inf -> HomogeneousIdeal.coe_inf is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.coe_inf HomogeneousIdeal.coe_infₓ'. -/
@[simp]
theorem coe_inf (I J : HomogeneousIdeal 𝒜) : (↑(I ⊓ J) : Set A) = I ∩ J :=
rfl
#align homogeneous_ideal.coe_inf HomogeneousIdeal.coe_inf
-/- warning: homogeneous_ideal.to_ideal_top -> HomogeneousIdeal.toIdeal_top is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Top.top.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasTop.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Top.top.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasTop.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Top.top.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instTopHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Top.top.{u3} (Ideal.{u3} A _inst_1) (Submodule.instTopSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_top HomogeneousIdeal.toIdeal_topₓ'. -/
@[simp]
theorem toIdeal_top : (⊤ : HomogeneousIdeal 𝒜).toIdeal = (⊤ : Ideal A) :=
rfl
#align homogeneous_ideal.to_ideal_top HomogeneousIdeal.toIdeal_top
-/- warning: homogeneous_ideal.to_ideal_bot -> HomogeneousIdeal.toIdeal_bot is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Bot.bot.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasBot.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Bot.bot.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasBot.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Bot.bot.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instBotHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Bot.bot.{u3} (Ideal.{u3} A _inst_1) (Submodule.instBotSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_bot HomogeneousIdeal.toIdeal_botₓ'. -/
@[simp]
theorem toIdeal_bot : (⊥ : HomogeneousIdeal 𝒜).toIdeal = (⊥ : Ideal A) :=
rfl
#align homogeneous_ideal.to_ideal_bot HomogeneousIdeal.toIdeal_bot
-/- warning: homogeneous_ideal.to_ideal_sup -> HomogeneousIdeal.toIdeal_sup is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Sup.sup.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Sup.sup.{u3} (Ideal.{u3} A _inst_1) (SemilatticeSup.toHasSup.{u3} (Ideal.{u3} A _inst_1) (Lattice.toSemilatticeSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toLattice.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Sup.sup.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Sup.sup.{u1} (Ideal.{u1} A _inst_1) (SemilatticeSup.toSup.{u1} (Ideal.{u1} A _inst_1) (Lattice.toSemilatticeSup.{u1} (Ideal.{u1} A _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Ideal.{u1} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Ideal.{u1} A _inst_1) (Submodule.completeLattice.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_sup HomogeneousIdeal.toIdeal_supₓ'. -/
@[simp]
theorem toIdeal_sup (I J : HomogeneousIdeal 𝒜) : (I ⊔ J).toIdeal = I.toIdeal ⊔ J.toIdeal :=
rfl
#align homogeneous_ideal.to_ideal_sup HomogeneousIdeal.toIdeal_sup
-/- warning: homogeneous_ideal.to_ideal_inf -> HomogeneousIdeal.toIdeal_inf is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Inf.inf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Inf.inf.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Inf.inf.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Inf.inf.{u1} (Ideal.{u1} A _inst_1) (Submodule.instInfSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_inf HomogeneousIdeal.toIdeal_infₓ'. -/
@[simp]
theorem toIdeal_inf (I J : HomogeneousIdeal 𝒜) : (I ⊓ J).toIdeal = I.toIdeal ⊓ J.toIdeal :=
rfl
#align homogeneous_ideal.to_ideal_inf HomogeneousIdeal.toIdeal_inf
-/- warning: homogeneous_ideal.to_ideal_Sup -> HomogeneousIdeal.toIdeal_sSup is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_Sup HomogeneousIdeal.toIdeal_sSupₓ'. -/
@[simp]
theorem toIdeal_sSup (ℐ : Set (HomogeneousIdeal 𝒜)) : (sSup ℐ).toIdeal = ⨆ s ∈ ℐ, toIdeal s :=
rfl
#align homogeneous_ideal.to_ideal_Sup HomogeneousIdeal.toIdeal_sSup
-/- warning: homogeneous_ideal.to_ideal_Inf -> HomogeneousIdeal.toIdeal_sInf is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_Inf HomogeneousIdeal.toIdeal_sInfₓ'. -/
@[simp]
theorem toIdeal_sInf (ℐ : Set (HomogeneousIdeal 𝒜)) : (sInf ℐ).toIdeal = ⨅ s ∈ ℐ, toIdeal s :=
rfl
#align homogeneous_ideal.to_ideal_Inf HomogeneousIdeal.toIdeal_sInf
-/- warning: homogeneous_ideal.to_ideal_supr -> HomogeneousIdeal.toIdeal_iSup is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} (s : κ -> (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u4} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => s i))) (iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i)))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} (s : κ -> (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u1, u4} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => s i))) (iSup.{u1, u4} (Ideal.{u1} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u1} (Ideal.{u1} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Ideal.{u1} A _inst_1) (Submodule.completeLattice.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))) κ (fun (i : κ) => HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i)))
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_supr HomogeneousIdeal.toIdeal_iSupₓ'. -/
@[simp]
theorem toIdeal_iSup {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
(⨆ i, s i).toIdeal = ⨆ i, (s i).toIdeal := by rw [iSup, to_ideal_Sup, iSup_range]
#align homogeneous_ideal.to_ideal_supr HomogeneousIdeal.toIdeal_iSup
-/- warning: homogeneous_ideal.to_ideal_infi -> HomogeneousIdeal.toIdeal_iInf is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} (s : κ -> (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u4} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => s i))) (iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i)))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} (s : κ -> (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u1, u4} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => s i))) (iInf.{u1, u4} (Ideal.{u1} A _inst_1) (Submodule.instInfSetSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) κ (fun (i : κ) => HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i)))
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_infi HomogeneousIdeal.toIdeal_iInfₓ'. -/
@[simp]
theorem toIdeal_iInf {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
(⨅ i, s i).toIdeal = ⨅ i, (s i).toIdeal := by rw [iInf, to_ideal_Inf, iInf_range]
#align homogeneous_ideal.to_ideal_infi HomogeneousIdeal.toIdeal_iInf
-/- warning: homogeneous_ideal.to_ideal_supr₂ -> HomogeneousIdeal.toIdeal_iSup₂ is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_supr₂ HomogeneousIdeal.toIdeal_iSup₂ₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
@[simp]
@@ -643,9 +430,6 @@ theorem toIdeal_iSup₂ {κ : Sort _} {κ' : κ → Sort _} (s : ∀ i, κ' i
(⨆ (i) (j), s i j).toIdeal = ⨆ (i) (j), (s i j).toIdeal := by simp_rw [to_ideal_supr]
#align homogeneous_ideal.to_ideal_supr₂ HomogeneousIdeal.toIdeal_iSup₂
-/- warning: homogeneous_ideal.to_ideal_infi₂ -> HomogeneousIdeal.toIdeal_iInf₂ is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_infi₂ HomogeneousIdeal.toIdeal_iInf₂ₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
@[simp]
@@ -653,23 +437,11 @@ theorem toIdeal_iInf₂ {κ : Sort _} {κ' : κ → Sort _} (s : ∀ i, κ' i
(⨅ (i) (j), s i j).toIdeal = ⨅ (i) (j), (s i j).toIdeal := by simp_rw [to_ideal_infi]
#align homogeneous_ideal.to_ideal_infi₂ HomogeneousIdeal.toIdeal_iInf₂
-/- warning: homogeneous_ideal.eq_top_iff -> HomogeneousIdeal.eq_top_iff is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Iff (Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I (Top.top.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasTop.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (Top.top.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasTop.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Iff (Eq.{succ u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I (Top.top.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instTopHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (Top.top.{u1} (Ideal.{u1} A _inst_1) (Submodule.instTopSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1))))
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.eq_top_iff HomogeneousIdeal.eq_top_iffₓ'. -/
@[simp]
theorem eq_top_iff (I : HomogeneousIdeal 𝒜) : I = ⊤ ↔ I.toIdeal = ⊤ :=
toIdeal_injective.eq_iff.symm
#align homogeneous_ideal.eq_top_iff HomogeneousIdeal.eq_top_iff
-/- warning: homogeneous_ideal.eq_bot_iff -> HomogeneousIdeal.eq_bot_iff is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Iff (Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I (Bot.bot.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasBot.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (Bot.bot.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasBot.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Iff (Eq.{succ u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I (Bot.bot.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instBotHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (Bot.bot.{u1} (Ideal.{u1} A _inst_1) (Submodule.instBotSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1))))
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.eq_bot_iff HomogeneousIdeal.eq_bot_iffₓ'. -/
@[simp]
theorem eq_bot_iff (I : HomogeneousIdeal 𝒜) : I = ⊥ ↔ I.toIdeal = ⊥ :=
toIdeal_injective.eq_iff.symm
@@ -682,9 +454,6 @@ instance : CompleteLattice (HomogeneousIdeal 𝒜) :=
instance : Add (HomogeneousIdeal 𝒜) :=
⟨(· ⊔ ·)⟩
-/- warning: homogeneous_ideal.to_ideal_add -> HomogeneousIdeal.toIdeal_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_add HomogeneousIdeal.toIdeal_addₓ'. -/
@[simp]
theorem toIdeal_add (I J : HomogeneousIdeal 𝒜) : (I + J).toIdeal = I.toIdeal + J.toIdeal :=
rfl
@@ -708,12 +477,6 @@ variable (I : Ideal A)
include A
-/- warning: ideal.is_homogeneous.mul -> Ideal.IsHomogeneous.mul is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)} {J : Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)}, (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HMul.hMul.{u3, u3, u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (instHMul.{u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.hasMul.{u3} A _inst_1)) I J))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)} {J : Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)}, (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HMul.hMul.{u3, u3, u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (instHMul.{u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.instMulIdealToSemiring.{u3} A _inst_1)) I J))
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.mul Ideal.IsHomogeneous.mulₓ'. -/
theorem Ideal.IsHomogeneous.mul {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜) :
(I * J).Homogeneous 𝒜 :=
by
@@ -728,9 +491,6 @@ variable {𝒜}
instance : Mul (HomogeneousIdeal 𝒜)
where mul I J := ⟨I.toIdeal * J.toIdeal, I.Homogeneous.mul J.Homogeneous⟩
-/- warning: homogeneous_ideal.to_ideal_mul -> HomogeneousIdeal.toIdeal_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_mul HomogeneousIdeal.toIdeal_mulₓ'. -/
@[simp]
theorem HomogeneousIdeal.toIdeal_mul (I J : HomogeneousIdeal 𝒜) :
(I * J).toIdeal = I.toIdeal * J.toIdeal :=
@@ -759,23 +519,11 @@ variable (I : Ideal A)
include A
-/- warning: ideal.homogeneous_core.gc -> Ideal.homogeneousCore.gc is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisConnection.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.partialOrder.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisConnection.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instPartialOrderHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core.gc Ideal.homogeneousCore.gcₓ'. -/
theorem Ideal.homogeneousCore.gc : GaloisConnection toIdeal (Ideal.homogeneousCore 𝒜) := fun I J =>
⟨fun H => I.toIdeal_homogeneousCore_eq_self ▸ Ideal.homogeneousCore_mono 𝒜 H, fun H =>
le_trans H (Ideal.homogeneousCore'_le _ _)⟩
#align ideal.homogeneous_core.gc Ideal.homogeneousCore.gc
-/- warning: ideal.homogeneous_core.gi -> Ideal.homogeneousCore.gi is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisCoinsertion.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.partialOrder.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
-but is expected to have type
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisCoinsertion.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instPartialOrderHomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core.gi Ideal.homogeneousCore.giₓ'. -/
/-- `to_ideal : homogeneous_ideal 𝒜 → ideal A` and `ideal.homogeneous_core 𝒜` forms a galois
coinsertion-/
def Ideal.homogeneousCore.gi : GaloisCoinsertion toIdeal (Ideal.homogeneousCore 𝒜)
@@ -787,23 +535,11 @@ def Ideal.homogeneousCore.gi : GaloisCoinsertion toIdeal (Ideal.homogeneousCore
choice_eq I H := le_antisymm H (I.toIdeal_homogeneousCore_le _)
#align ideal.homogeneous_core.gi Ideal.homogeneousCore.gi
-/- warning: ideal.homogeneous_core_eq_Sup -> Ideal.homogeneousCore_eq_sSup is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (SupSet.sSup.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (setOf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) I)))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (SupSet.sSup.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (setOf.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (J : HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) I)))
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core_eq_Sup Ideal.homogeneousCore_eq_sSupₓ'. -/
theorem Ideal.homogeneousCore_eq_sSup :
I.homogeneousCore 𝒜 = sSup { J : HomogeneousIdeal 𝒜 | J.toIdeal ≤ I } :=
Eq.symm <| IsLUB.sSup_eq <| (Ideal.homogeneousCore.gc 𝒜).isGreatest_u.IsLUB
#align ideal.homogeneous_core_eq_Sup Ideal.homogeneousCore_eq_sSup
-/- warning: ideal.homogeneous_core'_eq_Sup -> Ideal.homogeneousCore'_eq_sSup is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (Ideal.{u3} A _inst_1) (Ideal.homogeneousCore'.{u1, u2, u3} ι σ A _inst_1 _inst_4 𝒜 I) (SupSet.sSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (setOf.{u3} (Ideal.{u3} A _inst_1) (fun (J : Ideal.{u3} A _inst_1) => And (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) (LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) J I))))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (Ideal.{u3} A _inst_1) (Ideal.homogeneousCore'.{u2, u1, u3} ι σ A _inst_1 _inst_4 𝒜 I) (SupSet.sSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (setOf.{u3} (Ideal.{u3} A _inst_1) (fun (J : Ideal.{u3} A _inst_1) => And (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) (LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) J I))))
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core'_eq_Sup Ideal.homogeneousCore'_eq_sSupₓ'. -/
theorem Ideal.homogeneousCore'_eq_sSup :
I.homogeneousCore' 𝒜 = sSup { J : Ideal A | J.Homogeneous 𝒜 ∧ J ≤ I } :=
by
@@ -846,12 +582,6 @@ def Ideal.homogeneousHull : HomogeneousIdeal 𝒜 :=
#align ideal.homogeneous_hull Ideal.homogeneousHull
-/
-/- warning: ideal.le_to_ideal_homogeneous_hull -> Ideal.le_toIdeal_homogeneousHull is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) I (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I))
-Case conversion may be inaccurate. Consider using '#align ideal.le_to_ideal_homogeneous_hull Ideal.le_toIdeal_homogeneousHullₓ'. -/
theorem Ideal.le_toIdeal_homogeneousHull : I ≤ (Ideal.homogeneousHull 𝒜 I).toIdeal :=
by
intro r hr
@@ -865,12 +595,6 @@ theorem Ideal.le_toIdeal_homogeneousHull : I ≤ (Ideal.homogeneousHull 𝒜 I).
rfl
#align ideal.le_to_ideal_homogeneous_hull Ideal.le_toIdeal_homogeneousHull
-/- warning: ideal.homogeneous_hull_mono -> Ideal.homogeneousHull_mono is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.partialOrder.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instPartialOrderHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_hull_mono Ideal.homogeneousHull_monoₓ'. -/
theorem Ideal.homogeneousHull_mono : Monotone (Ideal.homogeneousHull 𝒜) := fun I J I_le_J =>
by
apply Ideal.span_mono
@@ -880,12 +604,6 @@ theorem Ideal.homogeneousHull_mono : Monotone (Ideal.homogeneousHull 𝒜) := fu
variable {I 𝒜}
-/- warning: ideal.is_homogeneous.to_ideal_homogeneous_hull_eq_self -> Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I)) I)
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u1} A _inst_1}, (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I)) I)
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.to_ideal_homogeneous_hull_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_selfₓ'. -/
theorem Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self (h : I.Homogeneous 𝒜) :
(Ideal.homogeneousHull 𝒜 I).toIdeal = I :=
by
@@ -895,12 +613,6 @@ theorem Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self (h : I.Homogeneous
exact h _ x.prop
#align ideal.is_homogeneous.to_ideal_homogeneous_hull_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self
-/- warning: homogeneous_ideal.homogeneous_hull_to_ideal_eq_self -> HomogeneousIdeal.homogeneousHull_toIdeal_eq_self is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) I
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) I
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.homogeneous_hull_to_ideal_eq_self HomogeneousIdeal.homogeneousHull_toIdeal_eq_selfₓ'. -/
@[simp]
theorem HomogeneousIdeal.homogeneousHull_toIdeal_eq_self (I : HomogeneousIdeal 𝒜) :
I.toIdeal.homogeneousHull 𝒜 = I :=
@@ -909,9 +621,6 @@ theorem HomogeneousIdeal.homogeneousHull_toIdeal_eq_self (I : HomogeneousIdeal
variable (I 𝒜)
-/- warning: ideal.to_ideal_homogeneous_hull_eq_supr -> Ideal.toIdeal_homogeneousHull_eq_iSup is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ideal.to_ideal_homogeneous_hull_eq_supr Ideal.toIdeal_homogeneousHull_eq_iSupₓ'. -/
theorem Ideal.toIdeal_homogeneousHull_eq_iSup :
(I.homogeneousHull 𝒜).toIdeal = ⨆ i, Ideal.span (GradedRing.proj 𝒜 i '' I) :=
by
@@ -922,9 +631,6 @@ theorem Ideal.toIdeal_homogeneousHull_eq_iSup :
exists_prop, Subtype.coe_mk, SetLike.mem_coe]
#align ideal.to_ideal_homogeneous_hull_eq_supr Ideal.toIdeal_homogeneousHull_eq_iSup
-/- warning: ideal.homogeneous_hull_eq_supr -> Ideal.homogeneousHull_eq_iSup is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_hull_eq_supr Ideal.homogeneousHull_eq_iSupₓ'. -/
theorem Ideal.homogeneousHull_eq_iSup :
I.homogeneousHull 𝒜 =
⨆ i,
@@ -945,23 +651,11 @@ variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing
include A
-/- warning: ideal.homogeneous_hull.gc -> Ideal.homogeneousHull.gc is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisConnection.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.partialOrder.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisConnection.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instPartialOrderHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_hull.gc Ideal.homogeneousHull.gcₓ'. -/
theorem Ideal.homogeneousHull.gc : GaloisConnection (Ideal.homogeneousHull 𝒜) toIdeal := fun I J =>
⟨le_trans (Ideal.le_toIdeal_homogeneousHull _ _), fun H =>
J.homogeneousHull_toIdeal_eq_self ▸ Ideal.homogeneousHull_mono 𝒜 H⟩
#align ideal.homogeneous_hull.gc Ideal.homogeneousHull.gc
-/- warning: ideal.homogeneous_hull.gi -> Ideal.homogeneousHull.gi is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisInsertion.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.partialOrder.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
-but is expected to have type
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisInsertion.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instPartialOrderHomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_hull.gi Ideal.homogeneousHull.giₓ'. -/
/-- `ideal.homogeneous_hull 𝒜` and `to_ideal : homogeneous_ideal 𝒜 → ideal A` form a galois
insertion-/
def Ideal.homogeneousHull.gi : GaloisInsertion (Ideal.homogeneousHull 𝒜) toIdeal
@@ -972,12 +666,6 @@ def Ideal.homogeneousHull.gi : GaloisInsertion (Ideal.homogeneousHull 𝒜) toId
choice_eq I H := le_antisymm (I.le_toIdeal_homogeneousHull 𝒜) H
#align ideal.homogeneous_hull.gi Ideal.homogeneousHull.gi
-/- warning: ideal.homogeneous_hull_eq_Inf -> Ideal.homogeneousHull_eq_sInf is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I) (InfSet.sInf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (setOf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I) (InfSet.sInf.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfSetHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (setOf.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (J : HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) I (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))))
-Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_hull_eq_Inf Ideal.homogeneousHull_eq_sInfₓ'. -/
theorem Ideal.homogeneousHull_eq_sInf (I : Ideal A) :
Ideal.homogeneousHull 𝒜 I = sInf { J : HomogeneousIdeal 𝒜 | I ≤ J.toIdeal } :=
Eq.symm <| IsGLB.sInf_eq <| (Ideal.homogeneousHull.gc 𝒜).isLeast_l.IsGLB
@@ -1020,21 +708,12 @@ def HomogeneousIdeal.irrelevant : HomogeneousIdeal 𝒜 :=
#align homogeneous_ideal.irrelevant HomogeneousIdeal.irrelevant
-/
-/- warning: homogeneous_ideal.mem_irrelevant_iff -> HomogeneousIdeal.mem_irrelevant_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.mem_irrelevant_iff HomogeneousIdeal.mem_irrelevant_iffₓ'. -/
@[simp]
theorem HomogeneousIdeal.mem_irrelevant_iff (a : A) :
a ∈ HomogeneousIdeal.irrelevant 𝒜 ↔ proj 𝒜 0 a = 0 :=
Iff.rfl
#align homogeneous_ideal.mem_irrelevant_iff HomogeneousIdeal.mem_irrelevant_iff
-/- warning: homogeneous_ideal.to_ideal_irrelevant -> HomogeneousIdeal.toIdeal_irrelevant is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : CanonicallyOrderedAddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_6 (HomogeneousIdeal.irrelevant.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (RingHom.ker.{u3, u3, u3} A A (RingHom.{u3, u3} A A (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{u3} A _inst_1)) _inst_1 _inst_1 (RingHom.ringHomClass.{u3, u3} A A (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{u3} A _inst_1)) (GradedRing.projZeroRingHom.{u1, u3, u2} ι A σ _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : CanonicallyOrderedAddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_6 (HomogeneousIdeal.irrelevant.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (RingHom.ker.{u3, u3, u3} A A (RingHom.{u3, u3} A A (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{u3} A _inst_1)) _inst_1 _inst_1 (RingHom.instRingHomClassRingHom.{u3, u3} A A (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{u3} A _inst_1)) (GradedRing.projZeroRingHom.{u2, u3, u1} ι A σ _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))
-Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_irrelevant HomogeneousIdeal.toIdeal_irrelevantₓ'. -/
@[simp]
theorem HomogeneousIdeal.toIdeal_irrelevant :
(HomogeneousIdeal.irrelevant 𝒜).toIdeal = (GradedRing.projZeroRingHom 𝒜).ker :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -257,10 +257,7 @@ theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x)
is the largest homogeneous ideal of `A` contained in `I`.-/
def Ideal.homogeneousCore : HomogeneousIdeal 𝒜 :=
⟨Ideal.homogeneousCore' 𝒜 I,
- Ideal.homogeneous_span _ _ fun x h =>
- by
- rw [Subtype.image_preimage_coe] at h
- exact h.2⟩
+ Ideal.homogeneous_span _ _ fun x h => by rw [Subtype.image_preimage_coe] at h; exact h.2⟩
#align ideal.homogeneous_core Ideal.homogeneousCore
-/
@@ -476,9 +473,7 @@ but is expected to have type
forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {ℐ : Set.{u3} (Ideal.{u3} A _inst_1)}, (forall (I : Ideal.{u3} A _inst_1), (Membership.mem.{u3, u3} (Ideal.{u3} A _inst_1) (Set.{u3} (Ideal.{u3} A _inst_1)) (Set.instMembershipSet.{u3} (Ideal.{u3} A _inst_1)) I ℐ) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (SupSet.sSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) ℐ))
Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.sSupₓ'. -/
theorem sSup {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sSup ℐ).Homogeneous 𝒜 :=
- by
- rw [sSup_eq_iSup]
- exact supr₂ h
+ by rw [sSup_eq_iSup]; exact supr₂ h
#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.sSup
/- warning: ideal.is_homogeneous.Inf -> Ideal.IsHomogeneous.sInf is a dubious translation:
@@ -488,9 +483,7 @@ but is expected to have type
forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {ℐ : Set.{u3} (Ideal.{u3} A _inst_1)}, (forall (I : Ideal.{u3} A _inst_1), (Membership.mem.{u3, u3} (Ideal.{u3} A _inst_1) (Set.{u3} (Ideal.{u3} A _inst_1)) (Set.instMembershipSet.{u3} (Ideal.{u3} A _inst_1)) I ℐ) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (InfSet.sInf.{u3} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) ℐ))
Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.Inf Ideal.IsHomogeneous.sInfₓ'. -/
theorem sInf {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sInf ℐ).Homogeneous 𝒜 :=
- by
- rw [sInf_eq_iInf]
- exact infi₂ h
+ by rw [sInf_eq_iInf]; exact infi₂ h
#align ideal.is_homogeneous.Inf Ideal.IsHomogeneous.sInf
end Ideal.IsHomogeneous
@@ -936,14 +929,8 @@ theorem Ideal.homogeneousHull_eq_iSup :
I.homogeneousHull 𝒜 =
⨆ i,
⟨Ideal.span (GradedRing.proj 𝒜 i '' I),
- Ideal.homogeneous_span 𝒜 _
- (by
- rintro _ ⟨x, -, rfl⟩
- apply SetLike.homogeneous_coe)⟩ :=
- by
- ext1
- rw [Ideal.toIdeal_homogeneousHull_eq_iSup, to_ideal_supr]
- rfl
+ Ideal.homogeneous_span 𝒜 _ (by rintro _ ⟨x, -, rfl⟩; apply SetLike.homogeneous_coe)⟩ :=
+ by ext1; rw [Ideal.toIdeal_homogeneousHull_eq_iSup, to_ideal_supr]; rfl
#align ideal.homogeneous_hull_eq_supr Ideal.homogeneousHull_eq_iSup
end HomogeneousHull
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -196,10 +196,7 @@ variable (I : Ideal A)
include A
/- warning: ideal.is_homogeneous_iff_forall_subset -> Ideal.isHomogeneous_iff_forall_subset is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), Iff (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (forall (i : ι), HasSubset.Subset.{u3} (Set.{u3} A) (Set.hasSubset.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I) (Set.preimage.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u1} A _inst_1), Iff (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (forall (i : ι), HasSubset.Subset.{u1} (Set.{u1} A) (Set.instHasSubsetSet.{u1} A) (SetLike.coe.{u1, u1} (Ideal.{u1} A _inst_1) A (Submodule.setLike.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) I) (Set.preimage.{u1, u1} A A (FunLike.coe.{succ u1, succ u1, succ u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u1, u1, u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))))) (GradedRing.proj.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 i)) (SetLike.coe.{u1, u1} (Ideal.{u1} A _inst_1) A (Submodule.setLike.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) I)))
+<too large>
Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous_iff_forall_subset Ideal.isHomogeneous_iff_forall_subsetₓ'. -/
theorem Ideal.isHomogeneous_iff_forall_subset :
I.Homogeneous 𝒜 ↔ ∀ i, (I : Set A) ⊆ GradedRing.proj 𝒜 i ⁻¹' I :=
@@ -207,10 +204,7 @@ theorem Ideal.isHomogeneous_iff_forall_subset :
#align ideal.is_homogeneous_iff_forall_subset Ideal.isHomogeneous_iff_forall_subset
/- warning: ideal.is_homogeneous_iff_subset_Inter -> Ideal.isHomogeneous_iff_subset_iInter is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), Iff (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (HasSubset.Subset.{u3} (Set.{u3} A) (Set.hasSubset.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I) (Set.iInter.{u3, succ u1} A ι (fun (i : ι) => Set.preimage.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I))))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u1} A _inst_1), Iff (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (HasSubset.Subset.{u1} (Set.{u1} A) (Set.instHasSubsetSet.{u1} A) (SetLike.coe.{u1, u1} (Ideal.{u1} A _inst_1) A (Submodule.setLike.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) I) (Set.iInter.{u1, succ u3} A ι (fun (i : ι) => Set.preimage.{u1, u1} A A (FunLike.coe.{succ u1, succ u1, succ u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u1, u1, u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))))) (GradedRing.proj.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 i)) (SetLike.coe.{u1, u1} (Ideal.{u1} A _inst_1) A (Submodule.setLike.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) I))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous_iff_subset_Inter Ideal.isHomogeneous_iff_subset_iInterₓ'. -/
theorem Ideal.isHomogeneous_iff_subset_iInter :
I.Homogeneous 𝒜 ↔ (I : Set A) ⊆ ⋂ i, GradedRing.proj 𝒜 i ⁻¹' ↑I :=
@@ -218,10 +212,7 @@ theorem Ideal.isHomogeneous_iff_subset_iInter :
#align ideal.is_homogeneous_iff_subset_Inter Ideal.isHomogeneous_iff_subset_iInter
/- warning: ideal.mul_homogeneous_element_mem_of_mem -> Ideal.mul_homogeneous_element_mem_of_mem is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u3} A _inst_1} (r : A) (x : A), (SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_2 𝒜 x) -> (Membership.Mem.{u3, u3} A (Ideal.{u3} A _inst_1) (SetLike.hasMem.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) x I) -> (forall (j : ι), Membership.Mem.{u3, u3} A (Ideal.{u3} A _inst_1) (SetLike.hasMem.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 j) (HMul.hMul.{u3, u3, u3} A A A (instHMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) r x)) I)
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] [_inst_3 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u2} ι] [_inst_5 : AddMonoid.{u2} ι] [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u3} A _inst_1} (r : A) (x : A), (SetLike.Homogeneous.{u2, u3, u1} ι A σ _inst_2 𝒜 x) -> (Membership.mem.{u3, u3} A (Ideal.{u3} A _inst_1) (SetLike.instMembership.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) x I) -> (forall (j : ι), Membership.mem.{u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) (HMul.hMul.{u3, u3, u3} A A A (instHMul.{u3} A (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))) r x)) (Ideal.{u3} A _inst_1) (SetLike.instMembership.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 j) (HMul.hMul.{u3, u3, u3} A A A (instHMul.{u3} A (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))) r x)) I)
+<too large>
Case conversion may be inaccurate. Consider using '#align ideal.mul_homogeneous_element_mem_of_mem Ideal.mul_homogeneous_element_mem_of_memₓ'. -/
theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁ : Homogeneous 𝒜 x)
(hx₂ : x ∈ I) (j : ι) : GradedRing.proj 𝒜 j (r * x) ∈ I := by
@@ -347,10 +338,7 @@ theorem Ideal.IsHomogeneous.iff_eq : I.Homogeneous 𝒜 ↔ (I.homogeneousCore
#align ideal.is_homogeneous.iff_eq Ideal.IsHomogeneous.iff_eq
/- warning: ideal.is_homogeneous.iff_exists -> Ideal.IsHomogeneous.iff_exists is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), Iff (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (Exists.{succ u3} (Set.{u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6)))) (fun (S : Set.{u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6)))) => Eq.{succ u3} (Ideal.{u3} A _inst_1) I (Ideal.span.{u3} A _inst_1 (Set.image.{u3, u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))) A ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))) A (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))) A (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))) A (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))) A (coeSubtype.{succ u3} A (fun (x : A) => Membership.Mem.{u3, u3} A (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) (SetLike.hasMem.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) x (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6)))))))) S))))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u1} A _inst_1), Iff (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (Exists.{succ u1} (Set.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) A (Submonoid.instSetLikeSubmonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1))))) x (SetLike.homogeneousSubmonoid.{u3, u1, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)) 𝒜 (GradedRing.toGradedMonoid.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))))) (fun (S : Set.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) A (Submonoid.instSetLikeSubmonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1))))) x (SetLike.homogeneousSubmonoid.{u3, u1, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)) 𝒜 (GradedRing.toGradedMonoid.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))))) => Eq.{succ u1} (Ideal.{u1} A _inst_1) I (Ideal.span.{u1} A _inst_1 (Set.image.{u1, u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) A (Submonoid.instSetLikeSubmonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1))))) x (SetLike.homogeneousSubmonoid.{u3, u1, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)) 𝒜 (GradedRing.toGradedMonoid.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6)))) A (Subtype.val.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Set.{u1} A) (Set.instMembershipSet.{u1} A) x (SetLike.coe.{u1, u1} (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) A (Submonoid.instSetLikeSubmonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) (SetLike.homogeneousSubmonoid.{u3, u1, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)) 𝒜 (GradedRing.toGradedMonoid.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))))) S))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.iff_exists Ideal.IsHomogeneous.iff_existsₓ'. -/
theorem Ideal.IsHomogeneous.iff_exists :
I.Homogeneous 𝒜 ↔ ∃ S : Set (homogeneousSubmonoid 𝒜), I = Ideal.span (coe '' S) :=
@@ -555,10 +543,7 @@ theorem coe_bot : ((⊥ : HomogeneousIdeal 𝒜) : Set A) = 0 :=
#align homogeneous_ideal.coe_bot HomogeneousIdeal.coe_bot
/- warning: homogeneous_ideal.coe_sup -> HomogeneousIdeal.coe_sup is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Set.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) (Sup.sup.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (HAdd.hAdd.{u3, u3, u3} (Set.{u3} A) (Set.{u3} A) (Set.{u3} A) (instHAdd.{u3} (Set.{u3} A) (Set.add.{u3} A (Distrib.toHasAdd.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) I) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) J))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Set.{u1} A) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Sup.sup.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (HAdd.hAdd.{u1, u1, u1} (Set.{u1} A) (Set.{u1} A) (Set.{u1} A) (instHAdd.{u1} (Set.{u1} A) (Set.add.{u1} A (Distrib.toAdd.{u1} A (NonUnitalNonAssocSemiring.toDistrib.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) J))
+<too large>
Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.coe_sup HomogeneousIdeal.coe_supₓ'. -/
@[simp]
theorem coe_sup (I J : HomogeneousIdeal 𝒜) : ↑(I ⊔ J) = (I + J : Set A) :=
@@ -566,10 +551,7 @@ theorem coe_sup (I J : HomogeneousIdeal 𝒜) : ↑(I ⊔ J) = (I + J : Set A) :
#align homogeneous_ideal.coe_sup HomogeneousIdeal.coe_sup
/- warning: homogeneous_ideal.coe_inf -> HomogeneousIdeal.coe_inf is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Set.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) (Inf.inf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Inter.inter.{u3} (Set.{u3} A) (Set.hasInter.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) I) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) J))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Set.{u1} A) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Inf.inf.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Inter.inter.{u1} (Set.{u1} A) (Set.instInterSet.{u1} A) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) J))
+<too large>
Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.coe_inf HomogeneousIdeal.coe_infₓ'. -/
@[simp]
theorem coe_inf (I J : HomogeneousIdeal 𝒜) : (↑(I ⊓ J) : Set A) = I ∩ J :=
@@ -621,10 +603,7 @@ theorem toIdeal_inf (I J : HomogeneousIdeal 𝒜) : (I ⊓ J).toIdeal = I.toIdea
#align homogeneous_ideal.to_ideal_inf HomogeneousIdeal.toIdeal_inf
/- warning: homogeneous_ideal.to_ideal_Sup -> HomogeneousIdeal.toIdeal_sSup is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (ℐ : Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (SupSet.sSup.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ℐ)) (iSup.{u3, succ u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (s : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => iSup.{u3, 0} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (Membership.Mem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.hasMem.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) (fun (H : Membership.Mem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.hasMem.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 s)))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (ℐ : Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (SupSet.sSup.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ℐ)) (iSup.{u3, succ u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (s : HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => iSup.{u3, 0} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (Membership.mem.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.instMembershipSet.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) (fun (H : Membership.mem.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.instMembershipSet.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) => HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 s)))
+<too large>
Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_Sup HomogeneousIdeal.toIdeal_sSupₓ'. -/
@[simp]
theorem toIdeal_sSup (ℐ : Set (HomogeneousIdeal 𝒜)) : (sSup ℐ).toIdeal = ⨆ s ∈ ℐ, toIdeal s :=
@@ -632,10 +611,7 @@ theorem toIdeal_sSup (ℐ : Set (HomogeneousIdeal 𝒜)) : (sSup ℐ).toIdeal =
#align homogeneous_ideal.to_ideal_Sup HomogeneousIdeal.toIdeal_sSup
/- warning: homogeneous_ideal.to_ideal_Inf -> HomogeneousIdeal.toIdeal_sInf is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (ℐ : Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (InfSet.sInf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ℐ)) (iInf.{u3, succ u3} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (s : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => iInf.{u3, 0} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (Membership.Mem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.hasMem.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) (fun (H : Membership.Mem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.hasMem.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 s)))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (ℐ : Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (InfSet.sInf.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfSetHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ℐ)) (iInf.{u3, succ u3} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (s : HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => iInf.{u3, 0} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (Membership.mem.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.instMembershipSet.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) (fun (H : Membership.mem.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.instMembershipSet.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) => HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 s)))
+<too large>
Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_Inf HomogeneousIdeal.toIdeal_sInfₓ'. -/
@[simp]
theorem toIdeal_sInf (ℐ : Set (HomogeneousIdeal 𝒜)) : (sInf ℐ).toIdeal = ⨅ s ∈ ℐ, toIdeal s :=
@@ -665,10 +641,7 @@ theorem toIdeal_iInf {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
#align homogeneous_ideal.to_ideal_infi HomogeneousIdeal.toIdeal_iInf
/- warning: homogeneous_ideal.to_ideal_supr₂ -> HomogeneousIdeal.toIdeal_iSup₂ is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {κ' : κ -> Sort.{u5}} (s : forall (i : κ), (κ' i) -> (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u4} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => iSup.{u3, u5} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (κ' i) (fun (j : κ' i) => s i j)))) (iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => iSup.{u3, u5} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (κ' i) (fun (j : κ' i) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i j))))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u5}} {κ' : κ -> Sort.{u4}} (s : forall (i : κ), (κ' i) -> (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u1, u5} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => iSup.{u1, u4} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (κ' i) (fun (j : κ' i) => s i j)))) (iSup.{u1, u5} (Ideal.{u1} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u1} (Ideal.{u1} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Ideal.{u1} A _inst_1) (Submodule.completeLattice.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))) κ (fun (i : κ) => iSup.{u1, u4} (Ideal.{u1} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u1} (Ideal.{u1} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Ideal.{u1} A _inst_1) (Submodule.completeLattice.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))) (κ' i) (fun (j : κ' i) => HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i j))))
+<too large>
Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_supr₂ HomogeneousIdeal.toIdeal_iSup₂ₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
@@ -678,10 +651,7 @@ theorem toIdeal_iSup₂ {κ : Sort _} {κ' : κ → Sort _} (s : ∀ i, κ' i
#align homogeneous_ideal.to_ideal_supr₂ HomogeneousIdeal.toIdeal_iSup₂
/- warning: homogeneous_ideal.to_ideal_infi₂ -> HomogeneousIdeal.toIdeal_iInf₂ is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {κ' : κ -> Sort.{u5}} (s : forall (i : κ), (κ' i) -> (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u4} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => iInf.{u3, u5} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (κ' i) (fun (j : κ' i) => s i j)))) (iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => iInf.{u3, u5} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (κ' i) (fun (j : κ' i) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i j))))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u5}} {κ' : κ -> Sort.{u4}} (s : forall (i : κ), (κ' i) -> (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u1, u5} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => iInf.{u1, u4} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (κ' i) (fun (j : κ' i) => s i j)))) (iInf.{u1, u5} (Ideal.{u1} A _inst_1) (Submodule.instInfSetSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) κ (fun (i : κ) => iInf.{u1, u4} (Ideal.{u1} A _inst_1) (Submodule.instInfSetSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) (κ' i) (fun (j : κ' i) => HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i j))))
+<too large>
Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_infi₂ HomogeneousIdeal.toIdeal_iInf₂ₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
@@ -720,10 +690,7 @@ instance : Add (HomogeneousIdeal 𝒜) :=
⟨(· ⊔ ·)⟩
/- warning: homogeneous_ideal.to_ideal_add -> HomogeneousIdeal.toIdeal_add is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HAdd.hAdd.{u3, u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (instHAdd.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasAdd.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) I J)) (HAdd.hAdd.{u3, u3, u3} (Ideal.{u3} A _inst_1) (Ideal.{u3} A _inst_1) (Ideal.{u3} A _inst_1) (instHAdd.{u3} (Ideal.{u3} A _inst_1) (AddZeroClass.toHasAdd.{u3} (Ideal.{u3} A _inst_1) (AddMonoid.toAddZeroClass.{u3} (Ideal.{u3} A _inst_1) (AddCommMonoid.toAddMonoid.{u3} (Ideal.{u3} A _inst_1) (Submodule.pointwiseAddCommMonoid.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HAdd.hAdd.{u1, u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (instHAdd.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instAddHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) I J)) (HAdd.hAdd.{u1, u1, u1} (Ideal.{u1} A _inst_1) (Ideal.{u1} A _inst_1) (Ideal.{u1} A _inst_1) (instHAdd.{u1} (Ideal.{u1} A _inst_1) (AddZeroClass.toAdd.{u1} (Ideal.{u1} A _inst_1) (AddMonoid.toAddZeroClass.{u1} (Ideal.{u1} A _inst_1) (AddCommMonoid.toAddMonoid.{u1} (Ideal.{u1} A _inst_1) (Submodule.pointwiseAddCommMonoid.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
+<too large>
Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_add HomogeneousIdeal.toIdeal_addₓ'. -/
@[simp]
theorem toIdeal_add (I J : HomogeneousIdeal 𝒜) : (I + J).toIdeal = I.toIdeal + J.toIdeal :=
@@ -769,10 +736,7 @@ instance : Mul (HomogeneousIdeal 𝒜)
where mul I J := ⟨I.toIdeal * J.toIdeal, I.Homogeneous.mul J.Homogeneous⟩
/- warning: homogeneous_ideal.to_ideal_mul -> HomogeneousIdeal.toIdeal_mul is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HMul.hMul.{u3, u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (instHMul.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasMul.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) I J)) (HMul.hMul.{u3, u3, u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (instHMul.{u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.hasMul.{u3} A _inst_1)) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
-but is expected to have type
- forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Ideal.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HMul.hMul.{u1, u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (instHMul.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (instMulHomogeneousIdealToSemiring.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) I J)) (HMul.hMul.{u1, u1, u1} (Ideal.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)) (Ideal.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)) (Ideal.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)) (instHMul.{u1} (Ideal.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)) (Ideal.instMulIdealToSemiring.{u1} A _inst_1)) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
+<too large>
Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_mul HomogeneousIdeal.toIdeal_mulₓ'. -/
@[simp]
theorem HomogeneousIdeal.toIdeal_mul (I J : HomogeneousIdeal 𝒜) :
@@ -953,10 +917,7 @@ theorem HomogeneousIdeal.homogeneousHull_toIdeal_eq_self (I : HomogeneousIdeal
variable (I 𝒜)
/- warning: ideal.to_ideal_homogeneous_hull_eq_supr -> Ideal.toIdeal_homogeneousHull_eq_iSup is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I)) (iSup.{u3, succ u1} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) ι (fun (i : ι) => Ideal.span.{u3} A _inst_1 (Set.image.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I))))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I)) (iSup.{u3, succ u2} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) ι (fun (i : ι) => Ideal.span.{u3} A _inst_1 (Set.image.{u3, u3} A A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ideal.to_ideal_homogeneous_hull_eq_supr Ideal.toIdeal_homogeneousHull_eq_iSupₓ'. -/
theorem Ideal.toIdeal_homogeneousHull_eq_iSup :
(I.homogeneousHull 𝒜).toIdeal = ⨆ i, Ideal.span (GradedRing.proj 𝒜 i '' I) :=
@@ -969,10 +930,7 @@ theorem Ideal.toIdeal_homogeneousHull_eq_iSup :
#align ideal.to_ideal_homogeneous_hull_eq_supr Ideal.toIdeal_homogeneousHull_eq_iSup
/- warning: ideal.homogeneous_hull_eq_supr -> Ideal.homogeneousHull_eq_iSup is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I) (iSup.{u3, succ u1} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ι (fun (i : ι) => HomogeneousIdeal.mk.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.span.{u3} A _inst_1 (Set.image.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I))) (Ideal.homogeneous_span.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Set.image.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (fun (x : A) (H : Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x (Set.image.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I))) => Exists.dcases_on.{succ u3} A (fun (x_1 : A) => And (Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x_1 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) (fun (H : Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x (Set.image.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I))) => SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_4 𝒜 x) H (fun (x_1 : A) (H_h : And (Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x_1 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) => And.dcasesOn.{0} (Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x_1 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x) (fun (H_h : And (Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x_1 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) => SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_4 𝒜 x) H_h (fun (H_h_left : Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x_1 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (H_h_right : Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x) => Eq.ndrec.{0, succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) (fun (x : A) => SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_4 𝒜 x) (SetLike.homogeneous_coe.{u1, u3, u2} ι A σ _inst_4 𝒜 i (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A (coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u2} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) (fun (_x : AddMonoidHom.{u3, u3} A (coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u2} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) => A -> (coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i))) (AddMonoidHom.hasCoeToFun.{u3, u3} A (coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u2} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) (AddMonoidHom.comp.{u3, max u1 u3, u3} A (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) ((fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) i))))) ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (Dfinsupp.addZeroClass.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) ((fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) i)))) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) ((fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) i))) (Dfinsupp.evalAddMonoidHom.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) ((fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) i))) i) (RingHom.toAddMonoidHom.{u3, max u1 u3} A (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) _inst_3 (SetLike.gsemiring.{u1, u2, u3} ι σ A (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) _inst_3 _inst_1 _inst_4 _inst_5 (fun (i : ι) => 𝒜 i) (GradedRing.proj._proof_1.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) (RingEquiv.toRingHom.{u3, max u1 u3} A (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) _inst_3 (SetLike.gsemiring.{u1, u2, u3} ι σ A (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) _inst_3 _inst_1 _inst_4 _inst_5 (fun (i : ι) => 𝒜 i) (GradedRing.proj._proof_1.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) (DirectSum.decomposeRingEquiv.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) x_1)) x H_h_right))))))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I) (iSup.{u3, succ u2} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ι (fun (i : ι) => HomogeneousIdeal.mk.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.span.{u3} A _inst_1 (Set.image.{u3, u3} A A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I))) (Ideal.homogeneous_span.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Set.image.{u3, u3} A A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (fun (x : A) (H : Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x (Set.image.{u3, u3} A A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I))) => Exists.casesOn.{succ u3} A (fun (x_1 : A) => And (Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x_1 (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (Eq.{succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) (fun (H : Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x (Set.image.{u3, u3} A A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I))) => SetLike.Homogeneous.{u2, u3, u1} ι A σ _inst_4 𝒜 x) H (fun (x_1 : A) (H_h : And (Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x_1 (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (Eq.{succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) => And.casesOn.{0} (Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x_1 (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (Eq.{succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x) (fun (H_h : And (Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x_1 (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (Eq.{succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) => SetLike.Homogeneous.{u2, u3, u1} ι A σ _inst_4 𝒜 x) H_h (fun (H_h_left : Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x_1 (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (H_h_right : Eq.{succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x) => Eq.ndrec.{0, succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) (fun (x : A) => SetLike.Homogeneous.{u2, u3, u1} ι A σ _inst_4 𝒜 x) (SetLike.homogeneous_coe.{u2, u1, u3} ι A σ _inst_4 𝒜 i (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i)) (AddMonoidHom.addMonoidHomClass.{u3, u3} A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))))) (AddMonoidHom.comp.{u3, max u2 u3, u3} A (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i))))) ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)))) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i))) (Dfinsupp.evalAddMonoidHom.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i))) i) (RingHom.toAddMonoidHom.{u3, max u2 u3} A (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) _inst_3 (SetLike.gsemiring.{u2, u1, u3} ι σ A _inst_3 _inst_1 _inst_4 _inst_5 (fun (i : ι) => 𝒜 i) (GradedRing.proj.proof_1.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) (RingEquiv.toRingHom.{u3, max u2 u3} A (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) _inst_3 (SetLike.gsemiring.{u2, u1, u3} ι σ A _inst_3 _inst_1 _inst_4 _inst_5 (fun (i : ι) => 𝒜 i) (GradedRing.proj.proof_1.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) (DirectSum.decomposeRingEquiv.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) x_1)) x H_h_right))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_hull_eq_supr Ideal.homogeneousHull_eq_iSupₓ'. -/
theorem Ideal.homogeneousHull_eq_iSup :
I.homogeneousHull 𝒜 =
@@ -1076,10 +1034,7 @@ def HomogeneousIdeal.irrelevant : HomogeneousIdeal 𝒜 :=
-/
/- warning: homogeneous_ideal.mem_irrelevant_iff -> HomogeneousIdeal.mem_irrelevant_iff is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : CanonicallyOrderedAddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜] (a : A), Iff (Membership.Mem.{u3, u3} A (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_6) (SetLike.hasMem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_6)) a (HomogeneousIdeal.irrelevant.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜 _inst_6 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))))))))) a) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))))))
-but is expected to have type
- forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : CanonicallyOrderedAddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜] (a : A), Iff (Membership.mem.{u3, u3} A (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_6) (SetLike.instMembership.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_6) A (HomogeneousIdeal.setLike.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_6)) a (HomogeneousIdeal.irrelevant.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) a) (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜 _inst_6 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))))))) a) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) a) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) a) (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) a) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) a) _inst_1)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.mem_irrelevant_iff HomogeneousIdeal.mem_irrelevant_iffₓ'. -/
@[simp]
theorem HomogeneousIdeal.mem_irrelevant_iff (a : A) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang, Eric Wieser
! This file was ported from Lean 3 source module ring_theory.graded_algebra.homogeneous_ideal
-! leanprover-community/mathlib commit 4e861f25ba5ceef42ba0712d8ffeb32f38ad6441
+! leanprover-community/mathlib commit 4280f5f32e16755ec7985ce11e189b6cd6ff6735
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.RingTheory.GradedAlgebra.Basic
/-!
# Homogeneous ideals of a graded algebra
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file defines homogeneous ideals of `graded_ring 𝒜` where `𝒜 : ι → submodule R A` and
operations on them.
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -63,44 +63,76 @@ variable (I : Ideal A)
include A
+#print Ideal.IsHomogeneous /-
/-- An `I : ideal A` is homogeneous if for every `r ∈ I`, all homogeneous components
of `r` are in `I`.-/
def Ideal.IsHomogeneous : Prop :=
∀ (i : ι) ⦃r : A⦄, r ∈ I → (DirectSum.decompose 𝒜 r i : A) ∈ I
#align ideal.is_homogeneous Ideal.IsHomogeneous
+-/
+#print HomogeneousIdeal /-
/-- For any `semiring A`, we collect the homogeneous ideals of `A` into a type. -/
structure HomogeneousIdeal extends Submodule A A where
is_homogeneous' : Ideal.IsHomogeneous 𝒜 to_submodule
#align homogeneous_ideal HomogeneousIdeal
+-/
variable {𝒜}
+#print HomogeneousIdeal.toIdeal /-
/-- Converting a homogeneous ideal to an ideal-/
def HomogeneousIdeal.toIdeal (I : HomogeneousIdeal 𝒜) : Ideal A :=
I.toSubmodule
#align homogeneous_ideal.to_ideal HomogeneousIdeal.toIdeal
+-/
+/- warning: homogeneous_ideal.is_homogeneous -> HomogeneousIdeal.isHomogeneous is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6), Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6), Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.is_homogeneous HomogeneousIdeal.isHomogeneousₓ'. -/
theorem HomogeneousIdeal.isHomogeneous (I : HomogeneousIdeal 𝒜) : I.toIdeal.Homogeneous 𝒜 :=
I.is_homogeneous'
#align homogeneous_ideal.is_homogeneous HomogeneousIdeal.isHomogeneous
+/- warning: homogeneous_ideal.to_ideal_injective -> HomogeneousIdeal.toIdeal_injective is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜], Function.Injective.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] [_inst_3 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u2} ι] [_inst_5 : AddMonoid.{u2} ι] [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜], Function.Injective.{succ u3, succ u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_injective HomogeneousIdeal.toIdeal_injectiveₓ'. -/
theorem HomogeneousIdeal.toIdeal_injective :
Function.Injective (HomogeneousIdeal.toIdeal : HomogeneousIdeal 𝒜 → Ideal A) :=
fun ⟨x, hx⟩ ⟨y, hy⟩ (h : x = y) => by simp [h]
#align homogeneous_ideal.to_ideal_injective HomogeneousIdeal.toIdeal_injective
+#print HomogeneousIdeal.setLike /-
instance HomogeneousIdeal.setLike : SetLike (HomogeneousIdeal 𝒜) A
where
coe I := I.toIdeal
coe_injective' I J h := HomogeneousIdeal.toIdeal_injective <| SetLike.coe_injective h
#align homogeneous_ideal.set_like HomogeneousIdeal.setLike
+-/
+/- warning: homogeneous_ideal.ext -> HomogeneousIdeal.ext is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6} {J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6}, (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 J)) -> (Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) I J)
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6} {J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6}, (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 J)) -> (Eq.{succ u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) I J)
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.ext HomogeneousIdeal.extₓ'. -/
@[ext]
theorem HomogeneousIdeal.ext {I J : HomogeneousIdeal 𝒜} (h : I.toIdeal = J.toIdeal) : I = J :=
HomogeneousIdeal.toIdeal_injective h
#align homogeneous_ideal.ext HomogeneousIdeal.ext
+/- warning: homogeneous_ideal.mem_iff -> HomogeneousIdeal.mem_iff is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6} {x : A}, Iff (Membership.Mem.{u3, u3} A (Ideal.{u3} A _inst_1) (SetLike.hasMem.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) x (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) (Membership.Mem.{u3, u3} A (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.hasMem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) x I)
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6} {x : A}, Iff (Membership.mem.{u1, u1} A (Ideal.{u1} A _inst_1) (SetLike.instMembership.{u1, u1} (Ideal.{u1} A _inst_1) A (Submodule.setLike.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1))) x (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) (Membership.mem.{u1, u1} A (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.instMembership.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) x I)
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.mem_iff HomogeneousIdeal.mem_iffₓ'. -/
@[simp]
theorem HomogeneousIdeal.mem_iff {I : HomogeneousIdeal 𝒜} {x : A} : x ∈ I.toIdeal ↔ x ∈ I :=
Iff.rfl
@@ -118,16 +150,30 @@ variable (I : Ideal A)
include A
+#print Ideal.homogeneousCore' /-
/-- For any `I : ideal A`, not necessarily homogeneous, `I.homogeneous_core' 𝒜`
is the largest homogeneous ideal of `A` contained in `I`, as an ideal. -/
def Ideal.homogeneousCore' (I : Ideal A) : Ideal A :=
Ideal.span (coe '' ((coe : Subtype (Homogeneous 𝒜) → A) ⁻¹' I))
#align ideal.homogeneous_core' Ideal.homogeneousCore'
+-/
+/- warning: ideal.homogeneous_core'_mono -> Ideal.homogeneousCore'_mono is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] (𝒜 : ι -> σ), Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (Ideal.homogeneousCore'.{u1, u2, u3} ι σ A _inst_1 _inst_2 𝒜)
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] (𝒜 : ι -> σ), Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (Ideal.homogeneousCore'.{u2, u1, u3} ι σ A _inst_1 _inst_2 𝒜)
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core'_mono Ideal.homogeneousCore'_monoₓ'. -/
theorem Ideal.homogeneousCore'_mono : Monotone (Ideal.homogeneousCore' 𝒜) := fun I J I_le_J =>
Ideal.span_mono <| Set.image_subset _ fun x => @I_le_J _
#align ideal.homogeneous_core'_mono Ideal.homogeneousCore'_mono
+/- warning: ideal.homogeneous_core'_le -> Ideal.homogeneousCore'_le is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] (𝒜 : ι -> σ) (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (Ideal.homogeneousCore'.{u1, u2, u3} ι σ A _inst_1 _inst_2 𝒜 I) I
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] (𝒜 : ι -> σ) (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) (Ideal.homogeneousCore'.{u2, u1, u3} ι σ A _inst_1 _inst_2 𝒜 I) I
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core'_le Ideal.homogeneousCore'_leₓ'. -/
theorem Ideal.homogeneousCore'_le : I.homogeneousCore' 𝒜 ≤ I :=
Ideal.span_le.2 <| image_preimage_subset _ _
#align ideal.homogeneous_core'_le Ideal.homogeneousCore'_le
@@ -146,16 +192,34 @@ variable (I : Ideal A)
include A
+/- warning: ideal.is_homogeneous_iff_forall_subset -> Ideal.isHomogeneous_iff_forall_subset is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), Iff (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (forall (i : ι), HasSubset.Subset.{u3} (Set.{u3} A) (Set.hasSubset.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I) (Set.preimage.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u1} A _inst_1), Iff (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (forall (i : ι), HasSubset.Subset.{u1} (Set.{u1} A) (Set.instHasSubsetSet.{u1} A) (SetLike.coe.{u1, u1} (Ideal.{u1} A _inst_1) A (Submodule.setLike.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) I) (Set.preimage.{u1, u1} A A (FunLike.coe.{succ u1, succ u1, succ u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u1, u1, u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))))) (GradedRing.proj.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 i)) (SetLike.coe.{u1, u1} (Ideal.{u1} A _inst_1) A (Submodule.setLike.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) I)))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous_iff_forall_subset Ideal.isHomogeneous_iff_forall_subsetₓ'. -/
theorem Ideal.isHomogeneous_iff_forall_subset :
I.Homogeneous 𝒜 ↔ ∀ i, (I : Set A) ⊆ GradedRing.proj 𝒜 i ⁻¹' I :=
Iff.rfl
#align ideal.is_homogeneous_iff_forall_subset Ideal.isHomogeneous_iff_forall_subset
+/- warning: ideal.is_homogeneous_iff_subset_Inter -> Ideal.isHomogeneous_iff_subset_iInter is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), Iff (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (HasSubset.Subset.{u3} (Set.{u3} A) (Set.hasSubset.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I) (Set.iInter.{u3, succ u1} A ι (fun (i : ι) => Set.preimage.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I))))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u1} A _inst_1), Iff (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (HasSubset.Subset.{u1} (Set.{u1} A) (Set.instHasSubsetSet.{u1} A) (SetLike.coe.{u1, u1} (Ideal.{u1} A _inst_1) A (Submodule.setLike.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) I) (Set.iInter.{u1, succ u3} A ι (fun (i : ι) => Set.preimage.{u1, u1} A A (FunLike.coe.{succ u1, succ u1, succ u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u1, u1, u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A A (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) (AddZeroClass.toAdd.{u1} A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u1, u1, u1} (AddMonoidHom.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u1, u1} A A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))))) (GradedRing.proj.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 i)) (SetLike.coe.{u1, u1} (Ideal.{u1} A _inst_1) A (Submodule.setLike.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) I))))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous_iff_subset_Inter Ideal.isHomogeneous_iff_subset_iInterₓ'. -/
theorem Ideal.isHomogeneous_iff_subset_iInter :
I.Homogeneous 𝒜 ↔ (I : Set A) ⊆ ⋂ i, GradedRing.proj 𝒜 i ⁻¹' ↑I :=
subset_iInter_iff.symm
#align ideal.is_homogeneous_iff_subset_Inter Ideal.isHomogeneous_iff_subset_iInter
+/- warning: ideal.mul_homogeneous_element_mem_of_mem -> Ideal.mul_homogeneous_element_mem_of_mem is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u3} A _inst_1} (r : A) (x : A), (SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_2 𝒜 x) -> (Membership.Mem.{u3, u3} A (Ideal.{u3} A _inst_1) (SetLike.hasMem.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) x I) -> (forall (j : ι), Membership.Mem.{u3, u3} A (Ideal.{u3} A _inst_1) (SetLike.hasMem.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 j) (HMul.hMul.{u3, u3, u3} A A A (instHMul.{u3} A (Distrib.toHasMul.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) r x)) I)
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] [_inst_3 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u2} ι] [_inst_5 : AddMonoid.{u2} ι] [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u3} A _inst_1} (r : A) (x : A), (SetLike.Homogeneous.{u2, u3, u1} ι A σ _inst_2 𝒜 x) -> (Membership.mem.{u3, u3} A (Ideal.{u3} A _inst_1) (SetLike.instMembership.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) x I) -> (forall (j : ι), Membership.mem.{u3, u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) (HMul.hMul.{u3, u3, u3} A A A (instHMul.{u3} A (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))) r x)) (Ideal.{u3} A _inst_1) (SetLike.instMembership.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6 j) (HMul.hMul.{u3, u3, u3} A A A (instHMul.{u3} A (NonUnitalNonAssocSemiring.toMul.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))) r x)) I)
+Case conversion may be inaccurate. Consider using '#align ideal.mul_homogeneous_element_mem_of_mem Ideal.mul_homogeneous_element_mem_of_memₓ'. -/
theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁ : Homogeneous 𝒜 x)
(hx₂ : x ∈ I) (j : ι) : GradedRing.proj 𝒜 j (r * x) ∈ I := by
classical
@@ -171,6 +235,12 @@ theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁
· exact I.zero_mem
#align ideal.mul_homogeneous_element_mem_of_mem Ideal.mul_homogeneous_element_mem_of_mem
+/- warning: ideal.is_homogeneous_span -> Ideal.homogeneous_span is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (s : Set.{u3} A), (forall (x : A), (Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x s) -> (SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_2 𝒜 x)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.span.{u3} A _inst_1 s))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] [_inst_3 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u2} ι] [_inst_5 : AddMonoid.{u2} ι] [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (s : Set.{u3} A), (forall (x : A), (Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x s) -> (SetLike.Homogeneous.{u2, u3, u1} ι A σ _inst_2 𝒜 x)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.span.{u3} A _inst_1 s))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous_span Ideal.homogeneous_spanₓ'. -/
theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x) :
(Ideal.span s).Homogeneous 𝒜 := by
rintro i r hr
@@ -188,6 +258,7 @@ theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x)
· exact Ideal.subset_span z.2
#align ideal.is_homogeneous_span Ideal.homogeneous_span
+#print Ideal.homogeneousCore /-
/-- For any `I : ideal A`, not necessarily homogeneous, `I.homogeneous_core' 𝒜`
is the largest homogeneous ideal of `A` contained in `I`.-/
def Ideal.homogeneousCore : HomogeneousIdeal 𝒜 :=
@@ -197,22 +268,47 @@ def Ideal.homogeneousCore : HomogeneousIdeal 𝒜 :=
rw [Subtype.image_preimage_coe] at h
exact h.2⟩
#align ideal.homogeneous_core Ideal.homogeneousCore
+-/
+/- warning: ideal.homogeneous_core_mono -> Ideal.homogeneousCore_mono is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜], Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.partialOrder.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6))) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] [_inst_3 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u2} ι] [_inst_5 : AddMonoid.{u2} ι] [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜], Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.instPartialOrder.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6))) (Ideal.homogeneousCore.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core_mono Ideal.homogeneousCore_monoₓ'. -/
theorem Ideal.homogeneousCore_mono : Monotone (Ideal.homogeneousCore 𝒜) :=
Ideal.homogeneousCore'_mono 𝒜
#align ideal.homogeneous_core_mono Ideal.homogeneousCore_mono
+/- warning: ideal.to_ideal_homogeneous_core_le -> Ideal.toIdeal_homogeneousCore_le is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u1, u3} σ A] [_inst_3 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u2} ι] [_inst_5 : AddMonoid.{u2} ι] [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u2, u1, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I
+Case conversion may be inaccurate. Consider using '#align ideal.to_ideal_homogeneous_core_le Ideal.toIdeal_homogeneousCore_leₓ'. -/
theorem Ideal.toIdeal_homogeneousCore_le : (I.homogeneousCore 𝒜).toIdeal ≤ I :=
Ideal.homogeneousCore'_le 𝒜 I
#align ideal.to_ideal_homogeneous_core_le Ideal.toIdeal_homogeneousCore_le
variable {𝒜 I}
+/- warning: ideal.mem_homogeneous_core_of_is_homogeneous_of_mem -> Ideal.mem_homogeneousCore_of_homogeneous_of_mem is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u3} A _inst_1} {x : A}, (SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_2 𝒜 x) -> (Membership.Mem.{u3, u3} A (Ideal.{u3} A _inst_1) (SetLike.hasMem.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))) x I) -> (Membership.Mem.{u3, u3} A (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.hasMem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) x (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u1}} {A : Type.{u2}} [_inst_1 : Semiring.{u2} A] [_inst_2 : SetLike.{u1, u2} σ A] [_inst_3 : AddSubmonoidClass.{u1, u2} σ A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u2, u1} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u2} A _inst_1} {x : A}, (SetLike.Homogeneous.{u3, u2, u1} ι A σ _inst_2 𝒜 x) -> (Membership.mem.{u2, u2} A (Ideal.{u2} A _inst_1) (SetLike.instMembership.{u2, u2} (Ideal.{u2} A _inst_1) A (Submodule.setLike.{u2, u2} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_1))) (Semiring.toModule.{u2} A _inst_1))) x I) -> (Membership.mem.{u2, u2} A (HomogeneousIdeal.{u3, u1, u2} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (SetLike.instMembership.{u2, u2} (HomogeneousIdeal.{u3, u1, u2} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) A (HomogeneousIdeal.setLike.{u3, u1, u2} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) x (Ideal.homogeneousCore.{u3, u1, u2} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I))
+Case conversion may be inaccurate. Consider using '#align ideal.mem_homogeneous_core_of_is_homogeneous_of_mem Ideal.mem_homogeneousCore_of_homogeneous_of_memₓ'. -/
theorem Ideal.mem_homogeneousCore_of_homogeneous_of_mem {x : A} (h : SetLike.Homogeneous 𝒜 x)
(hmem : x ∈ I) : x ∈ I.homogeneousCore 𝒜 :=
Ideal.subset_span ⟨⟨x, h⟩, hmem, rfl⟩
#align ideal.mem_homogeneous_core_of_is_homogeneous_of_mem Ideal.mem_homogeneousCore_of_homogeneous_of_mem
+/- warning: ideal.is_homogeneous.to_ideal_homogeneous_core_eq_self -> Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) -> (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I)
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] {I : Ideal.{u1} A _inst_1}, (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) -> (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I)
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.to_ideal_homogeneous_core_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_selfₓ'. -/
theorem Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self (h : I.Homogeneous 𝒜) :
(I.homogeneousCore 𝒜).toIdeal = I :=
by
@@ -223,6 +319,12 @@ theorem Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self (h : I.Homogeneous
exact Ideal.sum_mem _ fun j hj => Ideal.subset_span ⟨⟨_, is_homogeneous_coe _⟩, h _ hx, rfl⟩
#align ideal.is_homogeneous.to_ideal_homogeneous_core_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousCore_eq_self
+/- warning: homogeneous_ideal.to_ideal_homogeneous_core_eq_self -> HomogeneousIdeal.toIdeal_homogeneousCore_eq_self is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6), Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] {𝒜 : ι -> σ} [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6), Eq.{succ u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (Ideal.homogeneousCore.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_homogeneous_core_eq_self HomogeneousIdeal.toIdeal_homogeneousCore_eq_selfₓ'. -/
@[simp]
theorem HomogeneousIdeal.toIdeal_homogeneousCore_eq_self (I : HomogeneousIdeal 𝒜) :
I.toIdeal.homogeneousCore 𝒜 = I := by
@@ -231,10 +333,22 @@ theorem HomogeneousIdeal.toIdeal_homogeneousCore_eq_self (I : HomogeneousIdeal
variable (𝒜 I)
+/- warning: ideal.is_homogeneous.iff_eq -> Ideal.IsHomogeneous.iff_eq is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), Iff (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I)
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u1} A _inst_1), Iff (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 (Ideal.homogeneousCore.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I)) I)
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.iff_eq Ideal.IsHomogeneous.iff_eqₓ'. -/
theorem Ideal.IsHomogeneous.iff_eq : I.Homogeneous 𝒜 ↔ (I.homogeneousCore 𝒜).toIdeal = I :=
⟨fun hI => hI.toIdeal_homogeneousCore_eq_self, fun hI => hI ▸ (Ideal.homogeneousCore 𝒜 I).2⟩
#align ideal.is_homogeneous.iff_eq Ideal.IsHomogeneous.iff_eq
+/- warning: ideal.is_homogeneous.iff_exists -> Ideal.IsHomogeneous.iff_exists is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : SetLike.{u2, u3} σ A] [_inst_3 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : AddMonoid.{u1} ι] [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u3} A _inst_1), Iff (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (Exists.{succ u3} (Set.{u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6)))) (fun (S : Set.{u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6)))) => Eq.{succ u3} (Ideal.{u3} A _inst_1) I (Ideal.span.{u3} A _inst_1 (Set.image.{u3, u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))) A ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))) A (HasLiftT.mk.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))) A (CoeTCₓ.coe.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))) A (coeBase.{succ u3, succ u3} (coeSort.{succ u3, succ (succ u3)} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))) A (coeSubtype.{succ u3} A (fun (x : A) => Membership.Mem.{u3, u3} A (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) (SetLike.hasMem.{u3, u3} (Submonoid.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))) A (Submonoid.setLike.{u3} A (Monoid.toMulOneClass.{u3} A (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1))))) x (SetLike.homogeneousSubmonoid.{u1, u3, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)) 𝒜 (GradedRing.to_gradedMonoid.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6)))))))) S))))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : SetLike.{u2, u1} σ A] [_inst_3 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_2] (𝒜 : ι -> σ) [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : AddMonoid.{u3} ι] [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜] (I : Ideal.{u1} A _inst_1), Iff (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_2 _inst_3 𝒜 (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6 I) (Exists.{succ u1} (Set.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) A (Submonoid.instSetLikeSubmonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1))))) x (SetLike.homogeneousSubmonoid.{u3, u1, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)) 𝒜 (GradedRing.toGradedMonoid.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))))) (fun (S : Set.{u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) A (Submonoid.instSetLikeSubmonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1))))) x (SetLike.homogeneousSubmonoid.{u3, u1, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)) 𝒜 (GradedRing.toGradedMonoid.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))))) => Eq.{succ u1} (Ideal.{u1} A _inst_1) I (Ideal.span.{u1} A _inst_1 (Set.image.{u1, u1} (Subtype.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) (SetLike.instMembership.{u1, u1} (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) A (Submonoid.instSetLikeSubmonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1))))) x (SetLike.homogeneousSubmonoid.{u3, u1, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)) 𝒜 (GradedRing.toGradedMonoid.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6)))) A (Subtype.val.{succ u1} A (fun (x : A) => Membership.mem.{u1, u1} A (Set.{u1} A) (Set.instMembershipSet.{u1} A) x (SetLike.coe.{u1, u1} (Submonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) A (Submonoid.instSetLikeSubmonoid.{u1} A (Monoid.toMulOneClass.{u1} A (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)))) (SetLike.homogeneousSubmonoid.{u3, u1, u2} ι A σ _inst_2 _inst_5 (MonoidWithZero.toMonoid.{u1} A (Semiring.toMonoidWithZero.{u1} A _inst_1)) 𝒜 (GradedRing.toGradedMonoid.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_1 _inst_2 _inst_3 𝒜 _inst_6))))) S))))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.iff_exists Ideal.IsHomogeneous.iff_existsₓ'. -/
theorem Ideal.IsHomogeneous.iff_exists :
I.Homogeneous 𝒜 ↔ ∃ S : Set (homogeneousSubmonoid 𝒜), I = Ideal.span (coe '' S) :=
by
@@ -262,6 +376,12 @@ include A
namespace Ideal.IsHomogeneous
+/- warning: ideal.is_homogeneous.bot -> Ideal.IsHomogeneous.bot is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Bot.bot.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasBot.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Bot.bot.{u1} (Ideal.{u1} A _inst_1) (Submodule.instBotSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.bot Ideal.IsHomogeneous.botₓ'. -/
theorem bot : Ideal.IsHomogeneous 𝒜 ⊥ := fun i r hr =>
by
simp only [Ideal.mem_bot] at hr
@@ -269,15 +389,33 @@ theorem bot : Ideal.IsHomogeneous 𝒜 ⊥ := fun i r hr =>
apply Ideal.zero_mem
#align ideal.is_homogeneous.bot Ideal.IsHomogeneous.bot
+/- warning: ideal.is_homogeneous.top -> Ideal.IsHomogeneous.top is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Top.top.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasTop.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Top.top.{u1} (Ideal.{u1} A _inst_1) (Submodule.instTopSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.top Ideal.IsHomogeneous.topₓ'. -/
theorem top : Ideal.IsHomogeneous 𝒜 ⊤ := fun i r hr => by simp only [Submodule.mem_top]
#align ideal.is_homogeneous.top Ideal.IsHomogeneous.top
variable {𝒜}
+/- warning: ideal.is_homogeneous.inf -> Ideal.IsHomogeneous.inf is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A _inst_1} {J : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Inf.inf.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I J))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A _inst_1} {J : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Inf.inf.{u3} (Ideal.{u3} A _inst_1) (Submodule.instInfSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I J))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.inf Ideal.IsHomogeneous.infₓ'. -/
theorem inf {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜) : (I ⊓ J).Homogeneous 𝒜 :=
fun i r hr => ⟨HI _ hr.1, HJ _ hr.2⟩
#align ideal.is_homogeneous.inf Ideal.IsHomogeneous.inf
+/- warning: ideal.is_homogeneous.sup -> Ideal.IsHomogeneous.sup is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A _inst_1} {J : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Sup.sup.{u3} (Ideal.{u3} A _inst_1) (SemilatticeSup.toHasSup.{u3} (Ideal.{u3} A _inst_1) (Lattice.toSemilatticeSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toLattice.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) I J))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A _inst_1} {J : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Sup.sup.{u3} (Ideal.{u3} A _inst_1) (SemilatticeSup.toSup.{u3} (Ideal.{u3} A _inst_1) (Lattice.toSemilatticeSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toLattice.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) I J))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.sup Ideal.IsHomogeneous.supₓ'. -/
theorem sup {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜) : (I ⊔ J).Homogeneous 𝒜 :=
by
rw [iff_exists] at HI HJ⊢
@@ -287,6 +425,12 @@ theorem sup {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜)
exact (Submodule.span_union _ _).symm
#align ideal.is_homogeneous.sup Ideal.IsHomogeneous.sup
+/- warning: ideal.is_homogeneous.supr -> Ideal.IsHomogeneous.iSup is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {f : κ -> (Ideal.{u3} A _inst_1)}, (forall (i : κ), Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => f i)))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {f : κ -> (Ideal.{u3} A _inst_1)}, (forall (i : κ), Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => f i)))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.supr Ideal.IsHomogeneous.iSupₓ'. -/
protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
(⨆ i, f i).Homogeneous 𝒜 := by
simp_rw [iff_exists] at h⊢
@@ -297,6 +441,12 @@ protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homo
exact funext hs
#align ideal.is_homogeneous.supr Ideal.IsHomogeneous.iSup
+/- warning: ideal.is_homogeneous.infi -> Ideal.IsHomogeneous.iInf is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {f : κ -> (Ideal.{u3} A _inst_1)}, (forall (i : κ), Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => f i)))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {f : κ -> (Ideal.{u3} A _inst_1)}, (forall (i : κ), Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => f i)))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.infi Ideal.IsHomogeneous.iInfₓ'. -/
protected theorem iInf {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
(⨅ i, f i).Homogeneous 𝒜 := by
intro i x hx
@@ -304,24 +454,48 @@ protected theorem iInf {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homo
exact fun j => h _ _ (hx j)
#align ideal.is_homogeneous.infi Ideal.IsHomogeneous.iInf
+/- warning: ideal.is_homogeneous.supr₂ -> Ideal.IsHomogeneous.iSup₂ is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {κ' : κ -> Sort.{u5}} {f : forall (i : κ), (κ' i) -> (Ideal.{u3} A _inst_1)}, (forall (i : κ) (j : κ' i), Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i j)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => iSup.{u3, u5} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (κ' i) (fun (j : κ' i) => f i j))))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u5}} {κ' : κ -> Sort.{u4}} {f : forall (i : κ), (κ' i) -> (Ideal.{u3} A _inst_1)}, (forall (i : κ) (j : κ' i), Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i j)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u5} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (κ' i) (fun (j : κ' i) => f i j))))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.supr₂ Ideal.IsHomogeneous.iSup₂ₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-theorem supr₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
+theorem iSup₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
(h : ∀ i j, (f i j).Homogeneous 𝒜) : (⨆ (i) (j), f i j).Homogeneous 𝒜 :=
IsHomogeneous.iSup fun i => IsHomogeneous.iSup <| h i
-#align ideal.is_homogeneous.supr₂ Ideal.IsHomogeneous.supr₂
-
+#align ideal.is_homogeneous.supr₂ Ideal.IsHomogeneous.iSup₂
+
+/- warning: ideal.is_homogeneous.infi₂ -> Ideal.IsHomogeneous.iInf₂ is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {κ' : κ -> Sort.{u5}} {f : forall (i : κ), (κ' i) -> (Ideal.{u3} A _inst_1)}, (forall (i : κ) (j : κ' i), Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i j)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => iInf.{u3, u5} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (κ' i) (fun (j : κ' i) => f i j))))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u5}} {κ' : κ -> Sort.{u4}} {f : forall (i : κ), (κ' i) -> (Ideal.{u3} A _inst_1)}, (forall (i : κ) (j : κ' i), Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (f i j)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u5} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (κ' i) (fun (j : κ' i) => f i j))))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.infi₂ Ideal.IsHomogeneous.iInf₂ₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
-theorem infi₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
+theorem iInf₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
(h : ∀ i j, (f i j).Homogeneous 𝒜) : (⨅ (i) (j), f i j).Homogeneous 𝒜 :=
IsHomogeneous.iInf fun i => IsHomogeneous.iInf <| h i
-#align ideal.is_homogeneous.infi₂ Ideal.IsHomogeneous.infi₂
-
+#align ideal.is_homogeneous.infi₂ Ideal.IsHomogeneous.iInf₂
+
+/- warning: ideal.is_homogeneous.Sup -> Ideal.IsHomogeneous.sSup is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {ℐ : Set.{u3} (Ideal.{u3} A _inst_1)}, (forall (I : Ideal.{u3} A _inst_1), (Membership.Mem.{u3, u3} (Ideal.{u3} A _inst_1) (Set.{u3} (Ideal.{u3} A _inst_1)) (Set.hasMem.{u3} (Ideal.{u3} A _inst_1)) I ℐ) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (SupSet.sSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) ℐ))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {ℐ : Set.{u3} (Ideal.{u3} A _inst_1)}, (forall (I : Ideal.{u3} A _inst_1), (Membership.mem.{u3, u3} (Ideal.{u3} A _inst_1) (Set.{u3} (Ideal.{u3} A _inst_1)) (Set.instMembershipSet.{u3} (Ideal.{u3} A _inst_1)) I ℐ) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (SupSet.sSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) ℐ))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.sSupₓ'. -/
theorem sSup {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sSup ℐ).Homogeneous 𝒜 :=
by
rw [sSup_eq_iSup]
exact supr₂ h
#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.sSup
+/- warning: ideal.is_homogeneous.Inf -> Ideal.IsHomogeneous.sInf is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {ℐ : Set.{u3} (Ideal.{u3} A _inst_1)}, (forall (I : Ideal.{u3} A _inst_1), (Membership.Mem.{u3, u3} (Ideal.{u3} A _inst_1) (Set.{u3} (Ideal.{u3} A _inst_1)) (Set.hasMem.{u3} (Ideal.{u3} A _inst_1)) I ℐ) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (InfSet.sInf.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) ℐ))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {ℐ : Set.{u3} (Ideal.{u3} A _inst_1)}, (forall (I : Ideal.{u3} A _inst_1), (Membership.mem.{u3, u3} (Ideal.{u3} A _inst_1) (Set.{u3} (Ideal.{u3} A _inst_1)) (Set.instMembershipSet.{u3} (Ideal.{u3} A _inst_1)) I ℐ) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (InfSet.sInf.{u3} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) ℐ))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.Inf Ideal.IsHomogeneous.sInfₓ'. -/
theorem sInf {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sInf ℐ).Homogeneous 𝒜 :=
by
rw [sInf_eq_iInf]
@@ -350,90 +524,186 @@ instance : Inf (HomogeneousIdeal 𝒜) :=
⟨fun I J => ⟨_, I.Homogeneous.inf J.Homogeneous⟩⟩
instance : SupSet (HomogeneousIdeal 𝒜) :=
- ⟨fun S => ⟨⨆ s ∈ S, toIdeal s, Ideal.IsHomogeneous.supr₂ fun s _ => s.Homogeneous⟩⟩
+ ⟨fun S => ⟨⨆ s ∈ S, toIdeal s, Ideal.IsHomogeneous.iSup₂ fun s _ => s.Homogeneous⟩⟩
instance : InfSet (HomogeneousIdeal 𝒜) :=
- ⟨fun S => ⟨⨅ s ∈ S, toIdeal s, Ideal.IsHomogeneous.infi₂ fun s _ => s.Homogeneous⟩⟩
-
+ ⟨fun S => ⟨⨅ s ∈ S, toIdeal s, Ideal.IsHomogeneous.iInf₂ fun s _ => s.Homogeneous⟩⟩
+
+/- warning: homogeneous_ideal.coe_top -> HomogeneousIdeal.coe_top is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Set.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) (Top.top.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasTop.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Set.univ.{u3} A)
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Set.{u3} A) (SetLike.coe.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Top.top.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instTopHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Set.univ.{u3} A)
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.coe_top HomogeneousIdeal.coe_topₓ'. -/
@[simp]
theorem coe_top : ((⊤ : HomogeneousIdeal 𝒜) : Set A) = univ :=
rfl
#align homogeneous_ideal.coe_top HomogeneousIdeal.coe_top
+/- warning: homogeneous_ideal.coe_bot -> HomogeneousIdeal.coe_bot is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Set.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) (Bot.bot.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasBot.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (OfNat.ofNat.{u3} (Set.{u3} A) 0 (OfNat.mk.{u3} (Set.{u3} A) 0 (Zero.zero.{u3} (Set.{u3} A) (Set.zero.{u3} A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))))))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Set.{u3} A) (SetLike.coe.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Bot.bot.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instBotHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (OfNat.ofNat.{u3} (Set.{u3} A) 0 (Zero.toOfNat0.{u3} (Set.{u3} A) (Set.zero.{u3} A (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.coe_bot HomogeneousIdeal.coe_botₓ'. -/
@[simp]
theorem coe_bot : ((⊥ : HomogeneousIdeal 𝒜) : Set A) = 0 :=
rfl
#align homogeneous_ideal.coe_bot HomogeneousIdeal.coe_bot
+/- warning: homogeneous_ideal.coe_sup -> HomogeneousIdeal.coe_sup is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Set.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) (Sup.sup.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (HAdd.hAdd.{u3, u3, u3} (Set.{u3} A) (Set.{u3} A) (Set.{u3} A) (instHAdd.{u3} (Set.{u3} A) (Set.add.{u3} A (Distrib.toHasAdd.{u3} A (NonUnitalNonAssocSemiring.toDistrib.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) I) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) J))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Set.{u1} A) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Sup.sup.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (HAdd.hAdd.{u1, u1, u1} (Set.{u1} A) (Set.{u1} A) (Set.{u1} A) (instHAdd.{u1} (Set.{u1} A) (Set.add.{u1} A (Distrib.toAdd.{u1} A (NonUnitalNonAssocSemiring.toDistrib.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1)))))) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) J))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.coe_sup HomogeneousIdeal.coe_supₓ'. -/
@[simp]
theorem coe_sup (I J : HomogeneousIdeal 𝒜) : ↑(I ⊔ J) = (I + J : Set A) :=
Submodule.coe_sup _ _
#align homogeneous_ideal.coe_sup HomogeneousIdeal.coe_sup
+/- warning: homogeneous_ideal.coe_inf -> HomogeneousIdeal.coe_inf is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Set.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) (Inf.inf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Inter.inter.{u3} (Set.{u3} A) (Set.hasInter.{u3} A) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) I) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)))) J))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Set.{u1} A) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Inf.inf.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Inter.inter.{u1} (Set.{u1} A) (Set.instInterSet.{u1} A) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I) (SetLike.coe.{u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) A (HomogeneousIdeal.setLike.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) J))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.coe_inf HomogeneousIdeal.coe_infₓ'. -/
@[simp]
theorem coe_inf (I J : HomogeneousIdeal 𝒜) : (↑(I ⊓ J) : Set A) = I ∩ J :=
rfl
#align homogeneous_ideal.coe_inf HomogeneousIdeal.coe_inf
+/- warning: homogeneous_ideal.to_ideal_top -> HomogeneousIdeal.toIdeal_top is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Top.top.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasTop.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Top.top.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasTop.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Top.top.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instTopHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Top.top.{u3} (Ideal.{u3} A _inst_1) (Submodule.instTopSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_top HomogeneousIdeal.toIdeal_topₓ'. -/
@[simp]
theorem toIdeal_top : (⊤ : HomogeneousIdeal 𝒜).toIdeal = (⊤ : Ideal A) :=
rfl
#align homogeneous_ideal.to_ideal_top HomogeneousIdeal.toIdeal_top
+/- warning: homogeneous_ideal.to_ideal_bot -> HomogeneousIdeal.toIdeal_bot is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Bot.bot.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasBot.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Bot.bot.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasBot.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Bot.bot.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instBotHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Bot.bot.{u3} (Ideal.{u3} A _inst_1) (Submodule.instBotSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_bot HomogeneousIdeal.toIdeal_botₓ'. -/
@[simp]
theorem toIdeal_bot : (⊥ : HomogeneousIdeal 𝒜).toIdeal = (⊥ : Ideal A) :=
rfl
#align homogeneous_ideal.to_ideal_bot HomogeneousIdeal.toIdeal_bot
+/- warning: homogeneous_ideal.to_ideal_sup -> HomogeneousIdeal.toIdeal_sup is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Sup.sup.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Sup.sup.{u3} (Ideal.{u3} A _inst_1) (SemilatticeSup.toHasSup.{u3} (Ideal.{u3} A _inst_1) (Lattice.toSemilatticeSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toLattice.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Sup.sup.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Sup.sup.{u1} (Ideal.{u1} A _inst_1) (SemilatticeSup.toSup.{u1} (Ideal.{u1} A _inst_1) (Lattice.toSemilatticeSup.{u1} (Ideal.{u1} A _inst_1) (ConditionallyCompleteLattice.toLattice.{u1} (Ideal.{u1} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Ideal.{u1} A _inst_1) (Submodule.completeLattice.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_sup HomogeneousIdeal.toIdeal_supₓ'. -/
@[simp]
theorem toIdeal_sup (I J : HomogeneousIdeal 𝒜) : (I ⊔ J).toIdeal = I.toIdeal ⊔ J.toIdeal :=
rfl
#align homogeneous_ideal.to_ideal_sup HomogeneousIdeal.toIdeal_sup
+/- warning: homogeneous_ideal.to_ideal_inf -> HomogeneousIdeal.toIdeal_inf is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Inf.inf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Inf.inf.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Inf.inf.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) I J)) (Inf.inf.{u1} (Ideal.{u1} A _inst_1) (Submodule.instInfSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_inf HomogeneousIdeal.toIdeal_infₓ'. -/
@[simp]
theorem toIdeal_inf (I J : HomogeneousIdeal 𝒜) : (I ⊓ J).toIdeal = I.toIdeal ⊓ J.toIdeal :=
rfl
#align homogeneous_ideal.to_ideal_inf HomogeneousIdeal.toIdeal_inf
+/- warning: homogeneous_ideal.to_ideal_Sup -> HomogeneousIdeal.toIdeal_sSup is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (ℐ : Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (SupSet.sSup.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ℐ)) (iSup.{u3, succ u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (s : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => iSup.{u3, 0} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (Membership.Mem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.hasMem.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) (fun (H : Membership.Mem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.hasMem.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 s)))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (ℐ : Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (SupSet.sSup.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ℐ)) (iSup.{u3, succ u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (s : HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => iSup.{u3, 0} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (Membership.mem.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.instMembershipSet.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) (fun (H : Membership.mem.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.instMembershipSet.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) => HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 s)))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_Sup HomogeneousIdeal.toIdeal_sSupₓ'. -/
@[simp]
theorem toIdeal_sSup (ℐ : Set (HomogeneousIdeal 𝒜)) : (sSup ℐ).toIdeal = ⨆ s ∈ ℐ, toIdeal s :=
rfl
#align homogeneous_ideal.to_ideal_Sup HomogeneousIdeal.toIdeal_sSup
+/- warning: homogeneous_ideal.to_ideal_Inf -> HomogeneousIdeal.toIdeal_sInf is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (ℐ : Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (InfSet.sInf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ℐ)) (iInf.{u3, succ u3} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (s : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => iInf.{u3, 0} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (Membership.Mem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.hasMem.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) (fun (H : Membership.Mem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.hasMem.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 s)))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (ℐ : Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (InfSet.sInf.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfSetHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ℐ)) (iInf.{u3, succ u3} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (s : HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => iInf.{u3, 0} (Ideal.{u3} A _inst_1) (Submodule.instInfSetSubmodule.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (Membership.mem.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.instMembershipSet.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) (fun (H : Membership.mem.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Set.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) (Set.instMembershipSet.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)) s ℐ) => HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 s)))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_Inf HomogeneousIdeal.toIdeal_sInfₓ'. -/
@[simp]
theorem toIdeal_sInf (ℐ : Set (HomogeneousIdeal 𝒜)) : (sInf ℐ).toIdeal = ⨅ s ∈ ℐ, toIdeal s :=
rfl
#align homogeneous_ideal.to_ideal_Inf HomogeneousIdeal.toIdeal_sInf
+/- warning: homogeneous_ideal.to_ideal_supr -> HomogeneousIdeal.toIdeal_iSup is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} (s : κ -> (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u4} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => s i))) (iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i)))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} (s : κ -> (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u1, u4} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => s i))) (iSup.{u1, u4} (Ideal.{u1} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u1} (Ideal.{u1} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Ideal.{u1} A _inst_1) (Submodule.completeLattice.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))) κ (fun (i : κ) => HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i)))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_supr HomogeneousIdeal.toIdeal_iSupₓ'. -/
@[simp]
theorem toIdeal_iSup {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
(⨆ i, s i).toIdeal = ⨆ i, (s i).toIdeal := by rw [iSup, to_ideal_Sup, iSup_range]
#align homogeneous_ideal.to_ideal_supr HomogeneousIdeal.toIdeal_iSup
+/- warning: homogeneous_ideal.to_ideal_infi -> HomogeneousIdeal.toIdeal_iInf is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} (s : κ -> (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u4} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => s i))) (iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i)))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} (s : κ -> (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u1, u4} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => s i))) (iInf.{u1, u4} (Ideal.{u1} A _inst_1) (Submodule.instInfSetSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) κ (fun (i : κ) => HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i)))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_infi HomogeneousIdeal.toIdeal_iInfₓ'. -/
@[simp]
theorem toIdeal_iInf {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
(⨅ i, s i).toIdeal = ⨅ i, (s i).toIdeal := by rw [iInf, to_ideal_Inf, iInf_range]
#align homogeneous_ideal.to_ideal_infi HomogeneousIdeal.toIdeal_iInf
+/- warning: homogeneous_ideal.to_ideal_supr₂ -> HomogeneousIdeal.toIdeal_iSup₂ is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {κ' : κ -> Sort.{u5}} (s : forall (i : κ), (κ' i) -> (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u3, u4} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => iSup.{u3, u5} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (κ' i) (fun (j : κ' i) => s i j)))) (iSup.{u3, u4} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) κ (fun (i : κ) => iSup.{u3, u5} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (κ' i) (fun (j : κ' i) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i j))))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u5}} {κ' : κ -> Sort.{u4}} (s : forall (i : κ), (κ' i) -> (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iSup.{u1, u5} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => iSup.{u1, u4} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (κ' i) (fun (j : κ' i) => s i j)))) (iSup.{u1, u5} (Ideal.{u1} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u1} (Ideal.{u1} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Ideal.{u1} A _inst_1) (Submodule.completeLattice.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))) κ (fun (i : κ) => iSup.{u1, u4} (Ideal.{u1} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u1} (Ideal.{u1} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u1} (Ideal.{u1} A _inst_1) (Submodule.completeLattice.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))) (κ' i) (fun (j : κ' i) => HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i j))))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_supr₂ HomogeneousIdeal.toIdeal_iSup₂ₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
@[simp]
-theorem toIdeal_supr₂ {κ : Sort _} {κ' : κ → Sort _} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
+theorem toIdeal_iSup₂ {κ : Sort _} {κ' : κ → Sort _} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
(⨆ (i) (j), s i j).toIdeal = ⨆ (i) (j), (s i j).toIdeal := by simp_rw [to_ideal_supr]
-#align homogeneous_ideal.to_ideal_supr₂ HomogeneousIdeal.toIdeal_supr₂
-
+#align homogeneous_ideal.to_ideal_supr₂ HomogeneousIdeal.toIdeal_iSup₂
+
+/- warning: homogeneous_ideal.to_ideal_infi₂ -> HomogeneousIdeal.toIdeal_iInf₂ is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u4}} {κ' : κ -> Sort.{u5}} (s : forall (i : κ), (κ' i) -> (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u3, u4} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => iInf.{u3, u5} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (κ' i) (fun (j : κ' i) => s i j)))) (iInf.{u3, u4} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) κ (fun (i : κ) => iInf.{u3, u5} (Ideal.{u3} A _inst_1) (Submodule.hasInf.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) (κ' i) (fun (j : κ' i) => HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i j))))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {κ : Sort.{u5}} {κ' : κ -> Sort.{u4}} (s : forall (i : κ), (κ' i) -> (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (iInf.{u1, u5} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) κ (fun (i : κ) => iInf.{u1, u4} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfSetHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (κ' i) (fun (j : κ' i) => s i j)))) (iInf.{u1, u5} (Ideal.{u1} A _inst_1) (Submodule.instInfSetSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) κ (fun (i : κ) => iInf.{u1, u4} (Ideal.{u1} A _inst_1) (Submodule.instInfSetSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)) (κ' i) (fun (j : κ' i) => HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (s i j))))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_infi₂ HomogeneousIdeal.toIdeal_iInf₂ₓ'. -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
@[simp]
-theorem toIdeal_infi₂ {κ : Sort _} {κ' : κ → Sort _} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
+theorem toIdeal_iInf₂ {κ : Sort _} {κ' : κ → Sort _} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
(⨅ (i) (j), s i j).toIdeal = ⨅ (i) (j), (s i j).toIdeal := by simp_rw [to_ideal_infi]
-#align homogeneous_ideal.to_ideal_infi₂ HomogeneousIdeal.toIdeal_infi₂
-
+#align homogeneous_ideal.to_ideal_infi₂ HomogeneousIdeal.toIdeal_iInf₂
+
+/- warning: homogeneous_ideal.eq_top_iff -> HomogeneousIdeal.eq_top_iff is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Iff (Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I (Top.top.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasTop.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (Top.top.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasTop.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Iff (Eq.{succ u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I (Top.top.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instTopHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (Top.top.{u1} (Ideal.{u1} A _inst_1) (Submodule.instTopSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1))))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.eq_top_iff HomogeneousIdeal.eq_top_iffₓ'. -/
@[simp]
theorem eq_top_iff (I : HomogeneousIdeal 𝒜) : I = ⊤ ↔ I.toIdeal = ⊤ :=
toIdeal_injective.eq_iff.symm
#align homogeneous_ideal.eq_top_iff HomogeneousIdeal.eq_top_iff
+/- warning: homogeneous_ideal.eq_bot_iff -> HomogeneousIdeal.eq_bot_iff is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Iff (Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I (Bot.bot.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasBot.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (Bot.bot.{u3} (Ideal.{u3} A _inst_1) (Submodule.hasBot.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Iff (Eq.{succ u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) I (Bot.bot.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instBotHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))) (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (Bot.bot.{u1} (Ideal.{u1} A _inst_1) (Submodule.instBotSubmodule.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1))))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.eq_bot_iff HomogeneousIdeal.eq_bot_iffₓ'. -/
@[simp]
theorem eq_bot_iff (I : HomogeneousIdeal 𝒜) : I = ⊥ ↔ I.toIdeal = ⊥ :=
toIdeal_injective.eq_iff.symm
@@ -446,6 +716,12 @@ instance : CompleteLattice (HomogeneousIdeal 𝒜) :=
instance : Add (HomogeneousIdeal 𝒜) :=
⟨(· ⊔ ·)⟩
+/- warning: homogeneous_ideal.to_ideal_add -> HomogeneousIdeal.toIdeal_add is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HAdd.hAdd.{u3, u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (instHAdd.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasAdd.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) I J)) (HAdd.hAdd.{u3, u3, u3} (Ideal.{u3} A _inst_1) (Ideal.{u3} A _inst_1) (Ideal.{u3} A _inst_1) (instHAdd.{u3} (Ideal.{u3} A _inst_1) (AddZeroClass.toHasAdd.{u3} (Ideal.{u3} A _inst_1) (AddMonoid.toAddZeroClass.{u3} (Ideal.{u3} A _inst_1) (AddCommMonoid.toAddMonoid.{u3} (Ideal.{u3} A _inst_1) (Submodule.pointwiseAddCommMonoid.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HAdd.hAdd.{u1, u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (instHAdd.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instAddHomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) I J)) (HAdd.hAdd.{u1, u1, u1} (Ideal.{u1} A _inst_1) (Ideal.{u1} A _inst_1) (Ideal.{u1} A _inst_1) (instHAdd.{u1} (Ideal.{u1} A _inst_1) (AddZeroClass.toAdd.{u1} (Ideal.{u1} A _inst_1) (AddMonoid.toAddZeroClass.{u1} (Ideal.{u1} A _inst_1) (AddCommMonoid.toAddMonoid.{u1} (Ideal.{u1} A _inst_1) (Submodule.pointwiseAddCommMonoid.{u1, u1} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))) (Semiring.toModule.{u1} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_add HomogeneousIdeal.toIdeal_addₓ'. -/
@[simp]
theorem toIdeal_add (I J : HomogeneousIdeal 𝒜) : (I + J).toIdeal = I.toIdeal + J.toIdeal :=
rfl
@@ -469,6 +745,12 @@ variable (I : Ideal A)
include A
+/- warning: ideal.is_homogeneous.mul -> Ideal.IsHomogeneous.mul is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)} {J : Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)}, (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HMul.hMul.{u3, u3, u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (instHMul.{u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.hasMul.{u3} A _inst_1)) I J))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)} {J : Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)}, (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) -> (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HMul.hMul.{u3, u3, u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (instHMul.{u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.instMulIdealToSemiring.{u3} A _inst_1)) I J))
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.mul Ideal.IsHomogeneous.mulₓ'. -/
theorem Ideal.IsHomogeneous.mul {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜) :
(I * J).Homogeneous 𝒜 :=
by
@@ -483,6 +765,12 @@ variable {𝒜}
instance : Mul (HomogeneousIdeal 𝒜)
where mul I J := ⟨I.toIdeal * J.toIdeal, I.Homogeneous.mul J.Homogeneous⟩
+/- warning: homogeneous_ideal.to_ideal_mul -> HomogeneousIdeal.toIdeal_mul is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : CommSemiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HMul.hMul.{u3, u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (instHMul.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasMul.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) I J)) (HMul.hMul.{u3, u3, u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (instHMul.{u3} (Ideal.{u3} A (CommSemiring.toSemiring.{u3} A _inst_1)) (Ideal.hasMul.{u3} A _inst_1)) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A (CommSemiring.toSemiring.{u3} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : CommSemiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (J : HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (Ideal.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (HMul.hMul.{u1, u1, u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (instHMul.{u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (instMulHomogeneousIdealToSemiring.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) I J)) (HMul.hMul.{u1, u1, u1} (Ideal.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)) (Ideal.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)) (Ideal.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)) (instHMul.{u1} (Ideal.{u1} A (CommSemiring.toSemiring.{u1} A _inst_1)) (Ideal.instMulIdealToSemiring.{u1} A _inst_1)) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A (CommSemiring.toSemiring.{u1} A _inst_1) _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_mul HomogeneousIdeal.toIdeal_mulₓ'. -/
@[simp]
theorem HomogeneousIdeal.toIdeal_mul (I J : HomogeneousIdeal 𝒜) :
(I * J).toIdeal = I.toIdeal * J.toIdeal :=
@@ -511,11 +799,23 @@ variable (I : Ideal A)
include A
+/- warning: ideal.homogeneous_core.gc -> Ideal.homogeneousCore.gc is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisConnection.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.partialOrder.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisConnection.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instPartialOrderHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core.gc Ideal.homogeneousCore.gcₓ'. -/
theorem Ideal.homogeneousCore.gc : GaloisConnection toIdeal (Ideal.homogeneousCore 𝒜) := fun I J =>
⟨fun H => I.toIdeal_homogeneousCore_eq_self ▸ Ideal.homogeneousCore_mono 𝒜 H, fun H =>
le_trans H (Ideal.homogeneousCore'_le _ _)⟩
#align ideal.homogeneous_core.gc Ideal.homogeneousCore.gc
+/- warning: ideal.homogeneous_core.gi -> Ideal.homogeneousCore.gi is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisCoinsertion.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.partialOrder.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
+but is expected to have type
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisCoinsertion.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instPartialOrderHomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core.gi Ideal.homogeneousCore.giₓ'. -/
/-- `to_ideal : homogeneous_ideal 𝒜 → ideal A` and `ideal.homogeneous_core 𝒜` forms a galois
coinsertion-/
def Ideal.homogeneousCore.gi : GaloisCoinsertion toIdeal (Ideal.homogeneousCore 𝒜)
@@ -527,11 +827,23 @@ def Ideal.homogeneousCore.gi : GaloisCoinsertion toIdeal (Ideal.homogeneousCore
choice_eq I H := le_antisymm H (I.toIdeal_homogeneousCore_le _)
#align ideal.homogeneous_core.gi Ideal.homogeneousCore.gi
+/- warning: ideal.homogeneous_core_eq_Sup -> Ideal.homogeneousCore_eq_sSup is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (SupSet.sSup.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (setOf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) I)))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousCore.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) (SupSet.sSup.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (setOf.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (J : HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) I)))
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core_eq_Sup Ideal.homogeneousCore_eq_sSupₓ'. -/
theorem Ideal.homogeneousCore_eq_sSup :
I.homogeneousCore 𝒜 = sSup { J : HomogeneousIdeal 𝒜 | J.toIdeal ≤ I } :=
Eq.symm <| IsLUB.sSup_eq <| (Ideal.homogeneousCore.gc 𝒜).isGreatest_u.IsLUB
#align ideal.homogeneous_core_eq_Sup Ideal.homogeneousCore_eq_sSup
+/- warning: ideal.homogeneous_core'_eq_Sup -> Ideal.homogeneousCore'_eq_sSup is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (Ideal.{u3} A _inst_1) (Ideal.homogeneousCore'.{u1, u2, u3} ι σ A _inst_1 _inst_4 𝒜 I) (SupSet.sSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (setOf.{u3} (Ideal.{u3} A _inst_1) (fun (J : Ideal.{u3} A _inst_1) => And (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) (LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) J I))))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (Ideal.{u3} A _inst_1) (Ideal.homogeneousCore'.{u2, u1, u3} ι σ A _inst_1 _inst_4 𝒜 I) (SupSet.sSup.{u3} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (setOf.{u3} (Ideal.{u3} A _inst_1) (fun (J : Ideal.{u3} A _inst_1) => And (Ideal.IsHomogeneous.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J) (LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) J I))))
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_core'_eq_Sup Ideal.homogeneousCore'_eq_sSupₓ'. -/
theorem Ideal.homogeneousCore'_eq_sSup :
I.homogeneousCore' 𝒜 = sSup { J : Ideal A | J.Homogeneous 𝒜 ∧ J ≤ I } :=
by
@@ -562,6 +874,7 @@ variable (I : Ideal A)
include A
+#print Ideal.homogeneousHull /-
/-- For any `I : ideal A`, not necessarily homogeneous, `I.homogeneous_hull 𝒜` is
the smallest homogeneous ideal containing `I`. -/
def Ideal.homogeneousHull : HomogeneousIdeal 𝒜 :=
@@ -571,7 +884,14 @@ def Ideal.homogeneousHull : HomogeneousIdeal 𝒜 :=
obtain ⟨i, x, rfl⟩ := hx
apply SetLike.homogeneous_coe⟩
#align ideal.homogeneous_hull Ideal.homogeneousHull
+-/
+/- warning: ideal.le_to_ideal_homogeneous_hull -> Ideal.le_toIdeal_homogeneousHull is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) I (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I))
+Case conversion may be inaccurate. Consider using '#align ideal.le_to_ideal_homogeneous_hull Ideal.le_toIdeal_homogeneousHullₓ'. -/
theorem Ideal.le_toIdeal_homogeneousHull : I ≤ (Ideal.homogeneousHull 𝒜 I).toIdeal :=
by
intro r hr
@@ -585,6 +905,12 @@ theorem Ideal.le_toIdeal_homogeneousHull : I ≤ (Ideal.homogeneousHull 𝒜 I).
rfl
#align ideal.le_to_ideal_homogeneous_hull Ideal.le_toIdeal_homogeneousHull
+/- warning: ideal.homogeneous_hull_mono -> Ideal.homogeneousHull_mono is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.partialOrder.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], Monotone.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instPartialOrderHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_hull_mono Ideal.homogeneousHull_monoₓ'. -/
theorem Ideal.homogeneousHull_mono : Monotone (Ideal.homogeneousHull 𝒜) := fun I J I_le_J =>
by
apply Ideal.span_mono
@@ -594,6 +920,12 @@ theorem Ideal.homogeneousHull_mono : Monotone (Ideal.homogeneousHull 𝒜) := fu
variable {I 𝒜}
+/- warning: ideal.is_homogeneous.to_ideal_homogeneous_hull_eq_self -> Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u3} A _inst_1}, (Ideal.IsHomogeneous.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I)) I)
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] {I : Ideal.{u1} A _inst_1}, (Ideal.IsHomogeneous.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I) -> (Eq.{succ u1} (Ideal.{u1} A _inst_1) (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I)) I)
+Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.to_ideal_homogeneous_hull_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_selfₓ'. -/
theorem Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self (h : I.Homogeneous 𝒜) :
(Ideal.homogeneousHull 𝒜 I).toIdeal = I :=
by
@@ -603,6 +935,12 @@ theorem Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self (h : I.Homogeneous
exact h _ x.prop
#align ideal.is_homogeneous.to_ideal_homogeneous_hull_eq_self Ideal.IsHomogeneous.toIdeal_homogeneousHull_eq_self
+/- warning: homogeneous_ideal.homogeneous_hull_to_ideal_eq_self -> HomogeneousIdeal.homogeneousHull_toIdeal_eq_self is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) I
+but is expected to have type
+ forall {ι : Type.{u3}} {σ : Type.{u2}} {A : Type.{u1}} [_inst_1 : Semiring.{u1} A] [_inst_2 : DecidableEq.{succ u3} ι] [_inst_3 : AddMonoid.{u3} ι] [_inst_4 : SetLike.{u2, u1} σ A] [_inst_5 : AddSubmonoidClass.{u2, u1} σ A (AddMonoid.toAddZeroClass.{u1} A (AddMonoidWithOne.toAddMonoid.{u1} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} A (NonAssocSemiring.toAddCommMonoidWithOne.{u1} A (Semiring.toNonAssocSemiring.{u1} A _inst_1))))) _inst_4] {𝒜 : ι -> σ} [_inst_6 : GradedRing.{u3, u1, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6), Eq.{succ u1} (HomogeneousIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u3, u2, u1} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 (HomogeneousIdeal.toIdeal.{u3, u2, u1} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 I)) I
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.homogeneous_hull_to_ideal_eq_self HomogeneousIdeal.homogeneousHull_toIdeal_eq_selfₓ'. -/
@[simp]
theorem HomogeneousIdeal.homogeneousHull_toIdeal_eq_self (I : HomogeneousIdeal 𝒜) :
I.toIdeal.homogeneousHull 𝒜 = I :=
@@ -611,6 +949,12 @@ theorem HomogeneousIdeal.homogeneousHull_toIdeal_eq_self (I : HomogeneousIdeal
variable (I 𝒜)
+/- warning: ideal.to_ideal_homogeneous_hull_eq_supr -> Ideal.toIdeal_homogeneousHull_eq_iSup is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I)) (iSup.{u3, succ u1} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toHasSup.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) ι (fun (i : ι) => Ideal.span.{u3} A _inst_1 (Set.image.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I))))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I)) (iSup.{u3, succ u2} (Ideal.{u3} A _inst_1) (ConditionallyCompleteLattice.toSupSet.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) ι (fun (i : ι) => Ideal.span.{u3} A _inst_1 (Set.image.{u3, u3} A A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I))))
+Case conversion may be inaccurate. Consider using '#align ideal.to_ideal_homogeneous_hull_eq_supr Ideal.toIdeal_homogeneousHull_eq_iSupₓ'. -/
theorem Ideal.toIdeal_homogeneousHull_eq_iSup :
(I.homogeneousHull 𝒜).toIdeal = ⨆ i, Ideal.span (GradedRing.proj 𝒜 i '' I) :=
by
@@ -621,6 +965,12 @@ theorem Ideal.toIdeal_homogeneousHull_eq_iSup :
exists_prop, Subtype.coe_mk, SetLike.mem_coe]
#align ideal.to_ideal_homogeneous_hull_eq_supr Ideal.toIdeal_homogeneousHull_eq_iSup
+/- warning: ideal.homogeneous_hull_eq_supr -> Ideal.homogeneousHull_eq_iSup is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I) (iSup.{u3, succ u1} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasSup.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ι (fun (i : ι) => HomogeneousIdeal.mk.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.span.{u3} A _inst_1 (Set.image.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I))) (Ideal.homogeneous_span.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Set.image.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (fun (x : A) (H : Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x (Set.image.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I))) => Exists.dcases_on.{succ u3} A (fun (x_1 : A) => And (Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x_1 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) (fun (H : Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x (Set.image.{u3, u3} A A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I))) => SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_4 𝒜 x) H (fun (x_1 : A) (H_h : And (Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x_1 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) => And.dcasesOn.{0} (Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x_1 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x) (fun (H_h : And (Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x_1 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) => SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_4 𝒜 x) H_h (fun (H_h_left : Membership.Mem.{u3, u3} A (Set.{u3} A) (Set.hasMem.{u3} A) x_1 ((fun (a : Type.{u3}) (b : Type.{u3}) [self : HasLiftT.{succ u3, succ u3} a b] => self.0) (Ideal.{u3} A _inst_1) (Set.{u3} A) (HasLiftT.mk.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (CoeTCₓ.coe.{succ u3, succ u3} (Ideal.{u3} A _inst_1) (Set.{u3} A) (SetLike.Set.hasCoeT.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I)) (H_h_right : Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x) => Eq.ndrec.{0, succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) (fun (x : A) => SetLike.Homogeneous.{u1, u3, u2} ι A σ _inst_4 𝒜 x) (SetLike.homogeneous_coe.{u1, u3, u2} ι A σ _inst_4 𝒜 i (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A (coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u2} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) (fun (_x : AddMonoidHom.{u3, u3} A (coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u2} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) => A -> (coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i))) (AddMonoidHom.hasCoeToFun.{u3, u3} A (coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u2} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) (AddMonoidHom.comp.{u3, max u1 u3, u3} A (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (fun (i : ι) => AddZeroClass.toHasZero.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) ((fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) i))))) ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (Dfinsupp.addZeroClass.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) ((fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) i)))) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) ((fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) i))) (Dfinsupp.evalAddMonoidHom.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) i) ((fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) i))) i) (RingHom.toAddMonoidHom.{u3, max u1 u3} A (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) _inst_3 (SetLike.gsemiring.{u1, u2, u3} ι σ A (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) _inst_3 _inst_1 _inst_4 _inst_5 (fun (i : ι) => 𝒜 i) (GradedRing.proj._proof_1.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) (RingEquiv.toRingHom.{u3, max u1 u3} A (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) (fun (i : ι) => coeSort.{succ u2, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u2, u3} σ A _inst_4) (𝒜 i)) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) _inst_3 (SetLike.gsemiring.{u1, u2, u3} ι σ A (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) _inst_3 _inst_1 _inst_4 _inst_5 (fun (i : ι) => 𝒜 i) (GradedRing.proj._proof_1.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) (DirectSum.decomposeRingEquiv.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) x_1)) x H_h_right))))))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I) (iSup.{u3, succ u2} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instSupSetHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) ι (fun (i : ι) => HomogeneousIdeal.mk.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Ideal.span.{u3} A _inst_1 (Set.image.{u3, u3} A A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I))) (Ideal.homogeneous_span.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 (Set.image.{u3, u3} A A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (fun (x : A) (H : Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x (Set.image.{u3, u3} A A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I))) => Exists.casesOn.{succ u3} A (fun (x_1 : A) => And (Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x_1 (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (Eq.{succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) (fun (H : Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x (Set.image.{u3, u3} A A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i)) (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I))) => SetLike.Homogeneous.{u2, u3, u1} ι A σ _inst_4 𝒜 x) H (fun (x_1 : A) (H_h : And (Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x_1 (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (Eq.{succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) => And.casesOn.{0} (Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x_1 (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (Eq.{succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x) (fun (H_h : And (Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x_1 (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (Eq.{succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x)) => SetLike.Homogeneous.{u2, u3, u1} ι A σ _inst_4 𝒜 x) H_h (fun (H_h_left : Membership.mem.{u3, u3} A (Set.{u3} A) (Set.instMembershipSet.{u3} A) x_1 (SetLike.coe.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)) I)) (H_h_right : Eq.{succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) x) => Eq.ndrec.{0, succ u3} A (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6 i) x_1) (fun (x : A) => SetLike.Homogeneous.{u2, u3, u1} ι A σ _inst_4 𝒜 x) (SetLike.homogeneous_coe.{u2, u1, u3} ι A σ _inst_4 𝒜 i (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))) A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i)) (AddMonoidHom.addMonoidHomClass.{u3, u3} A (Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddSubmonoidClass.toAddZeroClass.{u3, u1} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) σ _inst_4 _inst_5 (𝒜 i))))) (AddMonoidHom.comp.{u3, max u2 u3, u3} A (Dfinsupp.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (fun (i : ι) => AddZeroClass.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) i) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i))))) ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (Dfinsupp.addZeroClass.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)))) (AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i))) (Dfinsupp.evalAddMonoidHom.{u2, u3} ι (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (fun (i : ι) => AddMonoid.toAddZeroClass.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) i) (AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i))) i) (RingHom.toAddMonoidHom.{u3, max u2 u3} A (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) _inst_3 (SetLike.gsemiring.{u2, u1, u3} ι σ A _inst_3 _inst_1 _inst_4 _inst_5 (fun (i : ι) => 𝒜 i) (GradedRing.proj.proof_1.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) (RingEquiv.toRingHom.{u3, max u2 u3} A (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) (fun (i : ι) => Subtype.{succ u3} A (fun (x : A) => Membership.mem.{u3, u1} A σ (SetLike.instMembership.{u1, u3} σ A _inst_4) x (𝒜 i))) (fun (i : ι) => AddCommMonoid.ofSubmonoidOnSemiring.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 i) _inst_3 (SetLike.gsemiring.{u2, u1, u3} ι σ A _inst_3 _inst_1 _inst_4 _inst_5 (fun (i : ι) => 𝒜 i) (GradedRing.proj.proof_1.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) (DirectSum.decomposeRingEquiv.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => (fun (a : ι) (b : ι) => _inst_2 a b) a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜 _inst_6)))) x_1)) x H_h_right))))))
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_hull_eq_supr Ideal.homogeneousHull_eq_iSupₓ'. -/
theorem Ideal.homogeneousHull_eq_iSup :
I.homogeneousHull 𝒜 =
⨆ i,
@@ -647,11 +997,23 @@ variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing
include A
+/- warning: ideal.homogeneous_hull.gc -> Ideal.homogeneousHull.gc is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisConnection.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.partialOrder.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisConnection.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instPartialOrderHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_hull.gc Ideal.homogeneousHull.gcₓ'. -/
theorem Ideal.homogeneousHull.gc : GaloisConnection (Ideal.homogeneousHull 𝒜) toIdeal := fun I J =>
⟨le_trans (Ideal.le_toIdeal_homogeneousHull _ _), fun H =>
J.homogeneousHull_toIdeal_eq_self ▸ Ideal.homogeneousHull_mono 𝒜 H⟩
#align ideal.homogeneous_hull.gc Ideal.homogeneousHull.gc
+/- warning: ideal.homogeneous_hull.gi -> Ideal.homogeneousHull.gi is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisInsertion.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.partialOrder.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
+but is expected to have type
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜], GaloisInsertion.{u3, u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) (PartialOrder.toPreorder.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instPartialOrderHomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6)
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_hull.gi Ideal.homogeneousHull.giₓ'. -/
/-- `ideal.homogeneous_hull 𝒜` and `to_ideal : homogeneous_ideal 𝒜 → ideal A` form a galois
insertion-/
def Ideal.homogeneousHull.gi : GaloisInsertion (Ideal.homogeneousHull 𝒜) toIdeal
@@ -662,6 +1024,12 @@ def Ideal.homogeneousHull.gi : GaloisInsertion (Ideal.homogeneousHull 𝒜) toId
choice_eq I H := le_antisymm (I.le_toIdeal_homogeneousHull 𝒜) H
#align ideal.homogeneous_hull.gi Ideal.homogeneousHull.gi
+/- warning: ideal.homogeneous_hull_eq_Inf -> Ideal.homogeneousHull_eq_sInf is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I) (InfSet.sInf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.hasInf.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (setOf.{u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (J : HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toHasLe.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (SetLike.partialOrder.{u3, u3} (Ideal.{u3} A _inst_1) A (Submodule.setLike.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1))))) I (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_1 _inst_4 _inst_5 𝒜] (I : Ideal.{u3} A _inst_1), Eq.{succ u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (Ideal.homogeneousHull.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6 I) (InfSet.sInf.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (HomogeneousIdeal.instInfSetHomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6) (setOf.{u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) (fun (J : HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6) => LE.le.{u3} (Ideal.{u3} A _inst_1) (Preorder.toLE.{u3} (Ideal.{u3} A _inst_1) (PartialOrder.toPreorder.{u3} (Ideal.{u3} A _inst_1) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Ideal.{u3} A _inst_1) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Ideal.{u3} A _inst_1) (Submodule.completeLattice.{u3, u3} A A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))) (Semiring.toModule.{u3} A _inst_1)))))) I (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_6 J))))
+Case conversion may be inaccurate. Consider using '#align ideal.homogeneous_hull_eq_Inf Ideal.homogeneousHull_eq_sInfₓ'. -/
theorem Ideal.homogeneousHull_eq_sInf (I : Ideal A) :
Ideal.homogeneousHull 𝒜 I = sInf { J : HomogeneousIdeal 𝒜 | I ≤ J.toIdeal } :=
Eq.symm <| IsGLB.sInf_eq <| (Ideal.homogeneousHull.gc 𝒜).isLeast_l.IsGLB
@@ -683,6 +1051,7 @@ include A
open GradedRing SetLike.GradedMonoid DirectSum
+#print HomogeneousIdeal.irrelevant /-
/-- For a graded ring `⨁ᵢ 𝒜ᵢ` graded by a `canonically_ordered_add_monoid ι`, the irrelevant ideal
refers to `⨁_{i>0} 𝒜ᵢ`, or equivalently `{a | a₀ = 0}`. This definition is used in `Proj`
construction where `ι` is always `ℕ` so the irrelevant ideal is simply elements with `0` as
@@ -701,13 +1070,26 @@ def HomogeneousIdeal.irrelevant : HomogeneousIdeal 𝒜 :=
· rw [h, hr, decompose_zero, zero_apply, ZeroMemClass.coe_zero]
· rw [decompose_of_mem_ne 𝒜 (SetLike.coe_mem _) h]⟩
#align homogeneous_ideal.irrelevant HomogeneousIdeal.irrelevant
+-/
+/- warning: homogeneous_ideal.mem_irrelevant_iff -> HomogeneousIdeal.mem_irrelevant_iff is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : CanonicallyOrderedAddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜] (a : A), Iff (Membership.Mem.{u3, u3} A (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_6) (SetLike.hasMem.{u3, u3} (HomogeneousIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_6) A (HomogeneousIdeal.setLike.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_6)) a (HomogeneousIdeal.irrelevant.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Eq.{succ u3} A (coeFn.{succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (fun (_x : AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) => A -> A) (AddMonoidHom.hasCoeToFun.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (GradedRing.proj.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜 _inst_6 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))))))))) a) (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))))))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : CanonicallyOrderedAddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜] (a : A), Iff (Membership.mem.{u3, u3} A (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_6) (SetLike.instMembership.{u3, u3} (HomogeneousIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_6) A (HomogeneousIdeal.setLike.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_6)) a (HomogeneousIdeal.irrelevant.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) a) (FunLike.coe.{succ u3, succ u3, succ u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) _x) (AddHomClass.toFunLike.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddZeroClass.toAdd.{u3} A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) (AddMonoidHomClass.toAddHomClass.{u3, u3, u3} (AddMonoidHom.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))) A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoidHom.addMonoidHomClass.{u3, u3} A A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1)))))))) (GradedRing.proj.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜 _inst_6 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))))))) a) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) a) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) a) (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) a) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A) => A) a) _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.mem_irrelevant_iff HomogeneousIdeal.mem_irrelevant_iffₓ'. -/
@[simp]
theorem HomogeneousIdeal.mem_irrelevant_iff (a : A) :
a ∈ HomogeneousIdeal.irrelevant 𝒜 ↔ proj 𝒜 0 a = 0 :=
Iff.rfl
#align homogeneous_ideal.mem_irrelevant_iff HomogeneousIdeal.mem_irrelevant_iff
+/- warning: homogeneous_ideal.to_ideal_irrelevant -> HomogeneousIdeal.toIdeal_irrelevant is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {σ : Type.{u2}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u1} ι] [_inst_3 : CanonicallyOrderedAddMonoid.{u1} ι] [_inst_4 : SetLike.{u2, u3} σ A] [_inst_5 : AddSubmonoidClass.{u2, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u1, u3, u2} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u1, u2, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u1} ι (OrderedAddCommMonoid.toAddCommMonoid.{u1} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u1} ι _inst_3))) _inst_6 (HomogeneousIdeal.irrelevant.{u1, u2, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (RingHom.ker.{u3, u3, u3} A A (RingHom.{u3, u3} A A (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{u3} A _inst_1)) _inst_1 _inst_1 (RingHom.ringHomClass.{u3, u3} A A (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{u3} A _inst_1)) (GradedRing.projZeroRingHom.{u1, u3, u2} ι A σ _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))
+but is expected to have type
+ forall {ι : Type.{u2}} {σ : Type.{u1}} {A : Type.{u3}} [_inst_1 : Semiring.{u3} A] [_inst_2 : DecidableEq.{succ u2} ι] [_inst_3 : CanonicallyOrderedAddMonoid.{u2} ι] [_inst_4 : SetLike.{u1, u3} σ A] [_inst_5 : AddSubmonoidClass.{u1, u3} σ A (AddMonoid.toAddZeroClass.{u3} A (AddMonoidWithOne.toAddMonoid.{u3} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} A (NonAssocSemiring.toAddCommMonoidWithOne.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_1))))) _inst_4] (𝒜 : ι -> σ) [_inst_6 : GradedRing.{u2, u3, u1} ι A σ (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_1 _inst_4 _inst_5 𝒜], Eq.{succ u3} (Ideal.{u3} A _inst_1) (HomogeneousIdeal.toIdeal.{u2, u1, u3} ι σ A _inst_1 _inst_4 _inst_5 𝒜 (fun (a : ι) (b : ι) => _inst_2 a b) (AddCommMonoid.toAddMonoid.{u2} ι (OrderedAddCommMonoid.toAddCommMonoid.{u2} ι (CanonicallyOrderedAddMonoid.toOrderedAddCommMonoid.{u2} ι _inst_3))) _inst_6 (HomogeneousIdeal.irrelevant.{u2, u1, u3} ι σ A _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6)) (RingHom.ker.{u3, u3, u3} A A (RingHom.{u3, u3} A A (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{u3} A _inst_1)) _inst_1 _inst_1 (RingHom.instRingHomClassRingHom.{u3, u3} A A (Semiring.toNonAssocSemiring.{u3} A _inst_1) (Semiring.toNonAssocSemiring.{u3} A _inst_1)) (GradedRing.projZeroRingHom.{u2, u3, u1} ι A σ _inst_1 (fun (a : ι) (b : ι) => _inst_2 a b) _inst_3 _inst_4 _inst_5 𝒜 _inst_6))
+Case conversion may be inaccurate. Consider using '#align homogeneous_ideal.to_ideal_irrelevant HomogeneousIdeal.toIdeal_irrelevantₓ'. -/
@[simp]
theorem HomogeneousIdeal.toIdeal_irrelevant :
(HomogeneousIdeal.irrelevant 𝒜).toIdeal = (GradedRing.projZeroRingHom 𝒜).ker :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -71,7 +71,7 @@ def Ideal.IsHomogeneous : Prop :=
/-- For any `semiring A`, we collect the homogeneous ideals of `A` into a type. -/
structure HomogeneousIdeal extends Submodule A A where
- isHomogeneous' : Ideal.IsHomogeneous 𝒜 to_submodule
+ is_homogeneous' : Ideal.IsHomogeneous 𝒜 to_submodule
#align homogeneous_ideal HomogeneousIdeal
variable {𝒜}
@@ -82,7 +82,7 @@ def HomogeneousIdeal.toIdeal (I : HomogeneousIdeal 𝒜) : Ideal A :=
#align homogeneous_ideal.to_ideal HomogeneousIdeal.toIdeal
theorem HomogeneousIdeal.isHomogeneous (I : HomogeneousIdeal 𝒜) : I.toIdeal.Homogeneous 𝒜 :=
- I.isHomogeneous'
+ I.is_homogeneous'
#align homogeneous_ideal.is_homogeneous HomogeneousIdeal.isHomogeneous
theorem HomogeneousIdeal.toIdeal_injective :
@@ -171,7 +171,7 @@ theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁
· exact I.zero_mem
#align ideal.mul_homogeneous_element_mem_of_mem Ideal.mul_homogeneous_element_mem_of_mem
-theorem Ideal.isHomogeneousSpan (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x) :
+theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x) :
(Ideal.span s).Homogeneous 𝒜 := by
rintro i r hr
rw [Ideal.span, Finsupp.span_eq_range_total] at hr
@@ -186,13 +186,13 @@ theorem Ideal.isHomogeneousSpan (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x
· rcases z with ⟨z, hz2⟩
apply h _ hz2
· exact Ideal.subset_span z.2
-#align ideal.is_homogeneous_span Ideal.isHomogeneousSpan
+#align ideal.is_homogeneous_span Ideal.homogeneous_span
/-- For any `I : ideal A`, not necessarily homogeneous, `I.homogeneous_core' 𝒜`
is the largest homogeneous ideal of `A` contained in `I`.-/
def Ideal.homogeneousCore : HomogeneousIdeal 𝒜 :=
⟨Ideal.homogeneousCore' 𝒜 I,
- Ideal.isHomogeneousSpan _ _ fun x h =>
+ Ideal.homogeneous_span _ _ fun x h =>
by
rw [Subtype.image_preimage_coe] at h
exact h.2⟩
@@ -287,7 +287,7 @@ theorem sup {I J : Ideal A} (HI : I.Homogeneous 𝒜) (HJ : J.Homogeneous 𝒜)
exact (Submodule.span_union _ _).symm
#align ideal.is_homogeneous.sup Ideal.IsHomogeneous.sup
-protected theorem supr {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
+protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
(⨆ i, f i).Homogeneous 𝒜 := by
simp_rw [iff_exists] at h⊢
choose s hs using h
@@ -295,46 +295,38 @@ protected theorem supr {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homo
simp_rw [Set.image_iUnion, Ideal.span_iUnion]
congr
exact funext hs
-#align ideal.is_homogeneous.supr Ideal.IsHomogeneous.supr
+#align ideal.is_homogeneous.supr Ideal.IsHomogeneous.iSup
-protected theorem infi {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
+protected theorem iInf {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
(⨅ i, f i).Homogeneous 𝒜 := by
intro i x hx
simp only [Ideal.mem_iInf] at hx⊢
exact fun j => h _ _ (hx j)
-#align ideal.is_homogeneous.infi Ideal.IsHomogeneous.infi
+#align ideal.is_homogeneous.infi Ideal.IsHomogeneous.iInf
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
theorem supr₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
(h : ∀ i j, (f i j).Homogeneous 𝒜) : (⨆ (i) (j), f i j).Homogeneous 𝒜 :=
- IsHomogeneous.supr fun i => IsHomogeneous.supr <| h i
+ IsHomogeneous.iSup fun i => IsHomogeneous.iSup <| h i
#align ideal.is_homogeneous.supr₂ Ideal.IsHomogeneous.supr₂
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
theorem infi₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
(h : ∀ i j, (f i j).Homogeneous 𝒜) : (⨅ (i) (j), f i j).Homogeneous 𝒜 :=
- IsHomogeneous.infi fun i => IsHomogeneous.infi <| h i
+ IsHomogeneous.iInf fun i => IsHomogeneous.iInf <| h i
#align ideal.is_homogeneous.infi₂ Ideal.IsHomogeneous.infi₂
-/- warning: ideal.is_homogeneous.Sup clashes with ideal.is_homogeneous.sup -> Ideal.IsHomogeneous.sup
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.supₓ'. -/
-#print Ideal.IsHomogeneous.sup /-
-theorem sup {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sSup ℐ).Homogeneous 𝒜 :=
+theorem sSup {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sSup ℐ).Homogeneous 𝒜 :=
by
rw [sSup_eq_iSup]
exact supr₂ h
-#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.sup
--/
+#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.sSup
-/- warning: ideal.is_homogeneous.Inf clashes with ideal.is_homogeneous.inf -> Ideal.IsHomogeneous.inf
-Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.Inf Ideal.IsHomogeneous.infₓ'. -/
-#print Ideal.IsHomogeneous.inf /-
-theorem inf {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sInf ℐ).Homogeneous 𝒜 :=
+theorem sInf {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sInf ℐ).Homogeneous 𝒜 :=
by
rw [sInf_eq_iInf]
exact infi₂ h
-#align ideal.is_homogeneous.Inf Ideal.IsHomogeneous.inf
--/
+#align ideal.is_homogeneous.Inf Ideal.IsHomogeneous.sInf
end Ideal.IsHomogeneous
@@ -575,7 +567,7 @@ the smallest homogeneous ideal containing `I`. -/
def Ideal.homogeneousHull : HomogeneousIdeal 𝒜 :=
⟨Ideal.span { r : A | ∃ (i : ι)(x : I), (DirectSum.decompose 𝒜 (x : A) i : A) = r },
by
- refine' Ideal.isHomogeneousSpan _ _ fun x hx => _
+ refine' Ideal.homogeneous_span _ _ fun x hx => _
obtain ⟨i, x, rfl⟩ := hx
apply SetLike.homogeneous_coe⟩
#align ideal.homogeneous_hull Ideal.homogeneousHull
@@ -633,7 +625,7 @@ theorem Ideal.homogeneousHull_eq_iSup :
I.homogeneousHull 𝒜 =
⨆ i,
⟨Ideal.span (GradedRing.proj 𝒜 i '' I),
- Ideal.isHomogeneousSpan 𝒜 _
+ Ideal.homogeneous_span 𝒜 _
(by
rintro _ ⟨x, -, rfl⟩
apply SetLike.homogeneous_coe)⟩ :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -151,10 +151,10 @@ theorem Ideal.isHomogeneous_iff_forall_subset :
Iff.rfl
#align ideal.is_homogeneous_iff_forall_subset Ideal.isHomogeneous_iff_forall_subset
-theorem Ideal.isHomogeneous_iff_subset_interᵢ :
+theorem Ideal.isHomogeneous_iff_subset_iInter :
I.Homogeneous 𝒜 ↔ (I : Set A) ⊆ ⋂ i, GradedRing.proj 𝒜 i ⁻¹' ↑I :=
- subset_interᵢ_iff.symm
-#align ideal.is_homogeneous_iff_subset_Inter Ideal.isHomogeneous_iff_subset_interᵢ
+ subset_iInter_iff.symm
+#align ideal.is_homogeneous_iff_subset_Inter Ideal.isHomogeneous_iff_subset_iInter
theorem Ideal.mul_homogeneous_element_mem_of_mem {I : Ideal A} (r x : A) (hx₁ : Homogeneous 𝒜 x)
(hx₂ : x ∈ I) (j : ι) : GradedRing.proj 𝒜 j (r * x) ∈ I := by
@@ -292,7 +292,7 @@ protected theorem supr {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homo
simp_rw [iff_exists] at h⊢
choose s hs using h
refine' ⟨⋃ i, s i, _⟩
- simp_rw [Set.image_unionᵢ, Ideal.span_unionᵢ]
+ simp_rw [Set.image_iUnion, Ideal.span_iUnion]
congr
exact funext hs
#align ideal.is_homogeneous.supr Ideal.IsHomogeneous.supr
@@ -300,7 +300,7 @@ protected theorem supr {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homo
protected theorem infi {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).Homogeneous 𝒜) :
(⨅ i, f i).Homogeneous 𝒜 := by
intro i x hx
- simp only [Ideal.mem_infᵢ] at hx⊢
+ simp only [Ideal.mem_iInf] at hx⊢
exact fun j => h _ _ (hx j)
#align ideal.is_homogeneous.infi Ideal.IsHomogeneous.infi
@@ -319,9 +319,9 @@ theorem infi₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal
/- warning: ideal.is_homogeneous.Sup clashes with ideal.is_homogeneous.sup -> Ideal.IsHomogeneous.sup
Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.supₓ'. -/
#print Ideal.IsHomogeneous.sup /-
-theorem sup {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (supₛ ℐ).Homogeneous 𝒜 :=
+theorem sup {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sSup ℐ).Homogeneous 𝒜 :=
by
- rw [supₛ_eq_supᵢ]
+ rw [sSup_eq_iSup]
exact supr₂ h
#align ideal.is_homogeneous.Sup Ideal.IsHomogeneous.sup
-/
@@ -329,9 +329,9 @@ theorem sup {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I
/- warning: ideal.is_homogeneous.Inf clashes with ideal.is_homogeneous.inf -> Ideal.IsHomogeneous.inf
Case conversion may be inaccurate. Consider using '#align ideal.is_homogeneous.Inf Ideal.IsHomogeneous.infₓ'. -/
#print Ideal.IsHomogeneous.inf /-
-theorem inf {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (infₛ ℐ).Homogeneous 𝒜 :=
+theorem inf {ℐ : Set (Ideal A)} (h : ∀ I ∈ ℐ, Ideal.IsHomogeneous 𝒜 I) : (sInf ℐ).Homogeneous 𝒜 :=
by
- rw [infₛ_eq_infᵢ]
+ rw [sInf_eq_iInf]
exact infi₂ h
#align ideal.is_homogeneous.Inf Ideal.IsHomogeneous.inf
-/
@@ -404,24 +404,24 @@ theorem toIdeal_inf (I J : HomogeneousIdeal 𝒜) : (I ⊓ J).toIdeal = I.toIdea
#align homogeneous_ideal.to_ideal_inf HomogeneousIdeal.toIdeal_inf
@[simp]
-theorem toIdeal_supₛ (ℐ : Set (HomogeneousIdeal 𝒜)) : (supₛ ℐ).toIdeal = ⨆ s ∈ ℐ, toIdeal s :=
+theorem toIdeal_sSup (ℐ : Set (HomogeneousIdeal 𝒜)) : (sSup ℐ).toIdeal = ⨆ s ∈ ℐ, toIdeal s :=
rfl
-#align homogeneous_ideal.to_ideal_Sup HomogeneousIdeal.toIdeal_supₛ
+#align homogeneous_ideal.to_ideal_Sup HomogeneousIdeal.toIdeal_sSup
@[simp]
-theorem toIdeal_infₛ (ℐ : Set (HomogeneousIdeal 𝒜)) : (infₛ ℐ).toIdeal = ⨅ s ∈ ℐ, toIdeal s :=
+theorem toIdeal_sInf (ℐ : Set (HomogeneousIdeal 𝒜)) : (sInf ℐ).toIdeal = ⨅ s ∈ ℐ, toIdeal s :=
rfl
-#align homogeneous_ideal.to_ideal_Inf HomogeneousIdeal.toIdeal_infₛ
+#align homogeneous_ideal.to_ideal_Inf HomogeneousIdeal.toIdeal_sInf
@[simp]
-theorem toIdeal_supᵢ {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
- (⨆ i, s i).toIdeal = ⨆ i, (s i).toIdeal := by rw [supᵢ, to_ideal_Sup, supᵢ_range]
-#align homogeneous_ideal.to_ideal_supr HomogeneousIdeal.toIdeal_supᵢ
+theorem toIdeal_iSup {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
+ (⨆ i, s i).toIdeal = ⨆ i, (s i).toIdeal := by rw [iSup, to_ideal_Sup, iSup_range]
+#align homogeneous_ideal.to_ideal_supr HomogeneousIdeal.toIdeal_iSup
@[simp]
-theorem toIdeal_infᵢ {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
- (⨅ i, s i).toIdeal = ⨅ i, (s i).toIdeal := by rw [infᵢ, to_ideal_Inf, infᵢ_range]
-#align homogeneous_ideal.to_ideal_infi HomogeneousIdeal.toIdeal_infᵢ
+theorem toIdeal_iInf {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
+ (⨅ i, s i).toIdeal = ⨅ i, (s i).toIdeal := by rw [iInf, to_ideal_Inf, iInf_range]
+#align homogeneous_ideal.to_ideal_infi HomogeneousIdeal.toIdeal_iInf
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
/- ./././Mathport/Syntax/Translate/Expr.lean:107:6: warning: expanding binder group (i j) -/
@@ -448,7 +448,7 @@ theorem eq_bot_iff (I : HomogeneousIdeal 𝒜) : I = ⊥ ↔ I.toIdeal = ⊥ :=
#align homogeneous_ideal.eq_bot_iff HomogeneousIdeal.eq_bot_iff
instance : CompleteLattice (HomogeneousIdeal 𝒜) :=
- toIdeal_injective.CompleteLattice _ toIdeal_sup toIdeal_inf toIdeal_supₛ toIdeal_infₛ toIdeal_top
+ toIdeal_injective.CompleteLattice _ toIdeal_sup toIdeal_inf toIdeal_sSup toIdeal_sInf toIdeal_top
toIdeal_bot
instance : Add (HomogeneousIdeal 𝒜) :=
@@ -535,15 +535,15 @@ def Ideal.homogeneousCore.gi : GaloisCoinsertion toIdeal (Ideal.homogeneousCore
choice_eq I H := le_antisymm H (I.toIdeal_homogeneousCore_le _)
#align ideal.homogeneous_core.gi Ideal.homogeneousCore.gi
-theorem Ideal.homogeneousCore_eq_supₛ :
- I.homogeneousCore 𝒜 = supₛ { J : HomogeneousIdeal 𝒜 | J.toIdeal ≤ I } :=
- Eq.symm <| IsLUB.supₛ_eq <| (Ideal.homogeneousCore.gc 𝒜).isGreatest_u.IsLUB
-#align ideal.homogeneous_core_eq_Sup Ideal.homogeneousCore_eq_supₛ
+theorem Ideal.homogeneousCore_eq_sSup :
+ I.homogeneousCore 𝒜 = sSup { J : HomogeneousIdeal 𝒜 | J.toIdeal ≤ I } :=
+ Eq.symm <| IsLUB.sSup_eq <| (Ideal.homogeneousCore.gc 𝒜).isGreatest_u.IsLUB
+#align ideal.homogeneous_core_eq_Sup Ideal.homogeneousCore_eq_sSup
-theorem Ideal.homogeneousCore'_eq_supₛ :
- I.homogeneousCore' 𝒜 = supₛ { J : Ideal A | J.Homogeneous 𝒜 ∧ J ≤ I } :=
+theorem Ideal.homogeneousCore'_eq_sSup :
+ I.homogeneousCore' 𝒜 = sSup { J : Ideal A | J.Homogeneous 𝒜 ∧ J ≤ I } :=
by
- refine' (IsLUB.supₛ_eq _).symm
+ refine' (IsLUB.sSup_eq _).symm
apply IsGreatest.isLUB
have coe_mono : Monotone (to_ideal : HomogeneousIdeal 𝒜 → Ideal A) := fun x y => id
convert coe_mono.map_is_greatest (Ideal.homogeneousCore.gc 𝒜).isGreatest_u using 1
@@ -551,7 +551,7 @@ theorem Ideal.homogeneousCore'_eq_supₛ :
rw [mem_image, mem_set_of_eq]
refine'
⟨fun hI => ⟨⟨x, hI.1⟩, ⟨hI.2, rfl⟩⟩, by rintro ⟨x, ⟨hx, rfl⟩⟩ <;> exact ⟨x.is_homogeneous, hx⟩⟩
-#align ideal.homogeneous_core'_eq_Sup Ideal.homogeneousCore'_eq_supₛ
+#align ideal.homogeneous_core'_eq_Sup Ideal.homogeneousCore'_eq_sSup
end HomogeneousCore
@@ -619,17 +619,17 @@ theorem HomogeneousIdeal.homogeneousHull_toIdeal_eq_self (I : HomogeneousIdeal
variable (I 𝒜)
-theorem Ideal.toIdeal_homogeneousHull_eq_supᵢ :
+theorem Ideal.toIdeal_homogeneousHull_eq_iSup :
(I.homogeneousHull 𝒜).toIdeal = ⨆ i, Ideal.span (GradedRing.proj 𝒜 i '' I) :=
by
- rw [← Ideal.span_unionᵢ]
+ rw [← Ideal.span_iUnion]
apply congr_arg Ideal.span _
ext1
- simp only [Set.mem_unionᵢ, Set.mem_image, mem_set_of_eq, GradedRing.proj_apply, SetLike.exists,
+ simp only [Set.mem_iUnion, Set.mem_image, mem_set_of_eq, GradedRing.proj_apply, SetLike.exists,
exists_prop, Subtype.coe_mk, SetLike.mem_coe]
-#align ideal.to_ideal_homogeneous_hull_eq_supr Ideal.toIdeal_homogeneousHull_eq_supᵢ
+#align ideal.to_ideal_homogeneous_hull_eq_supr Ideal.toIdeal_homogeneousHull_eq_iSup
-theorem Ideal.homogeneousHull_eq_supᵢ :
+theorem Ideal.homogeneousHull_eq_iSup :
I.homogeneousHull 𝒜 =
⨆ i,
⟨Ideal.span (GradedRing.proj 𝒜 i '' I),
@@ -639,9 +639,9 @@ theorem Ideal.homogeneousHull_eq_supᵢ :
apply SetLike.homogeneous_coe)⟩ :=
by
ext1
- rw [Ideal.toIdeal_homogeneousHull_eq_supᵢ, to_ideal_supr]
+ rw [Ideal.toIdeal_homogeneousHull_eq_iSup, to_ideal_supr]
rfl
-#align ideal.homogeneous_hull_eq_supr Ideal.homogeneousHull_eq_supᵢ
+#align ideal.homogeneous_hull_eq_supr Ideal.homogeneousHull_eq_iSup
end HomogeneousHull
@@ -670,10 +670,10 @@ def Ideal.homogeneousHull.gi : GaloisInsertion (Ideal.homogeneousHull 𝒜) toId
choice_eq I H := le_antisymm (I.le_toIdeal_homogeneousHull 𝒜) H
#align ideal.homogeneous_hull.gi Ideal.homogeneousHull.gi
-theorem Ideal.homogeneousHull_eq_infₛ (I : Ideal A) :
- Ideal.homogeneousHull 𝒜 I = infₛ { J : HomogeneousIdeal 𝒜 | I ≤ J.toIdeal } :=
- Eq.symm <| IsGLB.infₛ_eq <| (Ideal.homogeneousHull.gc 𝒜).isLeast_l.IsGLB
-#align ideal.homogeneous_hull_eq_Inf Ideal.homogeneousHull_eq_infₛ
+theorem Ideal.homogeneousHull_eq_sInf (I : Ideal A) :
+ Ideal.homogeneousHull 𝒜 I = sInf { J : HomogeneousIdeal 𝒜 | I ≤ J.toIdeal } :=
+ Eq.symm <| IsGLB.sInf_eq <| (Ideal.homogeneousHull.gc 𝒜).isLeast_l.IsGLB
+#align ideal.homogeneous_hull_eq_Inf Ideal.homogeneousHull_eq_sInf
end GaloisConnection
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -351,10 +351,10 @@ instance : Top (HomogeneousIdeal 𝒜) :=
instance : Bot (HomogeneousIdeal 𝒜) :=
⟨⟨⊥, Ideal.IsHomogeneous.bot 𝒜⟩⟩
-instance : HasSup (HomogeneousIdeal 𝒜) :=
+instance : Sup (HomogeneousIdeal 𝒜) :=
⟨fun I J => ⟨_, I.Homogeneous.sup J.Homogeneous⟩⟩
-instance : HasInf (HomogeneousIdeal 𝒜) :=
+instance : Inf (HomogeneousIdeal 𝒜) :=
⟨fun I J => ⟨_, I.Homogeneous.inf J.Homogeneous⟩⟩
instance : SupSet (HomogeneousIdeal 𝒜) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -51,11 +51,8 @@ variable {ι σ R A : Type*}
section HomogeneousDef
variable [Semiring A]
-
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ)
-
variable [DecidableEq ι] [AddMonoid ι] [GradedRing 𝒜]
-
variable (I : Ideal A)
/-- An `I : Ideal A` is homogeneous if for every `r ∈ I`, all homogeneous components
@@ -105,9 +102,7 @@ end HomogeneousDef
section HomogeneousCore
variable [Semiring A]
-
variable [SetLike σ A] (𝒜 : ι → σ)
-
variable (I : Ideal A)
/-- For any `I : Ideal A`, not necessarily homogeneous, `I.homogeneousCore' 𝒜`
@@ -129,11 +124,8 @@ end HomogeneousCore
section IsHomogeneousIdealDefs
variable [Semiring A]
-
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ)
-
variable [DecidableEq ι] [AddMonoid ι] [GradedRing 𝒜]
-
variable (I : Ideal A)
theorem Ideal.isHomogeneous_iff_forall_subset :
@@ -243,7 +235,6 @@ section Operations
section Semiring
variable [Semiring A] [DecidableEq ι] [AddMonoid ι]
-
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing 𝒜]
namespace Ideal.IsHomogeneous
@@ -444,11 +435,8 @@ end Semiring
section CommSemiring
variable [CommSemiring A]
-
variable [DecidableEq ι] [AddMonoid ι]
-
variable [SetLike σ A] [AddSubmonoidClass σ A] {𝒜 : ι → σ} [GradedRing 𝒜]
-
variable (I : Ideal A)
theorem Ideal.IsHomogeneous.mul {I J : Ideal A} (HI : I.IsHomogeneous 𝒜) (HJ : J.IsHomogeneous 𝒜) :
@@ -483,9 +471,7 @@ section homogeneousCore
open HomogeneousIdeal
variable [Semiring A] [DecidableEq ι] [AddMonoid ι]
-
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing 𝒜]
-
variable (I : Ideal A)
theorem Ideal.homogeneousCore.gc : GaloisConnection toIdeal (Ideal.homogeneousCore 𝒜) := fun I _ =>
@@ -531,9 +517,7 @@ section HomogeneousHull
open HomogeneousIdeal
variable [Semiring A] [DecidableEq ι] [AddMonoid ι]
-
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing 𝒜]
-
variable (I : Ideal A)
/-- For any `I : Ideal A`, not necessarily homogeneous, `I.homogeneousHull 𝒜` is
@@ -606,7 +590,6 @@ section GaloisConnection
open HomogeneousIdeal
variable [Semiring A] [DecidableEq ι] [AddMonoid ι]
-
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing 𝒜]
theorem Ideal.homogeneousHull.gc : GaloisConnection (Ideal.homogeneousHull 𝒜) toIdeal := fun _ J =>
@@ -633,11 +616,8 @@ end GaloisConnection
section IrrelevantIdeal
variable [Semiring A]
-
variable [DecidableEq ι]
-
variable [CanonicallyOrderedAddCommMonoid ι]
-
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing 𝒜]
open GradedRing SetLike.GradedMonoid DirectSum
refine
s (#10762)
I replaced a few "terminal" refine/refine'
s with exact
.
The strategy was very simple-minded: essentially any refine
whose following line had smaller indentation got replaced by exact
and then I cleaned up the mess.
This PR certainly leaves some further terminal refine
s, but maybe the current change is beneficial.
@@ -559,7 +559,7 @@ theorem Ideal.le_toIdeal_homogeneousHull : I ≤ (Ideal.homogeneousHull 𝒜 I).
theorem Ideal.homogeneousHull_mono : Monotone (Ideal.homogeneousHull 𝒜) := fun I J I_le_J => by
apply Ideal.span_mono
rintro r ⟨hr1, ⟨x, hx⟩, rfl⟩
- refine' ⟨hr1, ⟨⟨x, I_le_J hx⟩, rfl⟩⟩
+ exact ⟨hr1, ⟨⟨x, I_le_J hx⟩, rfl⟩⟩
#align ideal.homogeneous_hull_mono Ideal.homogeneousHull_mono
variable {I 𝒜}
@@ -401,13 +401,13 @@ theorem toIdeal_iInf {κ : Sort*} (s : κ → HomogeneousIdeal 𝒜) :
rw [iInf, toIdeal_sInf, iInf_range]
#align homogeneous_ideal.to_ideal_infi HomogeneousIdeal.toIdeal_iInf
--- @[simp] -- Porting note: simp can prove this
+-- @[simp] -- Porting note (#10618): simp can prove this
theorem toIdeal_iSup₂ {κ : Sort*} {κ' : κ → Sort*} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
(⨆ (i) (j), s i j).toIdeal = ⨆ (i) (j), (s i j).toIdeal := by
simp_rw [toIdeal_iSup]
#align homogeneous_ideal.to_ideal_supr₂ HomogeneousIdeal.toIdeal_iSup₂
--- @[simp] -- Porting note: simp can prove this
+-- @[simp] -- Porting note (#10618): simp can prove this
theorem toIdeal_iInf₂ {κ : Sort*} {κ' : κ → Sort*} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
(⨅ (i) (j), s i j).toIdeal = ⨅ (i) (j), (s i j).toIdeal := by
simp_rw [toIdeal_iInf]
s ∩ .
when passing to a subset of s
(#10433)
This is partial work to make s ∩ .
be consistently used for passing to a subset of s
. This is sort of an adjoint to (Subtype.val : s -> _) '' .
, except for the fact that it does not produce a Set s
.
The main API changes are to Subtype.image_preimage_val
and Subtype.preimage_val_eq_preimage_val_iff
in Mathlib.Data.Set.Image
. Changes in other modules are all proof fixups.
@@ -182,7 +182,9 @@ theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x)
is the largest homogeneous ideal of `A` contained in `I`. -/
def Ideal.homogeneousCore : HomogeneousIdeal 𝒜 :=
⟨Ideal.homogeneousCore' 𝒜 I,
- Ideal.homogeneous_span _ _ fun _ h => (Subtype.image_preimage_coe _ _ ▸ h).2⟩
+ Ideal.homogeneous_span _ _ fun _ h => by
+ have := Subtype.image_preimage_coe (setOf (Homogeneous 𝒜)) (I : Set A)
+ exact (cast congr(_ ∈ $this) h).1⟩
#align ideal.homogeneous_core Ideal.homogeneousCore
theorem Ideal.homogeneousCore_mono : Monotone (Ideal.homogeneousCore 𝒜) :=
Renames:
CanonicallyOrderedMonoid
->
CanonicallyOrderedCommMonoid
CanonicallyOrderedAddMonoid
->
CanonicallyOrderedAddCommMonoid
CanonicallyLinearOrderedMonoid
->
CanonicallyLinearOrderedCommMonoid
CanonicallyLinearOrderedAddMonoid
->
CanonicallyLinearOrderedAddCommMonoid
@@ -634,19 +634,19 @@ variable [Semiring A]
variable [DecidableEq ι]
-variable [CanonicallyOrderedAddMonoid ι]
+variable [CanonicallyOrderedAddCommMonoid ι]
variable [SetLike σ A] [AddSubmonoidClass σ A] (𝒜 : ι → σ) [GradedRing 𝒜]
open GradedRing SetLike.GradedMonoid DirectSum
-/-- For a graded ring `⨁ᵢ 𝒜ᵢ` graded by a `CanonicallyOrderedAddMonoid ι`, the irrelevant ideal
+/-- For a graded ring `⨁ᵢ 𝒜ᵢ` graded by a `CanonicallyOrderedAddCommMonoid ι`, the irrelevant ideal
refers to `⨁_{i>0} 𝒜ᵢ`, or equivalently `{a | a₀ = 0}`. This definition is used in `Proj`
construction where `ι` is always `ℕ` so the irrelevant ideal is simply elements with `0` as
0-th coordinate.
# Future work
-Here in the definition, `ι` is assumed to be `CanonicallyOrderedAddMonoid`. However, the notion
+Here in the definition, `ι` is assumed to be `CanonicallyOrderedAddCommMonoid`. However, the notion
of irrelevant ideal makes sense in a more general setting by defining it as the ideal of elements
with `0` as i-th coordinate for all `i ≤ 0`, i.e. `{a | ∀ (i : ι), i ≤ 0 → aᵢ = 0}`.
-/
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -46,7 +46,7 @@ open SetLike DirectSum Set
open BigOperators Pointwise DirectSum
-variable {ι σ R A : Type _}
+variable {ι σ R A : Type*}
section HomogeneousDef
@@ -271,7 +271,7 @@ theorem sup {I J : Ideal A} (HI : I.IsHomogeneous 𝒜) (HJ : J.IsHomogeneous
exact (Submodule.span_union _ _).symm
#align ideal.is_homogeneous.sup Ideal.IsHomogeneous.sup
-protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).IsHomogeneous 𝒜) :
+protected theorem iSup {κ : Sort*} {f : κ → Ideal A} (h : ∀ i, (f i).IsHomogeneous 𝒜) :
(⨆ i, f i).IsHomogeneous 𝒜 := by
simp_rw [iff_exists] at h ⊢
choose s hs using h
@@ -281,19 +281,19 @@ protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).IsHo
exact funext hs
#align ideal.is_homogeneous.supr Ideal.IsHomogeneous.iSup
-protected theorem iInf {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).IsHomogeneous 𝒜) :
+protected theorem iInf {κ : Sort*} {f : κ → Ideal A} (h : ∀ i, (f i).IsHomogeneous 𝒜) :
(⨅ i, f i).IsHomogeneous 𝒜 := by
intro i x hx
simp only [Ideal.mem_iInf] at hx ⊢
exact fun j => h _ _ (hx j)
#align ideal.is_homogeneous.infi Ideal.IsHomogeneous.iInf
-theorem iSup₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
+theorem iSup₂ {κ : Sort*} {κ' : κ → Sort*} {f : ∀ i, κ' i → Ideal A}
(h : ∀ i j, (f i j).IsHomogeneous 𝒜) : (⨆ (i) (j), f i j).IsHomogeneous 𝒜 :=
IsHomogeneous.iSup fun i => IsHomogeneous.iSup <| h i
#align ideal.is_homogeneous.supr₂ Ideal.IsHomogeneous.iSup₂
-theorem iInf₂ {κ : Sort _} {κ' : κ → Sort _} {f : ∀ i, κ' i → Ideal A}
+theorem iInf₂ {κ : Sort*} {κ' : κ → Sort*} {f : ∀ i, κ' i → Ideal A}
(h : ∀ i j, (f i j).IsHomogeneous 𝒜) : (⨅ (i) (j), f i j).IsHomogeneous 𝒜 :=
IsHomogeneous.iInf fun i => IsHomogeneous.iInf <| h i
#align ideal.is_homogeneous.infi₂ Ideal.IsHomogeneous.iInf₂
@@ -388,25 +388,25 @@ theorem toIdeal_sInf (ℐ : Set (HomogeneousIdeal 𝒜)) : (sInf ℐ).toIdeal =
#align homogeneous_ideal.to_ideal_Inf HomogeneousIdeal.toIdeal_sInf
@[simp]
-theorem toIdeal_iSup {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
+theorem toIdeal_iSup {κ : Sort*} (s : κ → HomogeneousIdeal 𝒜) :
(⨆ i, s i).toIdeal = ⨆ i, (s i).toIdeal := by
rw [iSup, toIdeal_sSup, iSup_range]
#align homogeneous_ideal.to_ideal_supr HomogeneousIdeal.toIdeal_iSup
@[simp]
-theorem toIdeal_iInf {κ : Sort _} (s : κ → HomogeneousIdeal 𝒜) :
+theorem toIdeal_iInf {κ : Sort*} (s : κ → HomogeneousIdeal 𝒜) :
(⨅ i, s i).toIdeal = ⨅ i, (s i).toIdeal := by
rw [iInf, toIdeal_sInf, iInf_range]
#align homogeneous_ideal.to_ideal_infi HomogeneousIdeal.toIdeal_iInf
-- @[simp] -- Porting note: simp can prove this
-theorem toIdeal_iSup₂ {κ : Sort _} {κ' : κ → Sort _} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
+theorem toIdeal_iSup₂ {κ : Sort*} {κ' : κ → Sort*} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
(⨆ (i) (j), s i j).toIdeal = ⨆ (i) (j), (s i j).toIdeal := by
simp_rw [toIdeal_iSup]
#align homogeneous_ideal.to_ideal_supr₂ HomogeneousIdeal.toIdeal_iSup₂
-- @[simp] -- Porting note: simp can prove this
-theorem toIdeal_iInf₂ {κ : Sort _} {κ' : κ → Sort _} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
+theorem toIdeal_iInf₂ {κ : Sort*} {κ' : κ → Sort*} (s : ∀ i, κ' i → HomogeneousIdeal 𝒜) :
(⨅ (i) (j), s i j).toIdeal = ⨅ (i) (j), (s i j).toIdeal := by
simp_rw [toIdeal_iInf]
#align homogeneous_ideal.to_ideal_infi₂ HomogeneousIdeal.toIdeal_iInf₂
@@ -2,17 +2,14 @@
Copyright (c) 2021 Jujian Zhang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Jujian Zhang, Eric Wieser
-
-! This file was ported from Lean 3 source module ring_theory.graded_algebra.homogeneous_ideal
-! leanprover-community/mathlib commit 4e861f25ba5ceef42ba0712d8ffeb32f38ad6441
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.RingTheory.Ideal.Basic
import Mathlib.RingTheory.Ideal.Operations
import Mathlib.LinearAlgebra.Finsupp
import Mathlib.RingTheory.GradedAlgebra.Basic
+#align_import ring_theory.graded_algebra.homogeneous_ideal from "leanprover-community/mathlib"@"4e861f25ba5ceef42ba0712d8ffeb32f38ad6441"
+
/-!
# Homogeneous ideals of a graded algebra
@@ -170,7 +170,7 @@ theorem Ideal.homogeneous_span (s : Set A) (h : ∀ x ∈ s, Homogeneous 𝒜 x)
rw [Ideal.span, Finsupp.span_eq_range_total] at hr
rw [LinearMap.mem_range] at hr
obtain ⟨s, rfl⟩ := hr
- rw [Finsupp.total_apply, Finsupp.sum, decompose_sum, Dfinsupp.finset_sum_apply,
+ rw [Finsupp.total_apply, Finsupp.sum, decompose_sum, DFinsupp.finset_sum_apply,
AddSubmonoidClass.coe_finset_sum]
refine' Ideal.sum_mem _ _
rintro z hz1
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -267,7 +267,7 @@ theorem inf {I J : Ideal A} (HI : I.IsHomogeneous 𝒜) (HJ : J.IsHomogeneous
theorem sup {I J : Ideal A} (HI : I.IsHomogeneous 𝒜) (HJ : J.IsHomogeneous 𝒜) :
(I ⊔ J).IsHomogeneous 𝒜 := by
- rw [iff_exists] at HI HJ⊢
+ rw [iff_exists] at HI HJ ⊢
obtain ⟨⟨s₁, rfl⟩, ⟨s₂, rfl⟩⟩ := HI, HJ
refine' ⟨s₁ ∪ s₂, _⟩
rw [Set.image_union]
@@ -276,7 +276,7 @@ theorem sup {I J : Ideal A} (HI : I.IsHomogeneous 𝒜) (HJ : J.IsHomogeneous
protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).IsHomogeneous 𝒜) :
(⨆ i, f i).IsHomogeneous 𝒜 := by
- simp_rw [iff_exists] at h⊢
+ simp_rw [iff_exists] at h ⊢
choose s hs using h
refine' ⟨⋃ i, s i, _⟩
simp_rw [Set.image_iUnion, Ideal.span_iUnion]
@@ -287,7 +287,7 @@ protected theorem iSup {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).IsHo
protected theorem iInf {κ : Sort _} {f : κ → Ideal A} (h : ∀ i, (f i).IsHomogeneous 𝒜) :
(⨅ i, f i).IsHomogeneous 𝒜 := by
intro i x hx
- simp only [Ideal.mem_iInf] at hx⊢
+ simp only [Ideal.mem_iInf] at hx ⊢
exact fun j => h _ _ (hx j)
#align ideal.is_homogeneous.infi Ideal.IsHomogeneous.iInf
@@ -454,7 +454,7 @@ variable (I : Ideal A)
theorem Ideal.IsHomogeneous.mul {I J : Ideal A} (HI : I.IsHomogeneous 𝒜) (HJ : J.IsHomogeneous 𝒜) :
(I * J).IsHomogeneous 𝒜 := by
- rw [Ideal.IsHomogeneous.iff_exists] at HI HJ⊢
+ rw [Ideal.IsHomogeneous.iff_exists] at HI HJ ⊢
obtain ⟨⟨s₁, rfl⟩, ⟨s₂, rfl⟩⟩ := HI, HJ
rw [Ideal.span_mul_span']
exact ⟨s₁ * s₂, congr_arg _ <| (Set.image_mul (homogeneousSubmonoid 𝒜).subtype).symm⟩
The unported dependencies are