Theorem: Valuation.isEquiv_of_val_le_one
File: Mathlib/RingTheory/Valuation/Basic.lean

tactic: intro x y
state_before: K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
⊢ IsEquiv v v'

tactic: by_cases hy : y = 0
state_before: K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
⊢ ↑v x ≤ ↑v y ↔ ↑v' x ≤ ↑v' y

tactic: rw [show y = 1 * y by rw [one_mul]]
state_before: case neg
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ¬y = 0
⊢ ↑v x ≤ ↑v y ↔ ↑v' x ≤ ↑v' y

tactic: rw [← inv_mul_cancel_right₀ hy x]
state_before: case neg
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ¬y = 0
⊢ ↑v x ≤ ↑v (1 * y) ↔ ↑v' x ≤ ↑v' (1 * y)

tactic: iterate 2 rw [v.map_mul _ y, v'.map_mul _ y]
state_before: case neg
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ¬y = 0
⊢ ↑v (x * y⁻¹ * y) ≤ ↑v (1 * y) ↔ ↑v' (x * y⁻¹ * y) ≤ ↑v' (1 * y)

tactic: rw [v.map_one, v'.map_one]
state_before: case neg
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ¬y = 0
⊢ ↑v (x * y⁻¹) * ↑v y ≤ ↑v 1 * ↑v y ↔ ↑v' (x * y⁻¹) * ↑v' y ≤ ↑v' 1 * ↑v' y

tactic: constructor <;> intro H
state_before: case neg
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ¬y = 0
⊢ ↑v (x * y⁻¹) * ↑v y ≤ 1 * ↑v y ↔ ↑v' (x * y⁻¹) * ↑v' y ≤ 1 * ↑v' y

tactic: simp [hy, zero_iff]
state_before: case pos
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : y = 0
⊢ ↑v x ≤ ↑v y ↔ ↑v' x ≤ ↑v' y

tactic: rw [one_mul]
state_before: K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ¬y = 0
⊢ y = 1 * y

tactic: rw [v.map_mul _ y, v'.map_mul _ y]
state_before: case neg
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ¬y = 0
⊢ ↑v (x * y⁻¹) * ↑v y ≤ ↑v (1 * y) ↔ ↑v' (x * y⁻¹) * ↑v' y ≤ ↑v' (1 * y)

tactic: apply mul_le_mul_right'
state_before: case neg.mp
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ¬y = 0
H : ↑v (x * y⁻¹) * ↑v y ≤ 1 * ↑v y
⊢ ↑v' (x * y⁻¹) * ↑v' y ≤ 1 * ↑v' y

tactic: replace hy := v.ne_zero_iff.mpr hy
state_before: case neg.mp.bc
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ¬y = 0
H : ↑v (x * y⁻¹) * ↑v y ≤ 1 * ↑v y
⊢ ↑v' (x * y⁻¹) ≤ 1

tactic: replace H := le_of_le_mul_right hy H
state_before: case neg.mp.bc
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
H : ↑v (x * y⁻¹) * ↑v y ≤ 1 * ↑v y
hy : ↑v y ≠ 0
⊢ ↑v' (x * y⁻¹) ≤ 1

tactic: rwa [h] at H
state_before: case neg.mp.bc
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ↑v y ≠ 0
H : ↑v (x * y⁻¹) ≤ 1
⊢ ↑v' (x * y⁻¹) ≤ 1

tactic: apply mul_le_mul_right'
state_before: case neg.mpr
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ¬y = 0
H : ↑v' (x * y⁻¹) * ↑v' y ≤ 1 * ↑v' y
⊢ ↑v (x * y⁻¹) * ↑v y ≤ 1 * ↑v y

tactic: replace hy := v'.ne_zero_iff.mpr hy
state_before: case neg.mpr.bc
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ¬y = 0
H : ↑v' (x * y⁻¹) * ↑v' y ≤ 1 * ↑v' y
⊢ ↑v (x * y⁻¹) ≤ 1

tactic: replace H := le_of_le_mul_right hy H
state_before: case neg.mpr.bc
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
H : ↑v' (x * y⁻¹) * ↑v' y ≤ 1 * ↑v' y
hy : ↑v' y ≠ 0
⊢ ↑v (x * y⁻¹) ≤ 1

tactic: rwa [h]
state_before: case neg.mpr.bc
K : Type u_3
F : Type ?u.3155721
R : Type ?u.3155724
inst✝³ : DivisionRing K
Γ₀ : Type u_1
Γ'₀ : Type u_2
Γ''₀ : Type ?u.3155736
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
h : ∀ {x : K}, ↑v x ≤ 1 ↔ ↑v' x ≤ 1
x y : K
hy : ↑v' y ≠ 0
H : ↑v' (x * y⁻¹) ≤ 1
⊢ ↑v (x * y⁻¹) ≤ 1