ring_theory.localization.as_subring
⟷
Mathlib.RingTheory.Localization.AsSubring
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2022 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz, Junyan Xu
-/
-import Mathbin.RingTheory.Localization.LocalizationLocalization
+import RingTheory.Localization.LocalizationLocalization
#align_import ring_theory.localization.as_subring from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2022 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz, Junyan Xu
-
-! This file was ported from Lean 3 source module ring_theory.localization.as_subring
-! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.RingTheory.Localization.LocalizationLocalization
+#align_import ring_theory.localization.as_subring from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
+
/-!
# Localizations of domains as subalgebras of the fraction field.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -34,24 +34,31 @@ section CommRing
variable [CommRing K] [Algebra A K] [IsFractionRing A K]
+#print Localization.map_isUnit_of_le /-
theorem map_isUnit_of_le (hS : S ≤ A⁰) (s : S) : IsUnit (algebraMap A K s) := by
apply IsLocalization.map_units K (⟨s.1, hS s.2⟩ : A⁰)
#align localization.map_is_unit_of_le Localization.map_isUnit_of_le
+-/
+#print Localization.mapToFractionRing /-
/-- The canonical map from a localization of `A` at `S` to the fraction ring
of `A`, given that `S ≤ A⁰`. -/
noncomputable def mapToFractionRing (B : Type _) [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) : B →ₐ[A] K :=
{ IsLocalization.lift (map_isUnit_of_le K S hS) with commutes' := fun a => by simp }
#align localization.map_to_fraction_ring Localization.mapToFractionRing
+-/
+#print Localization.mapToFractionRing_apply /-
@[simp]
theorem mapToFractionRing_apply {B : Type _} [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) (b : B) :
mapToFractionRing K S B hS b = IsLocalization.lift (map_isUnit_of_le K S hS) b :=
rfl
#align localization.map_to_fraction_ring_apply Localization.mapToFractionRing_apply
+-/
+#print Localization.mem_range_mapToFractionRing_iff /-
theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) (x : K) :
x ∈ (mapToFractionRing K S B hS).range ↔
@@ -63,7 +70,9 @@ theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B]
rintro ⟨a, s, hs, rfl⟩; use IsLocalization.mk' _ a ⟨s, hs⟩
apply IsLocalization.lift_mk'⟩
#align localization.mem_range_map_to_fraction_ring_iff Localization.mem_range_mapToFractionRing_iff
+-/
+#print Localization.isLocalization_range_mapToFractionRing /-
instance isLocalization_range_mapToFractionRing (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (hS : S ≤ A⁰) : IsLocalization S (mapToFractionRing K S B hS).range :=
IsLocalization.isLocalization_of_algEquiv S <|
@@ -76,12 +85,16 @@ instance isLocalization_range_mapToFractionRing (B : Type _) [CommRing B] [Algeb
⟨fun h => congr_arg _ (IsLocalization.injective _ hS h), fun h =>
congr_arg _ (IsFractionRing.injective A K h)⟩)
#align localization.is_localization_range_map_to_fraction_ring Localization.isLocalization_range_mapToFractionRing
+-/
+#print Localization.isFractionRing_range_mapToFractionRing /-
instance isFractionRing_range_mapToFractionRing (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (hS : S ≤ A⁰) : IsFractionRing (mapToFractionRing K S B hS).range K :=
IsFractionRing.isFractionRing_of_isLocalization S _ _ hS
#align localization.is_fraction_ring_range_map_to_fraction_ring Localization.isFractionRing_range_mapToFractionRing
+-/
+#print Localization.subalgebra /-
/-- Given a commutative ring `A` with fraction ring `K`, and a submonoid `S` of `A` which
contains no zero divisor, this is the localization of `A` at `S`, considered as
a subalgebra of `K` over `A`.
@@ -94,16 +107,21 @@ noncomputable def subalgebra (hS : S ≤ A⁰) : Subalgebra A K :=
{x | ∃ (a s : A) (hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, hS hs⟩} <|
by ext; symm; apply mem_range_map_to_fraction_ring_iff
#align localization.subalgebra Localization.subalgebra
+-/
namespace Subalgebra
+#print Localization.subalgebra.isLocalization_subalgebra /-
instance isLocalization_subalgebra : IsLocalization S (subalgebra K S hS) := by
dsimp only [Localization.subalgebra]; rw [Subalgebra.copy_eq]; infer_instance
#align localization.subalgebra.is_localization_subalgebra Localization.subalgebra.isLocalization_subalgebra
+-/
+#print Localization.subalgebra.isFractionRing /-
instance isFractionRing : IsFractionRing (subalgebra K S hS) K :=
IsFractionRing.isFractionRing_of_isLocalization S _ _ hS
#align localization.subalgebra.is_fraction_ring Localization.subalgebra.isFractionRing
+-/
end Subalgebra
@@ -115,6 +133,7 @@ variable [Field K] [Algebra A K] [IsFractionRing A K]
namespace Subalgebra
+#print Localization.subalgebra.mem_range_mapToFractionRing_iff_ofField /-
theorem mem_range_mapToFractionRing_iff_ofField (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (x : K) :
x ∈ (mapToFractionRing K S B hS).range ↔
@@ -123,7 +142,9 @@ theorem mem_range_mapToFractionRing_iff_ofField (B : Type _) [CommRing B] [Algeb
rw [mem_range_map_to_fraction_ring_iff]
iterate 3 congr with; convert Iff.rfl; rw [Units.val_inv_eq_inv_val]; rfl
#align localization.subalgebra.mem_range_map_to_fraction_ring_iff_of_field Localization.subalgebra.mem_range_mapToFractionRing_iff_ofField
+-/
+#print Localization.subalgebra.ofField /-
/-- Given a domain `A` with fraction field `K`, and a submonoid `S` of `A` which
contains no zero divisor, this is the localization of `A` at `S`, considered as
a subalgebra of `K` over `A`.
@@ -136,14 +157,19 @@ noncomputable def ofField : Subalgebra A K :=
{x | ∃ (a s : A) (hs : s ∈ S), x = algebraMap A K a * (algebraMap A K s)⁻¹} <|
by ext; symm; apply mem_range_map_to_fraction_ring_iff_of_field
#align localization.subalgebra.of_field Localization.subalgebra.ofField
+-/
+#print Localization.subalgebra.isLocalization_ofField /-
instance isLocalization_ofField : IsLocalization S (subalgebra.ofField K S hS) := by
dsimp only [Localization.subalgebra.ofField]; rw [Subalgebra.copy_eq]; infer_instance
#align localization.subalgebra.is_localization_of_field Localization.subalgebra.isLocalization_ofField
+-/
+#print Localization.subalgebra.isFractionRing_ofField /-
instance isFractionRing_ofField : IsFractionRing (subalgebra.ofField K S hS) K :=
IsFractionRing.isFractionRing_of_isLocalization S _ _ hS
#align localization.subalgebra.is_fraction_ring_of_field Localization.subalgebra.isFractionRing_ofField
+-/
end Subalgebra
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -91,7 +91,7 @@ The carrier of this subalgebra is defined as the set of all `x : K` of the form
-/
noncomputable def subalgebra (hS : S ≤ A⁰) : Subalgebra A K :=
(mapToFractionRing K S (Localization S) hS).range.copy
- { x | ∃ (a s : A) (hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, hS hs⟩ } <|
+ {x | ∃ (a s : A) (hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, hS hs⟩} <|
by ext; symm; apply mem_range_map_to_fraction_ring_iff
#align localization.subalgebra Localization.subalgebra
@@ -133,7 +133,7 @@ The carrier of this subalgebra is defined as the set of all `x : K` of the form
-/
noncomputable def ofField : Subalgebra A K :=
(mapToFractionRing K S (Localization S) hS).range.copy
- { x | ∃ (a s : A) (hs : s ∈ S), x = algebraMap A K a * (algebraMap A K s)⁻¹ } <|
+ {x | ∃ (a s : A) (hs : s ∈ S), x = algebraMap A K a * (algebraMap A K s)⁻¹} <|
by ext; symm; apply mem_range_map_to_fraction_ring_iff_of_field
#align localization.subalgebra.of_field Localization.subalgebra.ofField
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -55,7 +55,7 @@ theorem mapToFractionRing_apply {B : Type _} [CommRing B] [Algebra A B] [IsLocal
theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) (x : K) :
x ∈ (mapToFractionRing K S B hS).range ↔
- ∃ (a s : A)(hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, hS hs⟩ :=
+ ∃ (a s : A) (hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, hS hs⟩ :=
⟨by
rintro ⟨x, rfl⟩; obtain ⟨a, s, rfl⟩ := IsLocalization.mk'_surjective S x
use a, s, s.2; apply IsLocalization.lift_mk',
@@ -91,7 +91,7 @@ The carrier of this subalgebra is defined as the set of all `x : K` of the form
-/
noncomputable def subalgebra (hS : S ≤ A⁰) : Subalgebra A K :=
(mapToFractionRing K S (Localization S) hS).range.copy
- { x | ∃ (a s : A)(hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, hS hs⟩ } <|
+ { x | ∃ (a s : A) (hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, hS hs⟩ } <|
by ext; symm; apply mem_range_map_to_fraction_ring_iff
#align localization.subalgebra Localization.subalgebra
@@ -118,10 +118,10 @@ namespace Subalgebra
theorem mem_range_mapToFractionRing_iff_ofField (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (x : K) :
x ∈ (mapToFractionRing K S B hS).range ↔
- ∃ (a s : A)(hs : s ∈ S), x = algebraMap A K a * (algebraMap A K s)⁻¹ :=
+ ∃ (a s : A) (hs : s ∈ S), x = algebraMap A K a * (algebraMap A K s)⁻¹ :=
by
rw [mem_range_map_to_fraction_ring_iff]
- iterate 3 congr with ; convert Iff.rfl; rw [Units.val_inv_eq_inv_val]; rfl
+ iterate 3 congr with; convert Iff.rfl; rw [Units.val_inv_eq_inv_val]; rfl
#align localization.subalgebra.mem_range_map_to_fraction_ring_iff_of_field Localization.subalgebra.mem_range_mapToFractionRing_iff_ofField
/-- Given a domain `A` with fraction field `K`, and a submonoid `S` of `A` which
@@ -133,7 +133,7 @@ The carrier of this subalgebra is defined as the set of all `x : K` of the form
-/
noncomputable def ofField : Subalgebra A K :=
(mapToFractionRing K S (Localization S) hS).range.copy
- { x | ∃ (a s : A)(hs : s ∈ S), x = algebraMap A K a * (algebraMap A K s)⁻¹ } <|
+ { x | ∃ (a s : A) (hs : s ∈ S), x = algebraMap A K a * (algebraMap A K s)⁻¹ } <|
by ext; symm; apply mem_range_map_to_fraction_ring_iff_of_field
#align localization.subalgebra.of_field Localization.subalgebra.ofField
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -26,7 +26,7 @@ as a subalgebra of the field `K` over `A`.
namespace Localization
-open nonZeroDivisors
+open scoped nonZeroDivisors
variable {A : Type _} (K : Type _) [CommRing A] (S : Submonoid A) (hS : S ≤ A⁰)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -34,19 +34,10 @@ section CommRing
variable [CommRing K] [Algebra A K] [IsFractionRing A K]
-/- warning: localization.map_is_unit_of_le -> Localization.map_isUnit_of_le is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align localization.map_is_unit_of_le Localization.map_isUnit_of_leₓ'. -/
theorem map_isUnit_of_le (hS : S ≤ A⁰) (s : S) : IsUnit (algebraMap A K s) := by
apply IsLocalization.map_units K (⟨s.1, hS s.2⟩ : A⁰)
#align localization.map_is_unit_of_le Localization.map_isUnit_of_le
-/- warning: localization.map_to_fraction_ring -> Localization.mapToFractionRing is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6], (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) -> (AlgHom.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_6 _inst_3)
-but is expected to have type
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6], (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) -> (AlgHom.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_6 _inst_3)
-Case conversion may be inaccurate. Consider using '#align localization.map_to_fraction_ring Localization.mapToFractionRingₓ'. -/
/-- The canonical map from a localization of `A` at `S` to the fraction ring
of `A`, given that `S ≤ A⁰`. -/
noncomputable def mapToFractionRing (B : Type _) [CommRing B] [Algebra A B] [IsLocalization S B]
@@ -54,9 +45,6 @@ noncomputable def mapToFractionRing (B : Type _) [CommRing B] [Algebra A B] [IsL
{ IsLocalization.lift (map_isUnit_of_le K S hS) with commutes' := fun a => by simp }
#align localization.map_to_fraction_ring Localization.mapToFractionRing
-/- warning: localization.map_to_fraction_ring_apply -> Localization.mapToFractionRing_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align localization.map_to_fraction_ring_apply Localization.mapToFractionRing_applyₓ'. -/
@[simp]
theorem mapToFractionRing_apply {B : Type _} [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) (b : B) :
@@ -64,9 +52,6 @@ theorem mapToFractionRing_apply {B : Type _} [CommRing B] [Algebra A B] [IsLocal
rfl
#align localization.map_to_fraction_ring_apply Localization.mapToFractionRing_apply
-/- warning: localization.mem_range_map_to_fraction_ring_iff -> Localization.mem_range_mapToFractionRing_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align localization.mem_range_map_to_fraction_ring_iff Localization.mem_range_mapToFractionRing_iffₓ'. -/
theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) (x : K) :
x ∈ (mapToFractionRing K S B hS).range ↔
@@ -79,9 +64,6 @@ theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B]
apply IsLocalization.lift_mk'⟩
#align localization.mem_range_map_to_fraction_ring_iff Localization.mem_range_mapToFractionRing_iff
-/- warning: localization.is_localization_range_map_to_fraction_ring -> Localization.isLocalization_range_mapToFractionRing is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align localization.is_localization_range_map_to_fraction_ring Localization.isLocalization_range_mapToFractionRingₓ'. -/
instance isLocalization_range_mapToFractionRing (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (hS : S ≤ A⁰) : IsLocalization S (mapToFractionRing K S B hS).range :=
IsLocalization.isLocalization_of_algEquiv S <|
@@ -95,20 +77,11 @@ instance isLocalization_range_mapToFractionRing (B : Type _) [CommRing B] [Algeb
congr_arg _ (IsFractionRing.injective A K h)⟩)
#align localization.is_localization_range_map_to_fraction_ring Localization.isLocalization_range_mapToFractionRing
-/- warning: localization.is_fraction_ring_range_map_to_fraction_ring -> Localization.isFractionRing_range_mapToFractionRing is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align localization.is_fraction_ring_range_map_to_fraction_ring Localization.isFractionRing_range_mapToFractionRingₓ'. -/
instance isFractionRing_range_mapToFractionRing (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (hS : S ≤ A⁰) : IsFractionRing (mapToFractionRing K S B hS).range K :=
IsFractionRing.isFractionRing_of_isLocalization S _ _ hS
#align localization.is_fraction_ring_range_map_to_fraction_ring Localization.isFractionRing_range_mapToFractionRing
-/- warning: localization.subalgebra -> Localization.subalgebra is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) -> (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)
-but is expected to have type
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) -> (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3)
-Case conversion may be inaccurate. Consider using '#align localization.subalgebra Localization.subalgebraₓ'. -/
/-- Given a commutative ring `A` with fraction ring `K`, and a submonoid `S` of `A` which
contains no zero divisor, this is the localization of `A` at `S`, considered as
a subalgebra of `K` over `A`.
@@ -124,22 +97,10 @@ noncomputable def subalgebra (hS : S ≤ A⁰) : Subalgebra A K :=
namespace Subalgebra
-/- warning: localization.subalgebra.is_localization_subalgebra -> Localization.subalgebra.isLocalization_subalgebra is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)) (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))
-but is expected to have type
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3)) x (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))
-Case conversion may be inaccurate. Consider using '#align localization.subalgebra.is_localization_subalgebra Localization.subalgebra.isLocalization_subalgebraₓ'. -/
instance isLocalization_subalgebra : IsLocalization S (subalgebra K S hS) := by
dsimp only [Localization.subalgebra]; rw [Subalgebra.copy_eq]; infer_instance
#align localization.subalgebra.is_localization_subalgebra Localization.subalgebra.isLocalization_subalgebra
-/- warning: localization.subalgebra.is_fraction_ring -> Localization.subalgebra.isFractionRing is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], IsFractionRing.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)) (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 _inst_2 _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) K _inst_2 (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Algebra.id.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))
-but is expected to have type
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], IsFractionRing.{u2, u2} (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3)) x (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 _inst_2 _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) K _inst_2 (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Algebra.id.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))
-Case conversion may be inaccurate. Consider using '#align localization.subalgebra.is_fraction_ring Localization.subalgebra.isFractionRingₓ'. -/
instance isFractionRing : IsFractionRing (subalgebra K S hS) K :=
IsFractionRing.isFractionRing_of_isLocalization S _ _ hS
#align localization.subalgebra.is_fraction_ring Localization.subalgebra.isFractionRing
@@ -154,9 +115,6 @@ variable [Field K] [Algebra A K] [IsFractionRing A K]
namespace Subalgebra
-/- warning: localization.subalgebra.mem_range_map_to_fraction_ring_iff_of_field -> Localization.subalgebra.mem_range_mapToFractionRing_iff_ofField is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align localization.subalgebra.mem_range_map_to_fraction_ring_iff_of_field Localization.subalgebra.mem_range_mapToFractionRing_iff_ofFieldₓ'. -/
theorem mem_range_mapToFractionRing_iff_ofField (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (x : K) :
x ∈ (mapToFractionRing K S B hS).range ↔
@@ -166,12 +124,6 @@ theorem mem_range_mapToFractionRing_iff_ofField (B : Type _) [CommRing B] [Algeb
iterate 3 congr with ; convert Iff.rfl; rw [Units.val_inv_eq_inv_val]; rfl
#align localization.subalgebra.mem_range_map_to_fraction_ring_iff_of_field Localization.subalgebra.mem_range_mapToFractionRing_iff_ofField
-/- warning: localization.subalgebra.of_field -> Localization.subalgebra.ofField is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))), (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) -> (forall [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3)
-but is expected to have type
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))), (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) -> (forall [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3)
-Case conversion may be inaccurate. Consider using '#align localization.subalgebra.of_field Localization.subalgebra.ofFieldₓ'. -/
/-- Given a domain `A` with fraction field `K`, and a submonoid `S` of `A` which
contains no zero divisor, this is the localization of `A` at `S`, considered as
a subalgebra of `K` over `A`.
@@ -185,22 +137,10 @@ noncomputable def ofField : Subalgebra A K :=
by ext; symm; apply mem_range_map_to_fraction_ring_iff_of_field
#align localization.subalgebra.of_field Localization.subalgebra.ofField
-/- warning: localization.subalgebra.is_localization_of_field -> Localization.subalgebra.isLocalization_ofField is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3)) (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))
-but is expected to have type
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3)) x (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))
-Case conversion may be inaccurate. Consider using '#align localization.subalgebra.is_localization_of_field Localization.subalgebra.isLocalization_ofFieldₓ'. -/
instance isLocalization_ofField : IsLocalization S (subalgebra.ofField K S hS) := by
dsimp only [Localization.subalgebra.ofField]; rw [Subalgebra.copy_eq]; infer_instance
#align localization.subalgebra.is_localization_of_field Localization.subalgebra.isLocalization_ofField
-/- warning: localization.subalgebra.is_fraction_ring_of_field -> Localization.subalgebra.isFractionRing_ofField is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], IsFractionRing.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3)) (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3 (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))
-but is expected to have type
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], IsFractionRing.{u2, u2} (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3)) x (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3 (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))
-Case conversion may be inaccurate. Consider using '#align localization.subalgebra.is_fraction_ring_of_field Localization.subalgebra.isFractionRing_ofFieldₓ'. -/
instance isFractionRing_ofField : IsFractionRing (subalgebra.ofField K S hS) K :=
IsFractionRing.isFractionRing_of_isLocalization S _ _ hS
#align localization.subalgebra.is_fraction_ring_of_field Localization.subalgebra.isFractionRing_ofField
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -72,12 +72,10 @@ theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B]
x ∈ (mapToFractionRing K S B hS).range ↔
∃ (a s : A)(hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, hS hs⟩ :=
⟨by
- rintro ⟨x, rfl⟩
- obtain ⟨a, s, rfl⟩ := IsLocalization.mk'_surjective S x
- use a, s, s.2
- apply IsLocalization.lift_mk', by
- rintro ⟨a, s, hs, rfl⟩
- use IsLocalization.mk' _ a ⟨s, hs⟩
+ rintro ⟨x, rfl⟩; obtain ⟨a, s, rfl⟩ := IsLocalization.mk'_surjective S x
+ use a, s, s.2; apply IsLocalization.lift_mk',
+ by
+ rintro ⟨a, s, hs, rfl⟩; use IsLocalization.mk' _ a ⟨s, hs⟩
apply IsLocalization.lift_mk'⟩
#align localization.mem_range_map_to_fraction_ring_iff Localization.mem_range_mapToFractionRing_iff
@@ -121,10 +119,7 @@ The carrier of this subalgebra is defined as the set of all `x : K` of the form
noncomputable def subalgebra (hS : S ≤ A⁰) : Subalgebra A K :=
(mapToFractionRing K S (Localization S) hS).range.copy
{ x | ∃ (a s : A)(hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, hS hs⟩ } <|
- by
- ext
- symm
- apply mem_range_map_to_fraction_ring_iff
+ by ext; symm; apply mem_range_map_to_fraction_ring_iff
#align localization.subalgebra Localization.subalgebra
namespace Subalgebra
@@ -135,11 +130,8 @@ lean 3 declaration is
but is expected to have type
forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3)) x (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))
Case conversion may be inaccurate. Consider using '#align localization.subalgebra.is_localization_subalgebra Localization.subalgebra.isLocalization_subalgebraₓ'. -/
-instance isLocalization_subalgebra : IsLocalization S (subalgebra K S hS) :=
- by
- dsimp only [Localization.subalgebra]
- rw [Subalgebra.copy_eq]
- infer_instance
+instance isLocalization_subalgebra : IsLocalization S (subalgebra K S hS) := by
+ dsimp only [Localization.subalgebra]; rw [Subalgebra.copy_eq]; infer_instance
#align localization.subalgebra.is_localization_subalgebra Localization.subalgebra.isLocalization_subalgebra
/- warning: localization.subalgebra.is_fraction_ring -> Localization.subalgebra.isFractionRing is a dubious translation:
@@ -190,10 +182,7 @@ The carrier of this subalgebra is defined as the set of all `x : K` of the form
noncomputable def ofField : Subalgebra A K :=
(mapToFractionRing K S (Localization S) hS).range.copy
{ x | ∃ (a s : A)(hs : s ∈ S), x = algebraMap A K a * (algebraMap A K s)⁻¹ } <|
- by
- ext
- symm
- apply mem_range_map_to_fraction_ring_iff_of_field
+ by ext; symm; apply mem_range_map_to_fraction_ring_iff_of_field
#align localization.subalgebra.of_field Localization.subalgebra.ofField
/- warning: localization.subalgebra.is_localization_of_field -> Localization.subalgebra.isLocalization_ofField is a dubious translation:
@@ -202,11 +191,8 @@ lean 3 declaration is
but is expected to have type
forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3)) x (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))
Case conversion may be inaccurate. Consider using '#align localization.subalgebra.is_localization_of_field Localization.subalgebra.isLocalization_ofFieldₓ'. -/
-instance isLocalization_ofField : IsLocalization S (subalgebra.ofField K S hS) :=
- by
- dsimp only [Localization.subalgebra.ofField]
- rw [Subalgebra.copy_eq]
- infer_instance
+instance isLocalization_ofField : IsLocalization S (subalgebra.ofField K S hS) := by
+ dsimp only [Localization.subalgebra.ofField]; rw [Subalgebra.copy_eq]; infer_instance
#align localization.subalgebra.is_localization_of_field Localization.subalgebra.isLocalization_ofField
/- warning: localization.subalgebra.is_fraction_ring_of_field -> Localization.subalgebra.isFractionRing_ofField is a dubious translation:
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -35,10 +35,7 @@ section CommRing
variable [CommRing K] [Algebra A K] [IsFractionRing A K]
/- warning: localization.map_is_unit_of_le -> Localization.map_isUnit_of_le is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) -> (forall (s : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) S), IsUnit.{u2} K (Ring.toMonoid.{u2} K (CommRing.toRing.{u2} K _inst_2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)))) (fun (_x : RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)))) => A -> K) (RingHom.hasCoeToFun.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)))) (algebraMap.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) S) A (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) S) A (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) S) A (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) S) A (coeSubtype.{succ u1} A (fun (x : A) => Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) x S))))) s)))
-but is expected to have type
- forall {A : Type.{u2}} (K : Type.{u1}) [_inst_1 : CommRing.{u2} A] (S : Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) [_inst_2 : CommRing.{u1} K] [_inst_3 : Algebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))] [_inst_4 : IsFractionRing.{u2, u1} A _inst_1 K _inst_2 _inst_3], (LE.le.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Preorder.toLE.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))))) S (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) -> (forall (s : Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) x S)), IsUnit.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)) (MonoidWithZero.toMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)) (CommSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)) _inst_2)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) A K (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) A K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))) (RingHom.instRingHomClassRingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (algebraMap.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)))
+<too large>
Case conversion may be inaccurate. Consider using '#align localization.map_is_unit_of_le Localization.map_isUnit_of_leₓ'. -/
theorem map_isUnit_of_le (hS : S ≤ A⁰) (s : S) : IsUnit (algebraMap A K s) := by
apply IsLocalization.map_units K (⟨s.1, hS s.2⟩ : A⁰)
@@ -58,10 +55,7 @@ noncomputable def mapToFractionRing (B : Type _) [CommRing B] [Algebra A B] [IsL
#align localization.map_to_fraction_ring Localization.mapToFractionRing
/- warning: localization.map_to_fraction_ring_apply -> Localization.mapToFractionRing_apply is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] {B : Type.{u3}} [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) (b : B), Eq.{succ u2} K (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (AlgHom.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_6 _inst_3) (fun (_x : AlgHom.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_6 _inst_3) => B -> K) ([anonymous].{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_6 _inst_3) (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS) b) (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (RingHom.{u3, u2} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)))) (fun (_x : RingHom.{u3, u2} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)))) => B -> K) (RingHom.hasCoeToFun.{u3, u2} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)))) (IsLocalization.lift.{u1, u3, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6 K (CommRing.toCommSemiring.{u2} K _inst_2) _inst_7 (algebraMap.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) (Localization.map_isUnit_of_le.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) b)
-but is expected to have type
- forall {A : Type.{u2}} (K : Type.{u1}) [_inst_1 : CommRing.{u2} A] (S : Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) [_inst_2 : CommRing.{u1} K] [_inst_3 : Algebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))] [_inst_4 : IsFractionRing.{u2, u1} A _inst_1 K _inst_2 _inst_3] {B : Type.{u3}} [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u2, u3} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Preorder.toLE.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))))) S (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (b : B), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => K) b) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => K) _x) (SMulHomClass.toFunLike.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (SMulZeroClass.toSMul.{u2, u3} A B (AddMonoid.toZero.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))))) (DistribSMul.toSMulZeroClass.{u2, u3} A B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))))) (DistribMulAction.toDistribSMul.{u2, u3} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6))))) (SMulZeroClass.toSMul.{u2, u1} A K (AddMonoid.toZero.{u1} K (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, u1} A K (AddMonoid.toAddZeroClass.{u1} K (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, u1} A K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))))) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))))) (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6)) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6)) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u1 u3} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3 (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) (AlgHom.algHomClass.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3))))) (Localization.mapToFractionRing.{u2, u1, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS) b) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => K) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (NonUnitalNonAssocSemiring.toMul.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))) (RingHom.instRingHomClassRingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (IsLocalization.lift.{u2, u3, u1} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6 K (CommRing.toCommSemiring.{u1} K _inst_2) _inst_7 (algebraMap.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3) (Localization.map_isUnit_of_le.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) b)
+<too large>
Case conversion may be inaccurate. Consider using '#align localization.map_to_fraction_ring_apply Localization.mapToFractionRing_applyₓ'. -/
@[simp]
theorem mapToFractionRing_apply {B : Type _} [CommRing B] [Algebra A B] [IsLocalization S B]
@@ -71,10 +65,7 @@ theorem mapToFractionRing_apply {B : Type _} [CommRing B] [Algebra A B] [IsLocal
#align localization.map_to_fraction_ring_apply Localization.mapToFractionRing_apply
/- warning: localization.mem_range_map_to_fraction_ring_iff -> Localization.mem_range_mapToFractionRing_iff is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) (x : K), Iff (Membership.Mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)) x (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Exists.{succ u1} A (fun (a : A) => Exists.{succ u1} A (fun (s : A) => Exists.{0} (Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) s S) (fun (hs : Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) s S) => Eq.{succ u2} K x (IsLocalization.mk'.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)))) K (CommRing.toCommSemiring.{u2} K _inst_2) _inst_3 _inst_4 a (Subtype.mk.{succ u1} A (fun (x : A) => Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))))) x (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) s (hS s hs)))))))
-but is expected to have type
- forall {A : Type.{u2}} (K : Type.{u1}) [_inst_1 : CommRing.{u2} A] (S : Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) [_inst_2 : CommRing.{u1} K] [_inst_3 : Algebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))] [_inst_4 : IsFractionRing.{u2, u1} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u2, u3} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Preorder.toLE.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))))) S (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (x : K), Iff (Membership.mem.{u1, u1} K (Subalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3)) x (AlgHom.range.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u2, u1, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Exists.{succ u2} A (fun (a : A) => Exists.{succ u2} A (fun (s : A) => Exists.{0} (Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) s S) (fun (hs : Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) s S) => Eq.{succ u1} K x (IsLocalization.mk'.{u2, u1} A (CommRing.toCommSemiring.{u2} A _inst_1) (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) K (CommRing.toCommSemiring.{u1} K _inst_2) _inst_3 _inst_4 a (Subtype.mk.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) x (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) s (hS s hs)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align localization.mem_range_map_to_fraction_ring_iff Localization.mem_range_mapToFractionRing_iffₓ'. -/
theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) (x : K) :
@@ -91,10 +82,7 @@ theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B]
#align localization.mem_range_map_to_fraction_ring_iff Localization.mem_range_mapToFractionRing_iff
/- warning: localization.is_localization_range_map_to_fraction_ring -> Localization.isLocalization_range_mapToFractionRing is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))), IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)) (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))
-but is expected to have type
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))), IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3)) x (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))
+<too large>
Case conversion may be inaccurate. Consider using '#align localization.is_localization_range_map_to_fraction_ring Localization.isLocalization_range_mapToFractionRingₓ'. -/
instance isLocalization_range_mapToFractionRing (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (hS : S ≤ A⁰) : IsLocalization S (mapToFractionRing K S B hS).range :=
@@ -110,10 +98,7 @@ instance isLocalization_range_mapToFractionRing (B : Type _) [CommRing B] [Algeb
#align localization.is_localization_range_map_to_fraction_ring Localization.isLocalization_range_mapToFractionRing
/- warning: localization.is_fraction_ring_range_map_to_fraction_ring -> Localization.isFractionRing_range_mapToFractionRing is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))), IsFractionRing.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)) (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 _inst_2 _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) K _inst_2 (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Algebra.id.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))
-but is expected to have type
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))), IsFractionRing.{u2, u2} (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3)) x (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 _inst_2 _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) K _inst_2 (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Algebra.id.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))
+<too large>
Case conversion may be inaccurate. Consider using '#align localization.is_fraction_ring_range_map_to_fraction_ring Localization.isFractionRing_range_mapToFractionRingₓ'. -/
instance isFractionRing_range_mapToFractionRing (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (hS : S ≤ A⁰) : IsFractionRing (mapToFractionRing K S B hS).range K :=
@@ -178,10 +163,7 @@ variable [Field K] [Algebra A K] [IsFractionRing A K]
namespace Subalgebra
/- warning: localization.subalgebra.mem_range_map_to_fraction_ring_iff_of_field -> Localization.subalgebra.mem_range_mapToFractionRing_iff_ofField is a dubious translation:
-lean 3 declaration is
- forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (x : K), Iff (Membership.Mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3)) x (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Exists.{succ u1} A (fun (a : A) => Exists.{succ u1} A (fun (s : A) => Exists.{0} (Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) s S) (fun (hs : Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) s S) => Eq.{succ u2} K x (HMul.hMul.{u2, u2, u2} K K K (instHMul.{u2} K (Distrib.toHasMul.{u2} K (Ring.toDistrib.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) (fun (_x : RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) => A -> K) (RingHom.hasCoeToFun.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) (algebraMap.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) a) (Inv.inv.{u2} K (DivInvMonoid.toHasInv.{u2} K (DivisionRing.toDivInvMonoid.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) (fun (_x : RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) => A -> K) (RingHom.hasCoeToFun.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) (algebraMap.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) s)))))))
-but is expected to have type
- forall {A : Type.{u2}} (K : Type.{u1}) [_inst_1 : CommRing.{u2} A] (S : Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (hS : LE.le.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Preorder.toLE.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))))) S (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) [_inst_2 : Field.{u1} K] [_inst_3 : Algebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))] [_inst_4 : IsFractionRing.{u2, u1} A _inst_1 K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)) _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u2, u3} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (x : K), Iff (Membership.mem.{u1, u1} K (Subalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)))) _inst_3) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)))) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)))) _inst_3)) x (AlgHom.range.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)))) _inst_3 (Localization.mapToFractionRing.{u2, u1, u3} A K _inst_1 S (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)) _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Exists.{succ u2} A (fun (a : A) => Exists.{succ u2} A (fun (s : A) => Exists.{0} (Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) s S) (fun (hs : Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) s S) => Eq.{succ u1} K x (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) s) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (DivisionRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (Field.toDivisionRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) _inst_2)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))))))) (algebraMap.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))) _inst_3) a) (Inv.inv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) s) (Field.toInv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) s) _inst_2) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))))))) (algebraMap.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))) _inst_3) s)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align localization.subalgebra.mem_range_map_to_fraction_ring_iff_of_field Localization.subalgebra.mem_range_mapToFractionRing_iff_ofFieldₓ'. -/
theorem mem_range_mapToFractionRing_iff_ofField (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (x : K) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -61,7 +61,7 @@ noncomputable def mapToFractionRing (B : Type _) [CommRing B] [Algebra A B] [IsL
lean 3 declaration is
forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] {B : Type.{u3}} [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) (b : B), Eq.{succ u2} K (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (AlgHom.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_6 _inst_3) (fun (_x : AlgHom.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_6 _inst_3) => B -> K) ([anonymous].{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_6 _inst_3) (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS) b) (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (RingHom.{u3, u2} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)))) (fun (_x : RingHom.{u3, u2} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)))) => B -> K) (RingHom.hasCoeToFun.{u3, u2} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)))) (IsLocalization.lift.{u1, u3, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6 K (CommRing.toCommSemiring.{u2} K _inst_2) _inst_7 (algebraMap.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) (Localization.map_isUnit_of_le.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) b)
but is expected to have type
- forall {A : Type.{u2}} (K : Type.{u1}) [_inst_1 : CommRing.{u2} A] (S : Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) [_inst_2 : CommRing.{u1} K] [_inst_3 : Algebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))] [_inst_4 : IsFractionRing.{u2, u1} A _inst_1 K _inst_2 _inst_3] {B : Type.{u3}} [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u2, u3} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Preorder.toLE.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))))) S (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (b : B), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => K) b) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => K) _x) (SMulHomClass.toFunLike.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (SMulZeroClass.toSMul.{u2, u3} A B (AddMonoid.toZero.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))))) (DistribSMul.toSMulZeroClass.{u2, u3} A B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))))) (DistribMulAction.toDistribSMul.{u2, u3} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6))))) (SMulZeroClass.toSMul.{u2, u1} A K (AddMonoid.toZero.{u1} K (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, u1} A K (AddMonoid.toAddZeroClass.{u1} K (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, u1} A K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))))) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))))) (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6)) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6)) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u1 u3} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3 (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) (AlgHom.algHomClass.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3))))) (Localization.mapToFractionRing.{u2, u1, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS) b) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => K) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (NonUnitalNonAssocSemiring.toMul.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))) (RingHom.instRingHomClassRingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (IsLocalization.lift.{u2, u3, u1} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6 K (CommRing.toCommSemiring.{u1} K _inst_2) _inst_7 (algebraMap.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3) (Localization.map_isUnit_of_le.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) b)
+ forall {A : Type.{u2}} (K : Type.{u1}) [_inst_1 : CommRing.{u2} A] (S : Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) [_inst_2 : CommRing.{u1} K] [_inst_3 : Algebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))] [_inst_4 : IsFractionRing.{u2, u1} A _inst_1 K _inst_2 _inst_3] {B : Type.{u3}} [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u2, u3} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Preorder.toLE.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))))) S (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (b : B), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => K) b) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : B) => K) _x) (SMulHomClass.toFunLike.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (SMulZeroClass.toSMul.{u2, u3} A B (AddMonoid.toZero.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))))) (DistribSMul.toSMulZeroClass.{u2, u3} A B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))))) (DistribMulAction.toDistribSMul.{u2, u3} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6))))) (SMulZeroClass.toSMul.{u2, u1} A K (AddMonoid.toZero.{u1} K (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, u1} A K (AddMonoid.toAddZeroClass.{u1} K (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, u1} A K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))))) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))))) (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6)) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6)) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u1 u3} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3 (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) (AlgHom.algHomClass.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3))))) (Localization.mapToFractionRing.{u2, u1, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS) b) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => K) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (NonUnitalNonAssocSemiring.toMul.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))) (RingHom.instRingHomClassRingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (IsLocalization.lift.{u2, u3, u1} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6 K (CommRing.toCommSemiring.{u1} K _inst_2) _inst_7 (algebraMap.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3) (Localization.map_isUnit_of_le.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) b)
Case conversion may be inaccurate. Consider using '#align localization.map_to_fraction_ring_apply Localization.mapToFractionRing_applyₓ'. -/
@[simp]
theorem mapToFractionRing_apply {B : Type _} [CommRing B] [Algebra A B] [IsLocalization S B]
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz, Junyan Xu
! This file was ported from Lean 3 source module ring_theory.localization.as_subring
-! leanprover-community/mathlib commit 649ca66bf4d62796b5eefef966e622d91aa471f3
+! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.RingTheory.Localization.LocalizationLocalization
# Localizations of domains as subalgebras of the fraction field.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
Given a domain `A` with fraction field `K`, and a submonoid `S` of `A` which
does not contain zero, this file constructs the localization of `A` at `S`
as a subalgebra of the field `K` over `A`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -31,10 +31,22 @@ section CommRing
variable [CommRing K] [Algebra A K] [IsFractionRing A K]
+/- warning: localization.map_is_unit_of_le -> Localization.map_isUnit_of_le is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) -> (forall (s : coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) S), IsUnit.{u2} K (Ring.toMonoid.{u2} K (CommRing.toRing.{u2} K _inst_2)) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)))) (fun (_x : RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)))) => A -> K) (RingHom.hasCoeToFun.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)))) (algebraMap.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) S) A (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) S) A (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) S) A (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) S) A (coeSubtype.{succ u1} A (fun (x : A) => Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) x S))))) s)))
+but is expected to have type
+ forall {A : Type.{u2}} (K : Type.{u1}) [_inst_1 : CommRing.{u2} A] (S : Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) [_inst_2 : CommRing.{u1} K] [_inst_3 : Algebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))] [_inst_4 : IsFractionRing.{u2, u1} A _inst_1 K _inst_2 _inst_3], (LE.le.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Preorder.toLE.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))))) S (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) -> (forall (s : Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) x S)), IsUnit.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)) (MonoidWithZero.toMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)) (CommSemiring.toSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)) (CommRing.toCommSemiring.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)) _inst_2)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) A K (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) A K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))) (RingHom.instRingHomClassRingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (algebraMap.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3) (Subtype.val.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Set.{u2} A) (Set.instMembershipSet.{u2} A) x (SetLike.coe.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) S)) s)))
+Case conversion may be inaccurate. Consider using '#align localization.map_is_unit_of_le Localization.map_isUnit_of_leₓ'. -/
theorem map_isUnit_of_le (hS : S ≤ A⁰) (s : S) : IsUnit (algebraMap A K s) := by
apply IsLocalization.map_units K (⟨s.1, hS s.2⟩ : A⁰)
#align localization.map_is_unit_of_le Localization.map_isUnit_of_le
+/- warning: localization.map_to_fraction_ring -> Localization.mapToFractionRing is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6], (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) -> (AlgHom.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_6 _inst_3)
+but is expected to have type
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6], (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) -> (AlgHom.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_6 _inst_3)
+Case conversion may be inaccurate. Consider using '#align localization.map_to_fraction_ring Localization.mapToFractionRingₓ'. -/
/-- The canonical map from a localization of `A` at `S` to the fraction ring
of `A`, given that `S ≤ A⁰`. -/
noncomputable def mapToFractionRing (B : Type _) [CommRing B] [Algebra A B] [IsLocalization S B]
@@ -42,6 +54,12 @@ noncomputable def mapToFractionRing (B : Type _) [CommRing B] [Algebra A B] [IsL
{ IsLocalization.lift (map_isUnit_of_le K S hS) with commutes' := fun a => by simp }
#align localization.map_to_fraction_ring Localization.mapToFractionRing
+/- warning: localization.map_to_fraction_ring_apply -> Localization.mapToFractionRing_apply is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] {B : Type.{u3}} [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) (b : B), Eq.{succ u2} K (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (AlgHom.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_6 _inst_3) (fun (_x : AlgHom.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_6 _inst_3) => B -> K) ([anonymous].{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_6 _inst_3) (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS) b) (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (RingHom.{u3, u2} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)))) (fun (_x : RingHom.{u3, u2} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)))) => B -> K) (RingHom.hasCoeToFun.{u3, u2} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u2} K (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)))) (IsLocalization.lift.{u1, u3, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6 K (CommRing.toCommSemiring.{u2} K _inst_2) _inst_7 (algebraMap.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) (Localization.map_isUnit_of_le.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) b)
+but is expected to have type
+ forall {A : Type.{u2}} (K : Type.{u1}) [_inst_1 : CommRing.{u2} A] (S : Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) [_inst_2 : CommRing.{u1} K] [_inst_3 : Algebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))] [_inst_4 : IsFractionRing.{u2, u1} A _inst_1 K _inst_2 _inst_3] {B : Type.{u3}} [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u2, u3} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Preorder.toLE.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))))) S (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (b : B), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => K) b) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : B) => K) _x) (SMulHomClass.toFunLike.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (SMulZeroClass.toSMul.{u2, u3} A B (AddMonoid.toZero.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))))) (DistribSMul.toSMulZeroClass.{u2, u3} A B (AddMonoid.toAddZeroClass.{u3} B (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))))) (DistribMulAction.toDistribSMul.{u2, u3} A B (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6))))) (SMulZeroClass.toSMul.{u2, u1} A K (AddMonoid.toZero.{u1} K (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (DistribSMul.toSMulZeroClass.{u2, u1} A K (AddMonoid.toAddZeroClass.{u1} K (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (DistribMulAction.toDistribSMul.{u2, u1} A K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))))) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (AddCommMonoid.toAddMonoid.{u3} B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))))) (AddCommMonoid.toAddMonoid.{u1} K (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6)) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3)) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u3, u2, u3, u1} (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) A B K (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) (Module.toDistribMulAction.{u2, u3} A B (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (Algebra.toModule.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6)) (Module.toDistribMulAction.{u2, u1} A K (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (Algebra.toModule.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3)) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u2, u3, u1, max u1 u3} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3 (AlgHom.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3) (AlgHom.algHomClass.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_6 _inst_3))))) (Localization.mapToFractionRing.{u2, u1, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS) b) (FunLike.coe.{max (succ u1) (succ u3), succ u3, succ u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : B) => K) _x) (MulHomClass.toFunLike.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (NonUnitalNonAssocSemiring.toMul.{u3} B (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} B (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u3, u3, u1} (RingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)))) B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))) (RingHom.instRingHomClassRingHom.{u3, u1} B K (Semiring.toNonAssocSemiring.{u3} B (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))) (Semiring.toNonAssocSemiring.{u1} K (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))))))) (IsLocalization.lift.{u2, u3, u1} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6 K (CommRing.toCommSemiring.{u1} K _inst_2) _inst_7 (algebraMap.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3) (Localization.map_isUnit_of_le.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) b)
+Case conversion may be inaccurate. Consider using '#align localization.map_to_fraction_ring_apply Localization.mapToFractionRing_applyₓ'. -/
@[simp]
theorem mapToFractionRing_apply {B : Type _} [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) (b : B) :
@@ -49,6 +67,12 @@ theorem mapToFractionRing_apply {B : Type _} [CommRing B] [Algebra A B] [IsLocal
rfl
#align localization.map_to_fraction_ring_apply Localization.mapToFractionRing_apply
+/- warning: localization.mem_range_map_to_fraction_ring_iff -> Localization.mem_range_mapToFractionRing_iff is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) (x : K), Iff (Membership.Mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)) x (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Exists.{succ u1} A (fun (a : A) => Exists.{succ u1} A (fun (s : A) => Exists.{0} (Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) s S) (fun (hs : Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) s S) => Eq.{succ u2} K x (IsLocalization.mk'.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1)))) K (CommRing.toCommSemiring.{u2} K _inst_2) _inst_3 _inst_4 a (Subtype.mk.{succ u1} A (fun (x : A) => Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))))) x (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) s (hS s hs)))))))
+but is expected to have type
+ forall {A : Type.{u2}} (K : Type.{u1}) [_inst_1 : CommRing.{u2} A] (S : Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) [_inst_2 : CommRing.{u1} K] [_inst_3 : Algebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2))] [_inst_4 : IsFractionRing.{u2, u1} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u2, u3} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Preorder.toLE.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))))) S (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (x : K), Iff (Membership.mem.{u1, u1} K (Subalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3)) x (AlgHom.range.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u2, u1, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Exists.{succ u2} A (fun (a : A) => Exists.{succ u2} A (fun (s : A) => Exists.{0} (Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) s S) (fun (hs : Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) s S) => Eq.{succ u1} K x (IsLocalization.mk'.{u2, u1} A (CommRing.toCommSemiring.{u2} A _inst_1) (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) K (CommRing.toCommSemiring.{u1} K _inst_2) _inst_3 _inst_4 a (Subtype.mk.{succ u2} A (fun (x : A) => Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) x (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) s (hS s hs)))))))
+Case conversion may be inaccurate. Consider using '#align localization.mem_range_map_to_fraction_ring_iff Localization.mem_range_mapToFractionRing_iffₓ'. -/
theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) (x : K) :
x ∈ (mapToFractionRing K S B hS).range ↔
@@ -63,6 +87,12 @@ theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B]
apply IsLocalization.lift_mk'⟩
#align localization.mem_range_map_to_fraction_ring_iff Localization.mem_range_mapToFractionRing_iff
+/- warning: localization.is_localization_range_map_to_fraction_ring -> Localization.isLocalization_range_mapToFractionRing is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))), IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)) (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))
+but is expected to have type
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))), IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3)) x (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))
+Case conversion may be inaccurate. Consider using '#align localization.is_localization_range_map_to_fraction_ring Localization.isLocalization_range_mapToFractionRingₓ'. -/
instance isLocalization_range_mapToFractionRing (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (hS : S ≤ A⁰) : IsLocalization S (mapToFractionRing K S B hS).range :=
IsLocalization.isLocalization_of_algEquiv S <|
@@ -76,11 +106,23 @@ instance isLocalization_range_mapToFractionRing (B : Type _) [CommRing B] [Algeb
congr_arg _ (IsFractionRing.injective A K h)⟩)
#align localization.is_localization_range_map_to_fraction_ring Localization.isLocalization_range_mapToFractionRing
+/- warning: localization.is_fraction_ring_range_map_to_fraction_ring -> Localization.isFractionRing_range_mapToFractionRing is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))), IsFractionRing.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)) (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 _inst_2 _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) K _inst_2 (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Algebra.id.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))
+but is expected to have type
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))), IsFractionRing.{u2, u2} (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3)) x (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 _inst_2 _inst_3 (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) K _inst_2 (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Algebra.id.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S _inst_2 _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS)))
+Case conversion may be inaccurate. Consider using '#align localization.is_fraction_ring_range_map_to_fraction_ring Localization.isFractionRing_range_mapToFractionRingₓ'. -/
instance isFractionRing_range_mapToFractionRing (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (hS : S ≤ A⁰) : IsFractionRing (mapToFractionRing K S B hS).range K :=
IsFractionRing.isFractionRing_of_isLocalization S _ _ hS
#align localization.is_fraction_ring_range_map_to_fraction_ring Localization.isFractionRing_range_mapToFractionRing
+/- warning: localization.subalgebra -> Localization.subalgebra is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) -> (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)
+but is expected to have type
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) -> (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3)
+Case conversion may be inaccurate. Consider using '#align localization.subalgebra Localization.subalgebraₓ'. -/
/-- Given a commutative ring `A` with fraction ring `K`, and a submonoid `S` of `A` which
contains no zero divisor, this is the localization of `A` at `S`, considered as
a subalgebra of `K` over `A`.
@@ -99,6 +141,12 @@ noncomputable def subalgebra (hS : S ≤ A⁰) : Subalgebra A K :=
namespace Subalgebra
+/- warning: localization.subalgebra.is_localization_subalgebra -> Localization.subalgebra.isLocalization_subalgebra is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)) (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))
+but is expected to have type
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3)) x (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))
+Case conversion may be inaccurate. Consider using '#align localization.subalgebra.is_localization_subalgebra Localization.subalgebra.isLocalization_subalgebraₓ'. -/
instance isLocalization_subalgebra : IsLocalization S (subalgebra K S hS) :=
by
dsimp only [Localization.subalgebra]
@@ -106,6 +154,12 @@ instance isLocalization_subalgebra : IsLocalization S (subalgebra K S hS) :=
infer_instance
#align localization.subalgebra.is_localization_subalgebra Localization.subalgebra.isLocalization_subalgebra
+/- warning: localization.subalgebra.is_fraction_ring -> Localization.subalgebra.isFractionRing is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], IsFractionRing.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3)) (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 _inst_2 _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) K _inst_2 (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K _inst_2)) _inst_3 (Algebra.id.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))
+but is expected to have type
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) [_inst_2 : CommRing.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K _inst_2 _inst_3], IsFractionRing.{u2, u2} (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3)) x (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 _inst_2 _inst_3 (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS)) K _inst_2 (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (CommRing.toCommSemiring.{u2} K _inst_2) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) _inst_3 (Algebra.id.{u2} K (CommRing.toCommSemiring.{u2} K _inst_2)) (Localization.subalgebra.{u1, u2} A K _inst_1 S _inst_2 _inst_3 _inst_4 hS))
+Case conversion may be inaccurate. Consider using '#align localization.subalgebra.is_fraction_ring Localization.subalgebra.isFractionRingₓ'. -/
instance isFractionRing : IsFractionRing (subalgebra K S hS) K :=
IsFractionRing.isFractionRing_of_isLocalization S _ _ hS
#align localization.subalgebra.is_fraction_ring Localization.subalgebra.isFractionRing
@@ -120,15 +174,27 @@ variable [Field K] [Algebra A K] [IsFractionRing A K]
namespace Subalgebra
-theorem mem_range_mapToFractionRing_iff_of_field (B : Type _) [CommRing B] [Algebra A B]
+/- warning: localization.subalgebra.mem_range_map_to_fraction_ring_iff_of_field -> Localization.subalgebra.mem_range_mapToFractionRing_iff_ofField is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u1, u3} A B (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u1, u3} A (CommRing.toCommSemiring.{u1} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (x : K), Iff (Membership.Mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3) (SetLike.hasMem.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3)) x (AlgHom.range.{u1, u3, u2} A B K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u3} B (CommRing.toRing.{u3} B _inst_5)) _inst_6 (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3 (Localization.mapToFractionRing.{u1, u2, u3} A K _inst_1 S (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Exists.{succ u1} A (fun (a : A) => Exists.{succ u1} A (fun (s : A) => Exists.{0} (Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) s S) (fun (hs : Membership.Mem.{u1, u1} A (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (SetLike.hasMem.{u1, u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) A (Submonoid.setLike.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1))))))) s S) => Eq.{succ u2} K x (HMul.hMul.{u2, u2, u2} K K K (instHMul.{u2} K (Distrib.toHasMul.{u2} K (Ring.toDistrib.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) (fun (_x : RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) => A -> K) (RingHom.hasCoeToFun.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) (algebraMap.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) a) (Inv.inv.{u2} K (DivInvMonoid.toHasInv.{u2} K (DivisionRing.toDivInvMonoid.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) (fun (_x : RingHom.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) => A -> K) (RingHom.hasCoeToFun.{u1, u2} A K (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))) (Semiring.toNonAssocSemiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))))) (algebraMap.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) s)))))))
+but is expected to have type
+ forall {A : Type.{u2}} (K : Type.{u1}) [_inst_1 : CommRing.{u2} A] (S : Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (hS : LE.le.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Preorder.toLE.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (PartialOrder.toPreorder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))))))) S (nonZeroDivisors.{u2} A (Semiring.toMonoidWithZero.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) [_inst_2 : Field.{u1} K] [_inst_3 : Algebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))] [_inst_4 : IsFractionRing.{u2, u1} A _inst_1 K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)) _inst_3] (B : Type.{u3}) [_inst_5 : CommRing.{u3} B] [_inst_6 : Algebra.{u2, u3} A B (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5))] [_inst_7 : IsLocalization.{u2, u3} A (CommRing.toCommSemiring.{u2} A _inst_1) S B (CommRing.toCommSemiring.{u3} B _inst_5) _inst_6] (x : K), Iff (Membership.mem.{u1, u1} K (Subalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)))) _inst_3) (SetLike.instMembership.{u1, u1} (Subalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)))) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)))) _inst_3)) x (AlgHom.range.{u2, u3, u1} A B K (CommRing.toCommSemiring.{u2} A _inst_1) (CommSemiring.toSemiring.{u3} B (CommRing.toCommSemiring.{u3} B _inst_5)) _inst_6 (CommSemiring.toSemiring.{u1} K (CommRing.toCommSemiring.{u1} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)))) _inst_3 (Localization.mapToFractionRing.{u2, u1, u3} A K _inst_1 S (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_2)) _inst_3 _inst_4 B _inst_5 _inst_6 _inst_7 hS))) (Exists.{succ u2} A (fun (a : A) => Exists.{succ u2} A (fun (s : A) => Exists.{0} (Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) s S) (fun (hs : Membership.mem.{u2, u2} A (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) (SetLike.instMembership.{u2, u2} (Submonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))))) A (Submonoid.instSetLikeSubmonoid.{u2} A (MulZeroOneClass.toMulOneClass.{u2} A (NonAssocSemiring.toMulZeroOneClass.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))))) s S) => Eq.{succ u1} K x (HMul.hMul.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) s) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (instHMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (NonUnitalNonAssocRing.toMul.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (NonAssocRing.toNonUnitalNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (Ring.toNonAssocRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (DivisionRing.toRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) (Field.toDivisionRing.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) a) _inst_2)))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))))))) (algebraMap.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))) _inst_3) a) (Inv.inv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) s) (Field.toInv.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) s) _inst_2) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : A) => K) _x) (MulHomClass.toFunLike.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} K (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u2, u1} (RingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))))) A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))) (RingHom.instRingHomClassRingHom.{u2, u1} A K (Semiring.toNonAssocSemiring.{u2} A (CommSemiring.toSemiring.{u2} A (CommRing.toCommSemiring.{u2} A _inst_1))) (Semiring.toNonAssocSemiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2)))))))) (algebraMap.{u2, u1} A K (CommRing.toCommSemiring.{u2} A _inst_1) (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_2))) _inst_3) s)))))))
+Case conversion may be inaccurate. Consider using '#align localization.subalgebra.mem_range_map_to_fraction_ring_iff_of_field Localization.subalgebra.mem_range_mapToFractionRing_iff_ofFieldₓ'. -/
+theorem mem_range_mapToFractionRing_iff_ofField (B : Type _) [CommRing B] [Algebra A B]
[IsLocalization S B] (x : K) :
x ∈ (mapToFractionRing K S B hS).range ↔
∃ (a s : A)(hs : s ∈ S), x = algebraMap A K a * (algebraMap A K s)⁻¹ :=
by
rw [mem_range_map_to_fraction_ring_iff]
iterate 3 congr with ; convert Iff.rfl; rw [Units.val_inv_eq_inv_val]; rfl
-#align localization.subalgebra.mem_range_map_to_fraction_ring_iff_of_field Localization.subalgebra.mem_range_mapToFractionRing_iff_of_field
-
+#align localization.subalgebra.mem_range_map_to_fraction_ring_iff_of_field Localization.subalgebra.mem_range_mapToFractionRing_iff_ofField
+
+/- warning: localization.subalgebra.of_field -> Localization.subalgebra.ofField is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))), (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) -> (forall [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3)
+but is expected to have type
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))), (LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) -> (forall [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3)
+Case conversion may be inaccurate. Consider using '#align localization.subalgebra.of_field Localization.subalgebra.ofFieldₓ'. -/
/-- Given a domain `A` with fraction field `K`, and a submonoid `S` of `A` which
contains no zero divisor, this is the localization of `A` at `S`, considered as
a subalgebra of `K` over `A`.
@@ -145,6 +211,12 @@ noncomputable def ofField : Subalgebra A K :=
apply mem_range_map_to_fraction_ring_iff_of_field
#align localization.subalgebra.of_field Localization.subalgebra.ofField
+/- warning: localization.subalgebra.is_localization_of_field -> Localization.subalgebra.isLocalization_ofField is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3)) (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))
+but is expected to have type
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], IsLocalization.{u1, u2} A (CommRing.toCommSemiring.{u1} A _inst_1) S (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3)) x (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))) (Subalgebra.toCommSemiring.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) (Subalgebra.algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))
+Case conversion may be inaccurate. Consider using '#align localization.subalgebra.is_localization_of_field Localization.subalgebra.isLocalization_ofFieldₓ'. -/
instance isLocalization_ofField : IsLocalization S (subalgebra.ofField K S hS) :=
by
dsimp only [Localization.subalgebra.ofField]
@@ -152,6 +224,12 @@ instance isLocalization_ofField : IsLocalization S (subalgebra.ofField K S hS) :
infer_instance
#align localization.subalgebra.is_localization_of_field Localization.subalgebra.isLocalization_ofField
+/- warning: localization.subalgebra.is_fraction_ring_of_field -> Localization.subalgebra.isFractionRing_ofField is a dubious translation:
+lean 3 declaration is
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Preorder.toHasLe.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteSemilatticeInf.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))) (Submonoid.completeLattice.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (NonAssocRing.toNonAssocSemiring.{u1} A (Ring.toNonAssocRing.{u1} A (CommRing.toRing.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (Ring.toSemiring.{u1} A (CommRing.toRing.{u1} A _inst_1))))) [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], IsFractionRing.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3) K (Subalgebra.setLike.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_2))) _inst_3)) (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)) (Ring.toSemiring.{u2} K (CommRing.toRing.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3 (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))
+but is expected to have type
+ forall {A : Type.{u1}} (K : Type.{u2}) [_inst_1 : CommRing.{u1} A] (S : Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (hS : LE.le.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Preorder.toLE.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (PartialOrder.toPreorder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))) (Submonoid.instCompleteLatticeSubmonoid.{u1} A (MulZeroOneClass.toMulOneClass.{u1} A (NonAssocSemiring.toMulZeroOneClass.{u1} A (Semiring.toNonAssocSemiring.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1)))))))))) S (nonZeroDivisors.{u1} A (Semiring.toMonoidWithZero.{u1} A (CommSemiring.toSemiring.{u1} A (CommRing.toCommSemiring.{u1} A _inst_1))))) [_inst_2 : Field.{u2} K] [_inst_3 : Algebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)))] [_inst_4 : IsFractionRing.{u1, u2} A _inst_1 K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3], IsFractionRing.{u2, u2} (Subtype.{succ u2} K (fun (x : K) => Membership.mem.{u2, u2} K (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3) (SetLike.instMembership.{u2, u2} (Subalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3) K (Subalgebra.instSetLikeSubalgebra.{u1, u2} A K (CommRing.toCommSemiring.{u1} A _inst_1) (DivisionSemiring.toSemiring.{u2} K (Semifield.toDivisionSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) _inst_3)) x (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))) (Subalgebra.toCommRing.{u1, u2} A K _inst_1 (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) _inst_3 (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4)) K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)) (Subalgebra.toAlgebra.{u2, u1, u2} K A K (CommRing.toCommSemiring.{u1} A _inst_1) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2)) (CommSemiring.toSemiring.{u2} K (CommRing.toCommSemiring.{u2} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_2)))) _inst_3 (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_2))) (Localization.subalgebra.ofField.{u1, u2} A K _inst_1 S hS _inst_2 _inst_3 _inst_4))
+Case conversion may be inaccurate. Consider using '#align localization.subalgebra.is_fraction_ring_of_field Localization.subalgebra.isFractionRing_ofFieldₓ'. -/
instance isFractionRing_ofField : IsFractionRing (subalgebra.ofField K S hS) K :=
IsFractionRing.isFractionRing_of_isLocalization S _ _ hS
#align localization.subalgebra.is_fraction_ring_of_field Localization.subalgebra.isFractionRing_ofField
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -22,7 +22,7 @@ namespace Localization
open nonZeroDivisors
-variable {A : Type _} (K : Type _) [CommRing A] (S : Submonoid A) (hS : S ≤ A⁰)
+variable {A : Type*} (K : Type*) [CommRing A] (S : Submonoid A) (hS : S ≤ A⁰)
section CommRing
@@ -34,19 +34,19 @@ theorem map_isUnit_of_le (hS : S ≤ A⁰) (s : S) : IsUnit (algebraMap A K s) :
/-- The canonical map from a localization of `A` at `S` to the fraction ring
of `A`, given that `S ≤ A⁰`. -/
-noncomputable def mapToFractionRing (B : Type _) [CommRing B] [Algebra A B] [IsLocalization S B]
+noncomputable def mapToFractionRing (B : Type*) [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) : B →ₐ[A] K :=
{ IsLocalization.lift (map_isUnit_of_le K S hS) with commutes' := fun a => by simp }
#align localization.map_to_fraction_ring Localization.mapToFractionRing
@[simp]
-theorem mapToFractionRing_apply {B : Type _} [CommRing B] [Algebra A B] [IsLocalization S B]
+theorem mapToFractionRing_apply {B : Type*} [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) (b : B) :
mapToFractionRing K S B hS b = IsLocalization.lift (map_isUnit_of_le K S hS) b :=
rfl
#align localization.map_to_fraction_ring_apply Localization.mapToFractionRing_apply
-theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B] [IsLocalization S B]
+theorem mem_range_mapToFractionRing_iff (B : Type*) [CommRing B] [Algebra A B] [IsLocalization S B]
(hS : S ≤ A⁰) (x : K) :
x ∈ (mapToFractionRing K S B hS).range ↔
∃ (a s : A) (hs : s ∈ S), x = IsLocalization.mk' K a ⟨s, hS hs⟩ :=
@@ -60,7 +60,7 @@ theorem mem_range_mapToFractionRing_iff (B : Type _) [CommRing B] [Algebra A B]
apply IsLocalization.lift_mk'⟩
#align localization.mem_range_map_to_fraction_ring_iff Localization.mem_range_mapToFractionRing_iff
-instance isLocalization_range_mapToFractionRing (B : Type _) [CommRing B] [Algebra A B]
+instance isLocalization_range_mapToFractionRing (B : Type*) [CommRing B] [Algebra A B]
[IsLocalization S B] (hS : S ≤ A⁰) : IsLocalization S (mapToFractionRing K S B hS).range :=
IsLocalization.isLocalization_of_algEquiv S <|
show B ≃ₐ[A] _ from AlgEquiv.ofBijective (mapToFractionRing K S B hS).rangeRestrict (by
@@ -70,7 +70,7 @@ instance isLocalization_range_mapToFractionRing (B : Type _) [CommRing B] [Algeb
fun h => congr_arg _ (IsFractionRing.injective A K h)⟩)
#align localization.is_localization_range_map_to_fraction_ring Localization.isLocalization_range_mapToFractionRing
-instance isFractionRing_range_mapToFractionRing (B : Type _) [CommRing B] [Algebra A B]
+instance isFractionRing_range_mapToFractionRing (B : Type*) [CommRing B] [Algebra A B]
[IsLocalization S B] (hS : S ≤ A⁰) : IsFractionRing (mapToFractionRing K S B hS).range K :=
IsFractionRing.isFractionRing_of_isLocalization S _ _ hS
#align localization.is_fraction_ring_range_map_to_fraction_ring Localization.isFractionRing_range_mapToFractionRing
@@ -112,7 +112,7 @@ variable [Field K] [Algebra A K] [IsFractionRing A K]
namespace subalgebra
-theorem mem_range_mapToFractionRing_iff_ofField (B : Type _) [CommRing B] [Algebra A B]
+theorem mem_range_mapToFractionRing_iff_ofField (B : Type*) [CommRing B] [Algebra A B]
[IsLocalization S B] (x : K) :
x ∈ (mapToFractionRing K S B hS).range ↔
∃ (a s : A) (_ : s ∈ S), x = algebraMap A K a * (algebraMap A K s)⁻¹ := by
@@ -2,14 +2,11 @@
Copyright (c) 2022 Adam Topaz. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Topaz, Junyan Xu
-
-! This file was ported from Lean 3 source module ring_theory.localization.as_subring
-! leanprover-community/mathlib commit 649ca66bf4d62796b5eefef966e622d91aa471f3
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.RingTheory.Localization.LocalizationLocalization
+#align_import ring_theory.localization.as_subring from "leanprover-community/mathlib"@"649ca66bf4d62796b5eefef966e622d91aa471f3"
+
/-!
# Localizations of domains as subalgebras of the fraction field.
The unported dependencies are