Zulip Chat Archive
Stream: new members
Topic: Proving that an element is an integer of a valuation ring
Stepan Nesterov (Feb 10 2023 at 05:00):
Let's say I want to write down an element of a ring docs#valuation.integer. I try doing it like this:
import ring_theory.valuation.basic
import algebra.order.monoid.with_zero.defs
variables {R : Type*} [comm_ring R] {w : valuation R ℤₘ₀}
def my_integer (a : R) (ha : w a = 0) : w.integer := ⟨a, begin rw set.mem_def, end⟩
but get a message
rewrite tactic failed, did not find instance of the pattern in the target expression
?m_2 ∈ ?m_3
Stepan Nesterov (Feb 10 2023 at 05:02):
How do I figure out what the right ∈ is, so that I can rw it?
Gareth Ma (Feb 10 2023 at 06:01):
Not sure if this answers your question, but:
import ring_theory.valuation.basic
import ring_theory.valuation.integers
import algebra.order.monoid.with_zero.defs
open_locale discrete_valuation
variables {R : Type*} [comm_ring R] {w : valuation R ℤₘ₀}
example (a : R) (ha : w a = 0) : a ∈ w.integer :=
begin
simp only [valuation.integer, subring.mem_mk, mem_set_of_eq, ha, zero_le_one],
end
Adam Topaz (Feb 10 2023 at 14:43):
@Stepan Nesterov can you please provide a working #mwe ?
Adam Topaz (Feb 10 2023 at 14:49):
Anyway, it seems like whoever wrote this part of the valuation theory library forgot to make a valuation.mem_integer
lemma.
The following is (approximately) what I would do in this case.
import ring_theory.valuation.integers
variables {R Γ : Type*} [comm_ring R] [linear_ordered_comm_group_with_zero Γ] {w : valuation R Γ}
lemma valuation.mem_integer_iff (a : R) : a ∈ w.integer ↔ w a ≤ 1 := iff.rfl
example (a : R) (ha : w a = 0) : a ∈ w.integer :=
begin
rw [valuation.mem_integer_iff, ha],
exact zero_le_one,
end
Last updated: Dec 20 2023 at 11:08 UTC