Fraction ring / fraction field Frac(R) as localization #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Main definitions #
is_fraction_ring R K
expresses thatK
is a field of fractions ofR
, as an abbreviation ofis_localization (non_zero_divisors R) K
Main results #
is_fraction_ring.field
: a definition (not an instance) stating the localization of an integral domainR
atR \ {0}
is a fieldrat.is_fraction_ring
is an instance statingℚ
is the field of fractions ofℤ
Implementation notes #
See src/ring_theory/localization/basic.lean
for a design overview.
Tags #
localization, ring localization, commutative ring localization, characteristic predicate, commutative ring, field of fractions
is_fraction_ring R K
states K
is the field of fractions of an integral domain R
.
The cast from int
to rat
as a fraction_ring
.
The inverse of an element in the field of fractions of an integral domain.
Equations
- is_fraction_ring.inv A z = dite (z = 0) (λ (h : z = 0), 0) (λ (h : ¬z = 0), is_localization.mk' K ↑((is_localization.sec (non_zero_divisors A) z).snd) ⟨(is_localization.sec (non_zero_divisors A) z).fst, _⟩)
A comm_ring
K
which is the localization of an integral domain R
at R - {0}
is a field.
See note [reducible non-instances].
Equations
- is_fraction_ring.to_field A = {add := comm_ring.add (show comm_ring K, from _inst_7), add_assoc := _, zero := comm_ring.zero (show comm_ring K, from _inst_7), zero_add := _, add_zero := _, nsmul := comm_ring.nsmul (show comm_ring K, from _inst_7), nsmul_zero' := _, nsmul_succ' := _, neg := comm_ring.neg (show comm_ring K, from _inst_7), sub := comm_ring.sub (show comm_ring K, from _inst_7), sub_eq_add_neg := _, zsmul := comm_ring.zsmul (show comm_ring K, from _inst_7), zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, int_cast := comm_ring.int_cast (show comm_ring K, from _inst_7), nat_cast := comm_ring.nat_cast (show comm_ring K, from _inst_7), one := comm_ring.one (show comm_ring K, from _inst_7), nat_cast_zero := _, nat_cast_succ := _, int_cast_of_nat := _, int_cast_neg_succ_of_nat := _, mul := comm_ring.mul (show comm_ring K, from _inst_7), mul_assoc := _, one_mul := _, mul_one := _, npow := comm_ring.npow (show comm_ring K, from _inst_7), npow_zero' := _, npow_succ' := _, left_distrib := _, right_distrib := _, mul_comm := _, inv := is_fraction_ring.inv A _inst_11, div := division_ring.div._default comm_ring.mul is_fraction_ring.to_field._proof_24 comm_ring.one is_fraction_ring.to_field._proof_25 is_fraction_ring.to_field._proof_26 comm_ring.npow is_fraction_ring.to_field._proof_27 is_fraction_ring.to_field._proof_28 (is_fraction_ring.inv A), div_eq_mul_inv := _, zpow := division_ring.zpow._default comm_ring.mul is_fraction_ring.to_field._proof_30 comm_ring.one is_fraction_ring.to_field._proof_31 is_fraction_ring.to_field._proof_32 comm_ring.npow is_fraction_ring.to_field._proof_33 is_fraction_ring.to_field._proof_34 (is_fraction_ring.inv A), zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, exists_pair_ne := _, rat_cast := division_ring.rat_cast._default comm_ring.add is_fraction_ring.to_field._proof_39 comm_ring.zero is_fraction_ring.to_field._proof_40 is_fraction_ring.to_field._proof_41 comm_ring.nsmul is_fraction_ring.to_field._proof_42 is_fraction_ring.to_field._proof_43 comm_ring.neg comm_ring.sub is_fraction_ring.to_field._proof_44 comm_ring.zsmul is_fraction_ring.to_field._proof_45 is_fraction_ring.to_field._proof_46 is_fraction_ring.to_field._proof_47 is_fraction_ring.to_field._proof_48 is_fraction_ring.to_field._proof_49 comm_ring.int_cast comm_ring.nat_cast comm_ring.one is_fraction_ring.to_field._proof_50 is_fraction_ring.to_field._proof_51 is_fraction_ring.to_field._proof_52 is_fraction_ring.to_field._proof_53 comm_ring.mul is_fraction_ring.to_field._proof_54 is_fraction_ring.to_field._proof_55 is_fraction_ring.to_field._proof_56 comm_ring.npow is_fraction_ring.to_field._proof_57 is_fraction_ring.to_field._proof_58 is_fraction_ring.to_field._proof_59 is_fraction_ring.to_field._proof_60 (is_fraction_ring.inv A) (division_ring.div._default comm_ring.mul is_fraction_ring.to_field._proof_24 comm_ring.one is_fraction_ring.to_field._proof_25 is_fraction_ring.to_field._proof_26 comm_ring.npow is_fraction_ring.to_field._proof_27 is_fraction_ring.to_field._proof_28 (is_fraction_ring.inv A)) _ (division_ring.zpow._default comm_ring.mul is_fraction_ring.to_field._proof_30 comm_ring.one is_fraction_ring.to_field._proof_31 is_fraction_ring.to_field._proof_32 comm_ring.npow is_fraction_ring.to_field._proof_33 is_fraction_ring.to_field._proof_34 (is_fraction_ring.inv A)) _ _ _, mul_inv_cancel := _, inv_zero := _, rat_cast_mk := _, qsmul := division_ring.qsmul._default (… is_fraction_ring.to_field._proof_45 is_fraction_ring.to_field._proof_46 is_fraction_ring.to_field._proof_47 is_fraction_ring.to_field._proof_48 is_fraction_ring.to_field._proof_49 comm_ring.int_cast comm_ring.nat_cast comm_ring.one is_fraction_ring.to_field._proof_50 is_fraction_ring.to_field._proof_51 is_fraction_ring.to_field._proof_52 is_fraction_ring.to_field._proof_53 comm_ring.mul is_fraction_ring.to_field._proof_54 is_fraction_ring.to_field._proof_55 is_fraction_ring.to_field._proof_56 comm_ring.npow is_fraction_ring.to_field._proof_57 is_fraction_ring.to_field._proof_58 is_fraction_ring.to_field._proof_59 is_fraction_ring.to_field._proof_60 (is_fraction_ring.inv A) (division_ring.div._default comm_ring.mul is_fraction_ring.to_field._proof_24 comm_ring.one is_fraction_ring.to_field._proof_25 is_fraction_ring.to_field._proof_26 comm_ring.npow is_fraction_ring.to_field._proof_27 is_fraction_ring.to_field._proof_28 (is_fraction_ring.inv A)) _ (division_ring.zpow._default comm_ring.mul is_fraction_ring.to_field._proof_30 comm_ring.one is_fraction_ring.to_field._proof_31 is_fraction_ring.to_field._proof_32 comm_ring.npow is_fraction_ring.to_field._proof_33 is_fraction_ring.to_field._proof_34 (is_fraction_ring.inv A)) _ _ _) comm_ring.add is_fraction_ring.to_field._proof_67 comm_ring.zero is_fraction_ring.to_field._proof_68 is_fraction_ring.to_field._proof_69 comm_ring.nsmul is_fraction_ring.to_field._proof_70 is_fraction_ring.to_field._proof_71 comm_ring.neg comm_ring.sub is_fraction_ring.to_field._proof_72 comm_ring.zsmul is_fraction_ring.to_field._proof_73 is_fraction_ring.to_field._proof_74 is_fraction_ring.to_field._proof_75 is_fraction_ring.to_field._proof_76 is_fraction_ring.to_field._proof_77 comm_ring.int_cast comm_ring.nat_cast comm_ring.one is_fraction_ring.to_field._proof_78 is_fraction_ring.to_field._proof_79 is_fraction_ring.to_field._proof_80 is_fraction_ring.to_field._proof_81 comm_ring.mul is_fraction_ring.to_field._proof_82 is_fraction_ring.to_field._proof_83 is_fraction_ring.to_field._proof_84 comm_ring.npow is_fraction_ring.to_field._proof_85 is_fraction_ring.to_field._proof_86 is_fraction_ring.to_field._proof_87 is_fraction_ring.to_field._proof_88, qsmul_eq_mul' := _}
Given an integral domain A
with field of fractions K
,
and an injective ring hom g : A →+* L
where L
is a field, we get a
field hom sending z : K
to g x * (g y)⁻¹
, where (x, y) : A × (non_zero_divisors A)
are
such that z = f x * (f y)⁻¹
.
Equations
Given an integral domain A
with field of fractions K
,
and an injective ring hom g : A →+* L
where L
is a field,
the field hom induced from K
to L
maps x
to g x
for all
x : A
.
Given an integral domain A
with field of fractions K
,
and an injective ring hom g : A →+* L
where L
is a field,
field hom induced from K
to L
maps f x / f y
to g x / g y
for all
x : A, y ∈ non_zero_divisors A
.
Given integral domains A, B
with fields of fractions K
, L
and an injective ring hom j : A →+* B
, we get a field hom
sending z : K
to g (j x) * (g (j y))⁻¹
, where (x, y) : A × (non_zero_divisors A)
are
such that z = f x * (f y)⁻¹
.
Equations
- is_fraction_ring.map hj = is_localization.map L j _
Given integral domains A, B
and localization maps to their fields of fractions
f : A →+* K, g : B →+* L
, an isomorphism j : A ≃+* B
induces an isomorphism of
fields of fractions K ≃+* L
.
Equations
The fraction ring of a commutative ring R
as a quotient type.
We instantiate this definition as generally as possible, and assume that the
commutative ring R
is an integral domain only when this is needed for proving.
Equations
Equations
Equations
- fraction_ring.field = {add := has_add.add localization.has_add, add_assoc := _, zero := 0, zero_add := _, add_zero := _, nsmul := add_monoid.nsmul (add_monoid_with_one.to_add_monoid (fraction_ring A)), nsmul_zero' := _, nsmul_succ' := _, neg := has_neg.neg localization.has_neg, sub := has_sub.sub (sub_neg_monoid.to_has_sub (fraction_ring A)), sub_eq_add_neg := _, zsmul := sub_neg_monoid.zsmul (add_group.to_sub_neg_monoid (fraction_ring A)), zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _, int_cast := comm_ring.int_cast localization.comm_ring, nat_cast := comm_ring.nat_cast localization.comm_ring, one := 1, nat_cast_zero := _, nat_cast_succ := _, int_cast_of_nat := _, int_cast_neg_succ_of_nat := _, mul := has_mul.mul (localization.has_mul (non_zero_divisors A)), mul_assoc := _, one_mul := _, mul_one := _, npow := localization.npow (non_zero_divisors A), npow_zero' := _, npow_succ' := _, left_distrib := _, right_distrib := _, mul_comm := _, inv := field.inv (is_fraction_ring.to_field A), div := field.div (is_fraction_ring.to_field A), div_eq_mul_inv := _, zpow := field.zpow (is_fraction_ring.to_field A), zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, exists_pair_ne := _, rat_cast := field.rat_cast (is_fraction_ring.to_field A), mul_inv_cancel := _, inv_zero := _, rat_cast_mk := _, qsmul := field.qsmul (is_fraction_ring.to_field A), qsmul_eq_mul' := _}
Equations
Given an integral domain A
and a localization map to a field of fractions
f : A →+* K
, we get an A
-isomorphism between the field of fractions of A
as a quotient
type and K
.