File: Mathlib/RingTheory/Valuation/Integers.lean

full_name: Valuation.integer
code: /-- The ring of integers under a given valuation is the subring of elements with valuation ≤ 1. -/
def integer : Subring R 
goal: Subring R

full_name: Valuation.mem_integer_iff
code: lemma mem_integer_iff (r : R) : r ∈ v.integer ↔ v r ≤ 1 
goal: r ∈ v.integer ↔ v r ≤ 1

full_name: Valuation.Integers
code: /-- Given a valuation v : R → Γ₀ and a ring homomorphism O →+* R, we say that O is the integers of v
if f is injective, and its range is exactly `v.integer`. -/
structure Integers : Prop where
  hom_inj : Function.Injective (algebraMap O R)
  map_le_one : ∀ x, v (algebraMap O R x) ≤ 1
  exists_of_le_one : ∀ ⦃r⦄, v r ≤ 1 → ∃ x, algebraMap O R x = r
goal: Prop

full_name: Valuation.Integers.exists_of_le_one
code: /-- Given a valuation v : R → Γ₀ and a ring homomorphism O →+* R, we say that O is the integers of v
if f is injective, and its range is exactly `v.integer`. -/
structure Integers : Prop where
  hom_inj : Function.Injective (algebraMap O R)
  map_le_one : ∀ x, v (algebraMap O R x) ≤ 1
  exists_of_le_one : ∀ ⦃r⦄, v r ≤ 1 → ∃ x, algebraMap O R x = r
goal: v r ≤ 1 → ∃ x, (algebraMap O R) x = r

full_name: Valuation.Integers.map_le_one
code: /-- Given a valuation v : R → Γ₀ and a ring homomorphism O →+* R, we say that O is the integers of v
if f is injective, and its range is exactly `v.integer`. -/
structure Integers : Prop where
  hom_inj : Function.Injective (algebraMap O R)
  map_le_one : ∀ x, v (algebraMap O R x) ≤ 1
  exists_of_le_one : ∀ ⦃r⦄, v r ≤ 1 → ∃ x, algebraMap O R x = r
goal: v ((algebraMap O R) x) ≤ 1

full_name: Valuation.Integers.hom_inj
code: /-- Given a valuation v : R → Γ₀ and a ring homomorphism O →+* R, we say that O is the integers of v
if f is injective, and its range is exactly `v.integer`. -/
structure Integers : Prop where
  hom_inj : Function.Injective (algebraMap O R)
  map_le_one : ∀ x, v (algebraMap O R x) ≤ 1
  exists_of_le_one : ∀ ⦃r⦄, v r ≤ 1 → ∃ x, algebraMap O R x = r
goal: Function.Injective ⇑(algebraMap O R)

full_name: Valuation.instAlgebraSubtypeMemSubringInteger
code: instance : Algebra v.integer R 
goal: Algebra (↥v.integer) R

full_name: Valuation.integer.integers
code: theorem integer.integers : v.Integers v.integer 
goal: v.Integers ↥v.integer

full_name: Valuation.Integers.one_of_isUnit'
code: theorem one_of_isUnit' {x : O} (hx : IsUnit x) (H : ∀ x, v (algebraMap O R x) ≤ 1) :
    v (algebraMap O R x) = 1 
goal: v ((algebraMap O R) x) = 1

full_name: Valuation.Integers.one_of_isUnit
code: theorem one_of_isUnit (hv : Integers v O) {x : O} (hx : IsUnit x) : v (algebraMap O R x) = 1 
goal: v ((algebraMap O R) x) = 1

full_name: Valuation.Integers.isUnit_of_one
code: /--
Let `O` be the integers of the valuation `v` on some commutative ring `R`. For every element `x` in
`O`, `x` is a unit in `O` if and only if the image of `x` in `R` is a unit and has valuation 1.
-/
theorem isUnit_of_one (hv : Integers v O) {x : O} (hx : IsUnit (algebraMap O R x))
    (hvx : v (algebraMap O R x) = 1) : IsUnit x 
goal: IsUnit x

full_name: Valuation.Integers.le_of_dvd
code: theorem le_of_dvd (hv : Integers v O) {x y : O} (h : x ∣ y) :
    v (algebraMap O R y) ≤ v (algebraMap O R x) 
goal: v ((algebraMap O R) y) ≤ v ((algebraMap O R) x)

full_name: Valuation.Integers.dvd_of_le
code: theorem dvd_of_le (hv : Integers v O) {x y : O}
    (h : v (algebraMap O F x) ≤ v (algebraMap O F y)) : y ∣ x 
goal: y ∣ x

full_name: Valuation.Integers.dvd_iff_le
code: theorem dvd_iff_le (hv : Integers v O) {x y : O} :
    x ∣ y ↔ v (algebraMap O F y) ≤ v (algebraMap O F x) 
goal: x ∣ y ↔ v ((algebraMap O F) y) ≤ v ((algebraMap O F) x)

full_name: Valuation.Integers.le_iff_dvd
code: theorem le_iff_dvd (hv : Integers v O) {x y : O} :
    v (algebraMap O F x) ≤ v (algebraMap O F y) ↔ y ∣ x 
goal: v ((algebraMap O F) x) ≤ v ((algebraMap O F) y) ↔ y ∣ x

full_name: Valuation.Integers.isUnit_of_one'
code: /--
This is the special case of `Valuation.Integers.isUnit_of_one` when the valuation is defined
over a field. Let `v` be a valuation on some field `F` and `O` be its integers. For every element
`x` in `O`, `x` is a unit in `O` if and only if the image of `x` in `F` has valuation 1.
-/
theorem isUnit_of_one' (hv : Integers v O) {x : O} (hvx : v (algebraMap O F x) = 1) : IsUnit x 
goal: IsUnit x

full_name: Valuation.Integers.eq_algebraMap_or_inv_eq_algebraMap
code: theorem eq_algebraMap_or_inv_eq_algebraMap (hv : Integers v O) (x : F) :
    ∃ a : O, x = algebraMap O F a ∨ x⁻¹ = algebraMap O F a 
goal: ∃ a, x = (algebraMap O F) a ∨ x⁻¹ = (algebraMap O F) a